GameInputDeviceInfo
入力デバイスに関するすべての情報について説明します。
構文
typedef struct GameInputDeviceInfo {
uint32_t infoSize;
uint16_t vendorId;
uint16_t productId;
uint16_t revisionNumber;
uint8_t interfaceNumber;
uint8_t collectionNumber;
GameInputUsage usage;
GameInputVersion hardwareVersion;
GameInputVersion firmwareVersion;
APP_LOCAL_DEVICE_ID deviceId;
APP_LOCAL_DEVICE_ID deviceRootId;
GameInputDeviceFamily deviceFamily;
GameInputDeviceCapabilities capabilities;
GameInputKind supportedInput;
GameInputRumbleMotors supportedRumbleMotors;
uint32_t inputReportCount;
uint32_t outputReportCount;
uint32_t featureReportCount;
uint32_t controllerAxisCount;
uint32_t controllerButtonCount;
uint32_t controllerSwitchCount;
uint32_t touchPointCount;
uint32_t touchSensorCount;
uint32_t forceFeedbackMotorCount;
uint32_t hapticFeedbackMotorCount;
uint32_t deviceStringCount;
uint32_t deviceDescriptorSize;
GameInputRawDeviceReportInfo const * inputReportInfo;
GameInputRawDeviceReportInfo const * outputReportInfo;
GameInputRawDeviceReportInfo const * featureReportInfo;
GameInputControllerAxisInfo const * controllerAxisInfo;
GameInputControllerButtonInfo const * controllerButtonInfo;
GameInputControllerSwitchInfo const * controllerSwitchInfo;
GameInputKeyboardInfo const * keyboardInfo;
GameInputMouseInfo const * mouseInfo;
GameInputTouchSensorInfo const * touchSensorInfo;
GameInputMotionInfo const * motionInfo;
GameInputArcadeStickInfo const * arcadeStickInfo;
GameInputFlightStickInfo const * flightStickInfo;
GameInputGamepadInfo const * gamepadInfo;
GameInputRacingWheelInfo const * racingWheelInfo;
GameInputUiNavigationInfo const * uiNavigationInfo;
GameInputForceFeedbackMotorInfo const * forceFeedbackMotorInfo;
GameInputHapticFeedbackMotorInfo const * hapticFeedbackMotorInfo;
GameInputString const * displayName;
GameInputString const * deviceStrings;
void const * deviceDescriptorData;
} GameInputDeviceInfo
メンバー
infoSize
型: uint32_t
デバイス情報のサイズ。
vendorId
型: uint16_t
入力デバイスのベンダーを識別します。
productId
型: uint16_t
入力デバイスを製品として識別します。
revisionNumber
型: uint16_t
デバイスのリビジョン番号。
interfaceNumber
型: uint8_t
デバイス インターフェイス番号。
collectionNumber
型: uint8_t
デバイス コレクション番号。
usage
型: GameInputUsage
使用される入力を記述する 2 つの部分から成るインデックス。
hardwareVersion
型: GameInputVersion
使用されているハードウェアのバージョンを示します。
firmwareVersion
型: GameInputVersion
使用されているファームウェアのバージョンを示します。
deviceId
型: APP_LOCAL_DEVICE_ID
入力デバイスのデバイス ID。
deviceRootId
型: APP_LOCAL_DEVICE_ID
入力デバイスのルート ID。
deviceFamily
型: GameInputDeviceFamily
入力デバイスが属する入力デバイス ファミリを指定します。
capabilities
型: GameInputDeviceCapabilities
ゲーム コントローラーで使用できる機能について説明します。
supportedInput
型: GameInputKind
デバイスでサポートされる入力の種類 (1 つまたは複数) を記述します。
supportedRumbleMotors
型: GameInputRumbleMotors
デバイス上のアクセス可能な振動モーター (ある場合) を記述します。
inputReportCount
型: uint32_t
デバイスの入力レポートの数。
outputReportCount
型: uint32_t
デバイスの出力レポートの数。
featureReportCount
型: uint32_t
デバイスの機能レポートの数。
controllerAxisCount
型: uint32_t
入力デバイス上の軸の数。
controllerButtonCount
型: uint32_t
入力デバイス上のボタンの数。
controllerSwitchCount
型: uint32_t
入力デバイス上のスイッチの数。
touchPointCount
型: uint32_t
デバイス上のタッチ入力で同時に読み取ることができるタッチ入力の数。
touchSensorCount
型: uint32_t
デバイス上のタッチ センサーの数。
forceFeedbackMotorCount
型: uint32_t
入力デバイス上のフォース フィードバック モーターの数。
hapticFeedbackMotorCount
型: uint32_t
入力デバイス上の触覚フィードバック モーターの数。
deviceStringCount
型: uint32_t
デバイス情報に含まれている文字列の数。
deviceDescriptorSize
型: uint32_t
デバイスの説明のサイズ。
inputReportInfo
型: GameInputRawDeviceReportInfo const *
入力レポート情報オブジェクト。
outputReportInfo
型: GameInputRawDeviceReportInfo const *
出力レポート。
featureReportInfo
型: GameInputRawDeviceReportInfo const *
機能レポート。
controllerAxisInfo
型: GameInputControllerAxisInfo const *
入力デバイスのすべての軸に関する情報。
controllerButtonInfo
型: GameInputControllerButtonInfo const *
入力デバイス上のすべてのボタンに関する情報。
controllerSwitchInfo
型: GameInputControllerSwitchInfo const *
入力デバイス上のすべてのスイッチに関する情報。
keyboardInfo
型: GameInputKeyboardInfo const *
キーボード入力デバイスに関する情報。
mouseInfo
型: GameInputMouseInfo const *
マウス入力デバイスに関する情報。
touchSensorInfo
型: GameInputTouchSensorInfo const *
入力デバイス上のすべてのタッチ センサーに関する情報。
motionInfo
型: GameInputMotionInfo const *
モーション情報に関する情報。
arcadeStickInfo
型: GameInputArcadeStickInfo const *
アーケード スティック入力デバイスに関する情報。
flightStickInfo
型: GameInputFlightStickInfo const *
フライト スティック入力デバイスに関する情報。
gamepadInfo
型: GameInputGamepadInfo const *
ゲームパッド入力デバイスに関する情報。
racingWheelInfo
型: GameInputRacingWheelInfo const *
レーシング ホイール入力デバイスに関する情報。
uiNavigationInfo
型: GameInputUiNavigationInfo const *
入力デバイスのナビゲーション マッピングに関する情報。
forceFeedbackMotorInfo
型: GameInputForceFeedbackMotorInfo const *
デバイス上のすべてのフォース フィードバック モーターに関する情報。
hapticFeedbackMotorInfo
型: GameInputHapticFeedbackMotorInfo const *
デバイス上のすべての触覚フィードバック モーターに関する情報
displayName
型: GameInputString const *
デバイスの表示名。
deviceStrings
型: GameInputString const *
デバイスのゲーム入力文字列の一覧。
deviceDescriptorData
型: void const *
デバイスを記述するオブジェクト。
解説
deviceId は、アプリケーションのローカル ID で、デバイスを一意に識別する 256 ビットのハッシュ値です。 同じ USB ポートに接続されている限り、この ID は、アプリケーションの実行やシステムの再起動をまたがって特定のデバイスに対して常に同じです。 アプリケーションのローカル ID ハッシュの一部は、呼び出し元のアプリケーションとシステムに固有の情報で生成されます。 そのため、特定のアプリケーションが実行されるたびにアプリケーションのローカル ID は同じになりますが、異なるアプリケーションまたは異なるシステムの同じアプリケーション間では異なります。 これはユーザーのプライバシーを保護するために行われるので、ユーザーのデバイスを介してアプリケーション/システムをまたがってユーザーを追跡することはできません。 アプリケーションのローカル ID は、複数の同じデバイスがシステムに接続されている場合に、安定した入力マッピングを作成するためにアプリケーションによって使用されます。
deviceRootId はアプリケーションの別のローカル ID で、複合デバイスのルート デバイス ノードを識別します。 これにより、アプリケーションは個々のデバイスの関係について推論できます。 たとえば、一部のゲーム キーボードは、複数のキーボード ノードを持つ複合デバイスとして自身を公開することで、8 つの同時キー押下という従来の USB の制限を回避します。 これらは "システム" キーボードにマージされるので、通常はユーザーに透過的です。 しかし、GameInput API 経由でキーボード入力ごとに処理するときにこれを理解することにより、アプリケーションは機能をキー押下にマップする際に不適切な仮定 (例: キー押下は常に特定のデバイスで行われる) を避けることができます。 デバイスが複合デバイス上の多数のインターフェイスのいずれでもない場合、deviceId と deviceRootId は同じです。
displayName 文字列にはデバイスの "フレンドリ" 名が含まれます。 この文字列はアプリケーションの UI での表示に適していますが、ローカライズされることが保証されません。 その理由は、GameInput API は複数の場所でこの文字列を検索し、最終的なフォールバックの 1 つはデバイスのファームウェアから取得されるからです。
GameInputDeviceInfo 構造体の最後フィールドは、個々のコントローラー ボタンの詳細なプロパティや、フォース フィードバックと触覚フィードバックのサポートに関する情報など、デバイスに関する情報の可変サイズの配列へのポインターです。 NULL ポインターは、対応する機能が利用できないか、デバイスでサポートされていないことを示します。 (SAL 注釈に示されているように) 各配列の要素の数は構造体の対応するフィールドで示されます。
1 つの入力デバイスにすべての属性の読み取り可能値はありません。 一部の入力デバイスには、関連属性の値だけがあります。
IGameInputDevice::GetDeviceInfo によって返されます。
要件
ヘッダー: GameInput.h
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体