다음을 통해 공유


GameInputDeviceInfo(v1)

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

구문

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

    const GameInputKeyboardInfo*     keyboardInfo;
    const GameInputMouseInfo*        mouseInfo;
    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

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

usage 형식: GameInputUsage

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

deviceId 형식: APP_LOCAL_DEVICE_ID

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

deviceRootId 형식: APP_LOCAL_DEVICE_ID

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

deviceFamily 형식: GameInputDeviceFamily

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

supportedInput 형식: GameInputKind

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

supportedRumbleMotors 형식: GameInputRumbleMotors

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

supportedSystemButtons 형식: GameInputSystemButtons

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

displayName 형식: const char*

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

pnpPath 형식: const char*

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

keyboardInfo 형식: GameInputKeyboardInfo const *

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

mouseInfo 형식: GameInputMouseInfo 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