Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le pilote pour XUSB sur Windows implémente l’interface en mode noyau pour la DLL XINPUT. Pour offrir une bonne expérience pour les titres hérités qui utilisent l’API DirectInput avec le périphérique de contrôleur commun, le pilote exporte également une interface de classe HID (Human Interface Device), qui est récupérée par DirectInput. Nous avons choisi le mappage de XUSB à HID en fonction du comportement typique dans un ensemble d’applications de jeu pour la version XINPUT d’origine, et nous avons mis à jour le mappage pour les sous-types plus récents. Cette rubrique décrit le mappage.
Périphérique d’interface humaine (HID)
La norme HID est une norme du comité USB (Universal Serial Bus) initialement proposé par Microsoft pour généraliser les protocoles pour les périphériques d’entrée. Il se compose d’un langage de description d’octets et peut exprimer des boîtiers de commande, des souris, des joysticks, des contrôles de limitation et de gouvernail et des contrôleurs multi-axes. Étant donné que cette norme est tellement généralisée, vous pouvez avoir des difficultés à écrire des logiciels qui consomment des entrées à partir d’appareils arbitraires. Par conséquent, pour l’API DirectInput centrée sur le jeu, nous avons développé un sous-mappage spécifique des types pour encourager les fabrications matérielles à prendre en charge par le biais de leurs pilotes.
Important
Vous pouvez également accéder aux appareils d’entrée HID via d’API RawInput et traiter des rapports d’entrée via des d’API HID de bas niveau, mais les commentaires sur les vibrations ne fonctionnent pas comme avec DirectInput.
Mappages
Le pilote XUSB implémente à la fois une interface de classe XUSB et une interface de classe HID pour les appareils afin de prendre en charge à la fois XINPUT et DirectInput utilisation. Ce mappage est basé sur les informations de sous-type XUSB. Le pilote implémente quatre groupes distincts de mappages.
| Sous-type XUSB | Cartographie |
|---|---|
| XINPUT_DEVSUBTYPE_GAMEPAD (Sous-type 1) | Boîtier de commande |
| XINPUT_DEVSUBTYPE_WHEEL (Sous-type 2) | Roue |
| XINPUT_DEVSUBTYPE_ARCADE_STICK (Sous-type 3) | Arcade Stick/Arcade Pad |
| XINPUT_DEVSUBTYPE_FLIGHT_STICK (Sous-type 4) | Stick de vol |
| XINPUT_DEVSUBTYPE_DANCE_PAD (Sous-type 5) | Valeur par défaut pour tout nouveau sous-type |
| XINPUT_DEVSUBTYPE_GUITAR (Sous-type 6) | Guitare |
| XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (Sous-type 7) | |
| XINPUT_DEVSUBTYPE_DRUM_KIT (Sous-type 8) | |
| XINPUT_DEVSUBTYPE_GUITAR_BASS (Sous-type 11) | |
| XINPUT_DEVSUBTYPE_ARCADE_PAD (Sous-type 19) |
Note
Les mappages HID suivants sont statiques. Cela signifie que même si le rapport des fonctionnalités de l’appareil indique qu’un bouton ou un axe particulier n’est pas pris en charge, le mappage l’inclut toujours, mais signale toujours une valeur hors état ou centre.
Boîtier de commande
Il s’agit du mappage par défaut et est conçu autour d’un boîtier de commande standard et est exposé en tant que boîtier de commande type d’utilisation HID.
| Contrôle | Nom d’utilisation HID | Page Utilisation | ID d’utilisation |
|---|---|---|---|
| Stick gauche | X, Y | 0x01 | 0x30, 0x31 |
| Stick droit | Rx, Ry | 0x01 | 0x33, 0x34 |
| Déclencheur gauche + déclencheur droit | Z* | 0x01 | 0x32 |
| D-Pad Up, Down, Left, Right | Changement de chapeau | 0x01 | 0x39 |
| Un | Bouton 1 | 0x09 | 0x01 |
| B | Bouton 2 | 0x09 | 0x02 |
| X | Bouton 3 | 0x09 | 0x03 |
| Y | Bouton 4 | 0x09 | 0x04 |
| LB (pare-choc gauche) | Bouton 5 | 0x09 | 0x05 |
| RB (choc droit) | Bouton 6 | 0x09 | 0x06 |
| PRÉCÉDENT | Bouton 7 | 0x09 | 0x07 |
| COMMENCER | Bouton 8 | 0x09 | 0x08 |
| LSB (bouton stick gauche) | Bouton 9 | 0x09 | 0x09 |
| RSB (bouton stick droit) | Bouton 10 | 0x09 | 0x0A |
Note
(*) : Ceci est combiné afin que Z présente le comportement de centrement attendu par la plupart des titres pour la rotation ; cela signifie qu’il n’est pas possible de voir toutes les valeurs de combinaison de déclencheurs possibles via DirectInput et HID.
Arcade Stick/Arcade Pad
Il s’agit du mappage conçu autour du contrôleur Arcade Stick et est exposé sous la forme d’un boîtier de commande type d’utilisation HID. Le Pad Arcade est très similaire à un Stick Arcade, mais dans un facteur de forme plus petit. Ces conceptions remplacent le déclencheur gauche analogique et le déclencheur droit par des boutons numériques qui signalent la valeur d’axe minimale et maximale.
| Contrôle | Nom d’utilisation HID | Page Utilisation | ID d’utilisation |
|---|---|---|---|
| D-Pad Up, Down, Left, Right | Changement de chapeau | 0x01 | 0x39 |
| Un | Bouton 1 | 0x09 | 0x01 |
| B | Bouton 2 | 0x09 | 0x02 |
| X | Bouton 3 | 0x09 | 0x03 |
| Y | Bouton 4 | 0x09 | 0x04 |
| LB (pare-choc gauche) | Bouton 5 | 0x09 | 0x05 |
| RB (choc droit) | Bouton 6 | 0x09 | 0x06 |
| PRÉCÉDENT | Bouton 7 | 0x09 | 0x07 |
| COMMENCER | Bouton 8 | 0x09 | 0x08 |
| Déclencheur gauche | Bouton 9 | 0x09 | 0x09 |
| Déclencheur droit | Bouton 10 | 0x09 | 0x0A |
Ces appareils peuvent ou non prendre en charge des contrôles supplémentaires, mais ils ne sont pas exposés par le mappage HID : Stick gauche, Stick droit, LSB (bouton stick gauche) et RSB (bouton stick droit).
Roue
Ce mappage est conçu autour d’une roue de course et est exposé en tant que boîtier de commande type d’utilisation HID.
| Contrôle | Nom d’utilisation HID | Page Utilisation | ID d’utilisation |
|---|---|---|---|
| Roue (stick gauche X) | X | 0x01 | 0x30 |
| Pédale d’accélérateur (déclencheur droit) + pédale de frein (déclencheur gauche) | Z* | 0x01 | 0x32 |
| D-Pad Up, Down, Left, Right | Changement de chapeau | 0x01 | 0x39 |
| Un | Bouton 1 | 0x09 | 0x01 |
| B | Bouton 2 | 0x09 | 0x02 |
| X | Bouton 3 | 0x09 | 0x03 |
| Y | Bouton 4 | 0x09 | 0x04 |
| LB (pare-choc gauche) | Bouton 5 | 0x09 | 0x05 |
| RB (choc droit) | Bouton 6 | 0x09 | 0x06 |
| LSB (bouton stick gauche) | Bouton 7 | 0x09 | 0x07 |
| RSB (bouton stick droit) | Bouton 8 | 0x09 | 0x08 |
| PRÉCÉDENT | Bouton 9 | 0x09 | 0x09 |
| COMMENCER | Bouton 10 | 0x09 | 0x0A |
Note
(*) : Ceci est combiné afin que Z présente le comportement de centrement attendu par la plupart des titres pour les commandes de frein et d’accélérateur ; cela signifie qu’il n’est pas possible de voir toutes les valeurs de combinaison de pédales possibles via DirectInput.
Stick de vol
Ce mappage est conçu autour d’un stick de vol et est exposé en tant que Joystick type d’utilisation HID.
| Contrôle | Nom d’utilisation | Page Utilisation | ID d’utilisation |
|---|---|---|---|
| Stick de vol (stick gauche) | X, Y | 0x01 | 0x30, 0x31 |
| POV Hat (Stick droit) | Rx, Ry | 0x01 | 0x33, 0x34 |
| Limitation (déclencheur droit) | Z | 0x01 | 0x32 |
| Rudder (déclencheur gauche) | Rz | 0x01 | 0x35 |
| D-Pad Up, Down, Left, Right | Changement de chapeau | 0x01 | 0x39 |
| Arme principale (A) | Bouton 1 | 0x09 | 0x01 |
| Arme secondaire (B) | Bouton 2 | 0x09 | 0x02 |
| X | Bouton 3 | 0x09 | 0x03 |
| Y | Bouton 4 | 0x09 | 0x04 |
| LB (pare-choc gauche) | Bouton 5 | 0x09 | 0x05 |
| RB (choc droit) | Bouton 6 | 0x09 | 0x06 |
| PRÉCÉDENT | Bouton 7 | 0x09 | 0x07 |
| COMMENCER | Bouton 8 | 0x09 | 0x08 |
| LSB (bouton stick gauche) | Bouton 9 | 0x09 | 0x09 |
| RSB (bouton stick droit) | Bouton 10 | 0x09 | 0x0A |
Note
Ceci est basé sur la conception finale de Flight Stick. Étant donné que cela diffère des premières définitions Flight Stick, de nombreux appareils ont un commutateur de mode qui prend en charge l’ancien et le nouveau modèle. Ce mappage suppose le nouveau modèle.