다음을 통해 공유


GameInputDeviceInfo(v2)

입력 장치에 대한 모든 정보를 기술합니다.

구문

struct GameInputDeviceInfo
{
    uint16_t               vendorId;
    uint16_t               productId;
    uint16_t               revisionNumber;
    GameInputUsage         usage;
    GameInputVersion       hardwareVersion;
    GameInputVersion       firmwareVersion;
    APP_LOCAL_DEVICE_ID    deviceId;
    APP_LOCAL_DEVICE_ID    deviceRootId;
    GameInputDeviceFamily  deviceFamily;
    GameInputKind          supportedInput;
    GameInputRumbleMotors  supportedRumbleMotors;
    GameInputSystemButtons supportedSystemButtons;
    GUID                   containerId;
    const char*            displayName;
    const char*            pnpPath;

    const GameInputKeyboardInfo*     keyboardInfo;
    const GameInputMouseInfo*        mouseInfo;
    const GameInputSensorsInfo*      sensorsInfo;
    const GameInputArcadeStickInfo*  arcadeStickInfo;
    const GameInputFlightStickInfo*  flightStickInfo;
    const GameInputGamepadInfo*      gamepadInfo;
    const GameInputRacingWheelInfo*  racingWheelInfo;
    const GameInputUiNavigationInfo* uiNavigationInfo;

    uint32_t                           controllerAxisCount;
    const GameInputControllerAxisInfo* controllerAxisInfo;

    uint32_t                             controllerButtonCount;
    const GameInputControllerButtonInfo* controllerButtonInfo;

    uint32_t                             controllerSwitchCount;
    const GameInputControllerSwitchInfo* controllerSwitchInfo;

    uint32_t                               forceFeedbackMotorCount;
    const GameInputForceFeedbackMotorInfo* forceFeedbackMotorInfo;
};

멤버

vendorId 형식: uint16_t

입력 장치의 공급업체를 식별합니다.

productId 형식: uint16_t

입력 장치를 제품으로 식별합니다.

revisionNumber 형식: uint16_t

디바이스의 하드웨어 수정 번호(있는 경우)입니다.

usage 형식: GameInputUsage

사용된 입력을 기술하는 두 파트로 나눠진 색인입니다.

hardwareVersion 형식: GameInputVersion

디바이스의 하드웨어 버전(있는 경우)입니다.

firmwareVersion 형식: GameInputVersion

디바이스의 펌웨어 버전(있는 경우)입니다.

deviceId 형식: APP_LOCAL_DEVICE_ID

입력 장치의 장치 ID입니다.

deviceRootId 형식: APP_LOCAL_DEVICE_ID

입력 장치의 루트 ID입니다.

deviceFamily 형식: GameInputDeviceFamily

입력 장치가 속하는 입력 장치 군을 지정합니다.

supportedInput 형식: GameInputKind

장치가 지원하는 입력 유형을 기술합니다.

supportedRumbleMotors 형식: GameInputRumbleMotors

장치에 있는 액세스 가능한 진동 모터(있는 경우)를 기술합니다.

supportedSystemButtons 형식: GameInputSystemButtons

종종 게임 외부에서 시스템을 제어하는 데 사용할 수 있는 단추에 대해 설명합니다.

containerId 형식: GUID

입력 디바이스의 컨테이너 ID입니다.

displayName 형식: const char*

디바이스의 식별 이름을 설명합니다.

pnpPath 형식: const char*

디바이스의 플러그 앤 플레이에 대해 설명합니다. 이 경로는 다른 API를 통해 기본 디바이스를 참조하는 데 사용할 수 있습니다.

keyboardInfo 형식: GameInputKeyboardInfo const *

키보드 입력 장치에 대한 정보입니다.

mouseInfo 형식: GameInputMouseInfo const *

마우스 입력 장치에 대한 정보입니다.

sensorsInfo 형식: GameInputSensorsInfo const *

디바이스의 센서에 대한 정보입니다.

arcadeStickInfo 형식: GameInputArcadeStickInfo const *

아케이드 스틱 입력 장치에 대한 정보입니다.

flightStickInfo 형식: GameInputFlightStickInfo const *

비행 스틱 입력 장치에 대한 정보입니다.

