Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El controlador para XUSB en Windows implementa la interfaz en modo kernel para la DLL XINPUT. Para proporcionar una buena experiencia para los títulos heredados que usan la API de directInput con el dispositivo de controlador común, el controlador también exporta una interfaz de clase de dispositivo de interfaz humana (HID), que se recoge en DirectInput. Elegimos la asignación de XUSB a HID en función del comportamiento típico en un conjunto de aplicaciones de juegos para la versión original de XINPUT y actualizamos la asignación de subtipos más recientes. En este tema se describe la asignación.
Dispositivo de interfaz humana (HID)
El estándar HID es un estándar del comité universal de bus serie (USB) propuesto originalmente por Microsoft para generalizar protocolos para dispositivos de entrada. Consta de un lenguaje de descripción de código de bytes y puede expresar controladores para juegos, ratones, joysticks, controles de limitación y rudder, y controladores de varios ejes. Dado que este estándar está tan generalizado, es posible que tenga dificultades para escribir software que consuma la entrada de dispositivos arbitrarios. Por lo tanto, para el DIRECTInput API centrada en el juego, desarrollamos una subasignación específica de tipos para animar a los fabricantes de hardware a admitir a través de sus controladores.
Importante
También puede acceder a dispositivos de entrada HID a través de api RawInput y procesar informes de entrada a través de API hid de bajo nivel, pero los comentarios de vibración no funcionarán como con DirectInput.
Asignaciones
El controlador XUSB implementa tanto una interfaz de clase XUSB como una interfaz de clase HID para dispositivos con el fin de admitir el uso de XINPUT y DirectInput. Esta asignación se basa en la información del subtipo XUSB. El controlador implementa cuatro grupos distintos de asignaciones.
| Subtipo XUSB | Cartografía |
|---|---|
| XINPUT_DEVSUBTYPE_GAMEPAD (Subtipo 1) | Controlador para juegos |
| XINPUT_DEVSUBTYPE_WHEEL (Subtipo 2) | Rueda |
| XINPUT_DEVSUBTYPE_ARCADE_STICK (Subtipo 3) | Arcade Stick/Arcade Pad |
| XINPUT_DEVSUBTYPE_FLIGHT_STICK (Subtipo 4) | Stick piloto |
| XINPUT_DEVSUBTYPE_DANCE_PAD (Subtipo 5) | Valor predeterminado para cualquier subtipo nuevo |
| XINPUT_DEVSUBTYPE_GUITAR (Subtipo 6) | Guitarra |
| XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (Subtipo 7) | |
| XINPUT_DEVSUBTYPE_DRUM_KIT (Subtipo 8) | |
| XINPUT_DEVSUBTYPE_GUITAR_BASS (Subtipo 11) | |
| XINPUT_DEVSUBTYPE_ARCADE_PAD (subtipo 19) |
Nota
Las siguientes asignaciones HID son estáticas. Esto significa que incluso si el informe de funcionalidades del dispositivo indica que no se admite un botón o eje concretos, la asignación seguirá incluyándola, pero siempre notificará un valor fuera del estado o centro.
Controlador para juegos
Esta es la asignación predeterminada y está diseñada en torno a un controlador para juegos estándar y se expone como un Gamepad tipo de uso HID.
| Control | Nombre de uso de HID | Página Uso | Id. de uso |
|---|---|---|---|
| Stick izquierdo | X, Y | 0x01 | 0x30, 0x31 |
| Stick derecho | Rx, Ry | 0x01 | 0x33, 0x34 |
| Desencadenador izquierdo y desencadenador derecho | Z* | 0x01 | 0x32 |
| D-Pad Arriba, Abajo, Izquierda, Derecha | Hat Switch | 0x01 | 0x39 |
| Un | Botón 1 | 0x09 | 0x01 |
| B | Botón 2 | 0x09 | 0x02 |
| X | Botón 3 | 0x09 | 0x03 |
| Y | Botón 4 | 0x09 | 0x04 |
| LB (parachoques izquierdo) | Botón 5 | 0x09 | 0x05 |
| RB (parachoques derecho) | Botón 6 | 0x09 | 0x06 |
| ATRÁS | Botón 7 | 0x09 | 0x07 |
| EMPEZAR | Botón 8 | 0x09 | 0x08 |
| LSB (botón de stick izquierdo) | Botón 9 | 0x09 | 0x09 |
| RSB (botón derecho) | Botón 10 | 0x09 | 0x0A |
Nota
(*): Esto se combina para que Z muestre el comportamiento centrado esperado por la mayoría de los títulos para la rotación; esto significa que no es posible ver todos los valores posibles de combinación de desencadenadores a través de DirectInput y HID.
Arcade Stick/Arcade Pad
Esta es la asignación diseñada alrededor del controlador Arcade Stick y se expone como un Controlador para juegos tipo de uso HID. El Arcade Pad es muy parecido a un Stick Arcade, pero en un factor de forma más pequeño. Estos diseños reemplazan el desencadenador izquierdo analógico y el desencadenador derecho por botones digitales que informan del valor mínimo y máximo del eje.
| Control | Nombre de uso de HID | Página Uso | Id. de uso |
|---|---|---|---|
| D-Pad Arriba, Abajo, Izquierda, Derecha | Hat Switch | 0x01 | 0x39 |
| Un | Botón 1 | 0x09 | 0x01 |
| B | Botón 2 | 0x09 | 0x02 |
| X | Botón 3 | 0x09 | 0x03 |
| Y | Botón 4 | 0x09 | 0x04 |
| LB (parachoques izquierdo) | Botón 5 | 0x09 | 0x05 |
| RB (parachoques derecho) | Botón 6 | 0x09 | 0x06 |
| ATRÁS | Botón 7 | 0x09 | 0x07 |
| EMPEZAR | Botón 8 | 0x09 | 0x08 |
| Desencadenador izquierdo | Botón 9 | 0x09 | 0x09 |
| Desencadenador derecho | Botón 10 | 0x09 | 0x0A |
Estos dispositivos pueden o no admitir controles adicionales, pero estos no se exponen mediante la asignación HID: Stick Izquierdo, Stick Derecho, LSB (botón de stick izquierdo) y RSB (botón de stick derecho).
Rueda
Esta asignación está diseñada en torno a una rueda de carreras y se expone como un Gamepad tipo de uso HID.
| Control | Nombre de uso de HID | Página Uso | Id. de uso |
|---|---|---|---|
| Rueda (Stick izquierdo X) | X | 0x01 | 0x30 |
| Pedal acelerador (gatillo derecho) + Pedal de freno (gatillo izquierdo) | Z* | 0x01 | 0x32 |
| D-Pad Arriba, Abajo, Izquierda, Derecha | Hat Switch | 0x01 | 0x39 |
| Un | Botón 1 | 0x09 | 0x01 |
| B | Botón 2 | 0x09 | 0x02 |
| X | Botón 3 | 0x09 | 0x03 |
| Y | Botón 4 | 0x09 | 0x04 |
| LB (parachoques izquierdo) | Botón 5 | 0x09 | 0x05 |
| RB (parachoques derecho) | Botón 6 | 0x09 | 0x06 |
| LSB (botón de stick izquierdo) | Botón 7 | 0x09 | 0x07 |
| RSB (botón derecho) | Botón 8 | 0x09 | 0x08 |
| ATRÁS | Botón 9 | 0x09 | 0x09 |
| EMPEZAR | Botón 10 | 0x09 | 0x0A |
Nota
(*): Esto se combina para que Z muestre el comportamiento centrado esperado por la mayoría de los títulos para los controles de freno y acelerador; esto significa que no es posible ver todos los valores posibles de combinación de pedal a través de DirectInput.
Stick piloto
Esta asignación está diseñada alrededor de un stick de vuelo y se expone como un Joystick tipo de uso HID.
| Control | Nombre de uso | Página Uso | Id. de uso |
|---|---|---|---|
| Stick piloto (Stick izquierdo) | X, Y | 0x01 | 0x30, 0x31 |
| Sombrero POV (stick derecho) | Rx, Ry | 0x01 | 0x33, 0x34 |
| Limitación (desencadenador derecho) | Z | 0x01 | 0x32 |
| Rudder (desencadenador izquierdo) | Rz | 0x01 | 0x35 |
| D-Pad Arriba, Abajo, Izquierda, Derecha | Hat Switch | 0x01 | 0x39 |
| Arma principal (A) | Botón 1 | 0x09 | 0x01 |
| Arma secundaria (B) | Botón 2 | 0x09 | 0x02 |
| X | Botón 3 | 0x09 | 0x03 |
| Y | Botón 4 | 0x09 | 0x04 |
| LB (parachoques izquierdo) | Botón 5 | 0x09 | 0x05 |
| RB (parachoques derecho) | Botón 6 | 0x09 | 0x06 |
| ATRÁS | Botón 7 | 0x09 | 0x07 |
| EMPEZAR | Botón 8 | 0x09 | 0x08 |
| LSB (botón de stick izquierdo) | Botón 9 | 0x09 | 0x09 |
| RSB (botón derecho) | Botón 10 | 0x09 | 0x0A |
Nota
Esto se basa en el diseño final de Flight Stick. Dado que esto difiere de las primeras definiciones de Flight Stick, muchos dispositivos tienen un conmutador de modo que admite el modelo antiguo frente al nuevo. Esta asignación supone que el nuevo modelo.