GameInputDeviceInfo
Décrit toutes les informations relatives à un périphérique d’entrée.Syntaxe
Membres
vendorIdType : uint16_t Identifie le fabricant du périphérique d’entrée. productId
Type : uint16_t Identifie le périphérique d’entrée en tant que produit. revisionNumber
Type : uint16_t Numéro de révision matérielle de l’appareil, le cas échéant. usage
Type : GameInputUsage Index en deux parties qui décrit l’entrée utilisée. hardwareVersion
Type : GameInputVersion Version matérielle de l’appareil, le cas échéant. firmwareVersion
Type : GameInputVersion Version du microprogramme de l’appareil, le cas échéant. deviceId
Type : APP_LOCAL_DEVICE_ID ID d’appareil du périphérique d’entrée. deviceRootId
Type : APP_LOCAL_DEVICE_ID ID racine du périphérique d’entrée. deviceFamily
Type : GameInputDeviceFamily Désigne la famille de périphériques d’entrée à laquelle appartient le périphérique d’entrée. supportedInput
Type : GameInputKind Décrit le ou les types d’entrée pris en charge par l’appareil. supportedRumbleMotors
Type : GameInputRumbleMotors Décrit les moteurs de vibration accessibles sur l’appareil, le cas échéant. supportedSystemButtons
Type : GameInputSystemButtons Décrit les boutons disponibles pour contrôler le système, souvent en dehors d’un jeu. containerId
Type : GUID ID de conteneur du périphérique d’entrée. displayName
Type : const char* Décrit le nom convivial de l’appareil. pnpPath
Type : const char* Décrit la fonctionnalité Plug-and-Play de l’appareil. Utilisez ce chemin pour référencer les appareils sous-jacents via d’autres API. keyboardInfo
Type : GameInputKeyboardInfo const * Informations sur un périphérique d’entrée de type clavier. mouseInfo
Type : GameInputMouseInfo const * Informations sur un périphérique d’entrée de type souris. sensorsInfo
Type : GameInputSensorsInfo const * Informations sur les capteurs de l’appareil. controllerInfo
Type : GameInputControllerInfo const * Informations sur le périphérique d’entrée de type manette générique. La manette représente les axes, boutons et commutateurs bruts non mappés d’un appareil. arcadeStickInfo
Type : GameInputArcadeStickInfo const * Informations sur un périphérique d’entrée de type stick arcade. flightStickInfo
Type : GameInputFlightStickInfo const * Informations sur un périphérique d’entrée de type joystick de vol. gamepadInfo
Type : GameInputGamepadInfo const * Informations sur un périphérique d’entrée de type manette. racingWheelInfo
Type : GameInputRacingWheelInfo const * Informations sur un périphérique d’entrée de type volant de course. forceFeedbackMotorCount
Type : uint32_t Nombre de moteurs de retour de force du périphérique d’entrée. forceFeedbackMotorInfo
Type : GameInputForceFeedbackMotorInfo const * Informations sur tous les moteurs de retour de force d’un appareil. inputReportCount
Type : uint32_t Nombre de rapports d’entrée de l’appareil. inputReportInfo
Type : GameInputRawDeviceReportInfo const * Objet d’informations sur les rapports d’entrée. outputReportCount
Type : uint32_t Nombre de rapports de sortie de l’appareil. outputReportInfo
Type : GameInputRawDeviceReportInfo const * Rapport de sortie.
Remarques
Tous les membres de type chaîne de cette structure utilisent l’encodage UTF-8. LedeviceId est un ID local à l’application : une valeur de hachage de 256 bits qui identifie l’appareil de manière unique. Cet ID reste toujours le même pour un appareil donné, même entre les exécutions d’une application ou les redémarrages du système, tant que l’appareil est connecté au même port USB. L’application génère des hachages d’ID locaux à l’application, en partie à partir d’informations propres à l’application appelante et au système.
Le deviceRootId est un autre ID local à l’application, qui identifie le nœud d’appareil racine des appareils composites. Cela permet aux applications de comprendre la relation entre les différents appareils. Par exemple, certains claviers de jeu contournent l’ancienne limite USB de huit frappes simultanées en s’exposant comme un appareil composite doté de plusieurs nœuds de clavier. Ces nœuds sont fusionnés dans le clavier « système », ce qui est généralement transparent pour l’utilisateur. Toutefois, lors du traitement de l’entrée par clavier via l’API GameInput, le fait de comprendre ce mécanisme permet aux applications d’éviter des hypothèses erronées (par exemple, qu’une frappe provient toujours d’un appareil spécifique) lors du mappage de fonctions à des frappes. Le deviceId et le deviceRootId sont identiques si l’appareil n’est pas l’une des multiples interfaces d’un appareil composite.
La chaîne displayName contient un nom « convivial » pour l’appareil. Vous pouvez afficher cette chaîne dans l’interface utilisateur d’une application, mais rien ne garantit qu’elle soit localisée. Cette absence de localisation s’explique par le fait que l’API GameInput recherche cette chaîne à plusieurs emplacements, et l’une des dernières solutions de repli provient du microprogramme de l’appareil.
Les derniers champs de la structure GameInputDeviceInfo sont des pointeurs vers des tableaux de taille variable contenant des informations sur l’appareil, comme des informations sur la prise en charge du retour de force et du retour haptique. Des pointeurs NULL indiquent que la fonctionnalité correspondante n’est pas disponible ou n’est pas prise en charge par l’appareil. Un champ correspondant de la structure indique le nombre d’éléments de chaque tableau, comme indiqué dans les annotations SAL (Source Annotation Language).
Aucun périphérique d’entrée ne fournit de valeurs lisibles pour tous les attributs. Certains appareils n’incluent des valeurs que pour les attributs pertinents. Le système retourne ces informations via IGameInputDevice::GetDeviceInfo.
Documentation conceptuelle
Voir aussi
Vue d’ensemble de l’API InputGameInput
IGameInputDevice::GetDeviceInfo