gamepadInfo 형식: GameInputGamepadInfo const *

게임 패드 입력 장치에 대한 정보입니다.

racingWheelInfo 형식: GameInputRacingWheelInfo const *

레이싱 휠 입력 장치에 대한 정보입니다.

uiNavigationInfo 형식: GameInputUiNavigationInfo const *

입력 장치의 탐색 매핑에 대한 정보입니다.

controllerAxisCount 형식: uint32_t

입력 장치의 축 수입니다.

controllerAxisInfo 형식: GameInputControllerAxisInfo const *

입력 장치의 모든 축에 대한 정보입니다.

controllerButtonCount 형식: uint32_t

입력 장치의 버튼 수입니다.

controllerButtonInfo 형식: GameInputControllerButtonInfo const *

입력 장치의 모든 버튼에 대한 정보입니다.

controllerSwitchCount 형식: uint32_t

입력 장치의 스위치 수입니다.

controllerSwitchInfo 형식: GameInputControllerSwitchInfo const *

입력 장치의 모든 스위치에 대한 정보입니다.

forceFeedbackMotorCount 형식: uint32_t

입력 장치의 힘 피드백 모터 수입니다.

forceFeedbackMotorInfo 형식: GameInputForceFeedbackMotorInfo const *

장치의 모든 힘 피드백 모터에 대한 정보입니다.

비고

deviceId 디바이스를 고유하게 식별하는 256비트 해시 값인 애플리케이션 로컬 ID입니다. 이 ID는 지정된 장치에 대해 항상 동일하며, 동일한 USB 포트에 연결되어 있는 한, 시스템을 재부팅하거나 응용 프로그램을 다시 실행해도 동일하게 유지됩니다. 응용 프로그램 로컬 ID 해시는 부분적으로 호출을 수행하는 응용 프로그램 및 시스템 측의 정보를 사용해서 생성됩니다.

deviceRootId 복합 디바이스에 대한 루트 디바이스 노드를 식별하는 또 다른 애플리케이션-로컬 ID입니다. 이 ID를 통해 응용 프로그램은 개별 장치들의 관계를 파악할 수 있습니다. 예를 들어 일부 게임 키보드는 여러 키보드 노드가 있는 복합 디바이스로 자신을 노출하여 8개의 동시 키 입력의 레거시 USB 제한을 해결합니다. 이것들은 모두 "시스템" 키보드로 병합되므로, 사용자에게 투명한 방식으로 진행됩니다. 그러나 GameInput API를 통해 키보드별 입력을 처리할 때 이를 이해하면 애플리케이션에서 키 입력에 함수를 매핑할 때 부적절한 가정(예: 키 입력이 항상 특정 장치에서 발생함)을 방지할 수 있습니다. deviceIddeviceRootId 는 디바이스가 복합 디바이스의 많은 인터페이스 중 하나가 아닌 경우 동일합니다.

문자열에는 displayName 디바이스에 대한 "친숙한" 이름이 포함되어 있습니다. 이 문자열은 응용 프로그램의 UI에 표시하기에 적합하지만, 지역화 여부를 보장할 수 없습니다. 그 이유는 GameInput API가 이 문자열을 여러 위치에서 검색하고, 최종 대안 중 하나가 장치의 펌웨어로부터 오기 때문입니다.

구조의 GameInputDeviceInfo 최종 필드는 개별 컨트롤러 단추의 자세한 속성 또는 힘 피드백 및 촉각 피드백 지원에 대한 정보와 같은 디바이스에 대한 가변 크기의 정보 배열에 대한 포인터입니다. NULL 포인터는 장치에서 해당 기능이 제공 또는 지원되지 않음을 나타냅니다. 각 배열의 요소 수는 이 구조에 있는 해당 필드로 표시됩니다(SAL 주석 참조).

어떤 입력 장치라도 모든 속성에 대해 읽기 가능한 값을 가질 수는 없습니다. 일부 입력 디바이스에는 관련 특성에 대한 값만 있습니다. IGameInputDevice::GetDeviceInfo에서 반환됩니다.

요건

헤더: GameInput.h

지원되는 플랫폼: Windows

참고 항목

입력 API 개요
GameInput
IGameInputDevice::GetDeviceInfo