입력 장치에 대한 모든 정보를 기술합니다.
구문
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를 통해 키보드별 입력을 처리할 때 이를 이해하면 애플리케이션에서 키 입력에 함수를 매핑할 때 부적절한 가정(예: 키 입력이 항상 특정 장치에서 발생함)을 방지할 수 있습니다.
deviceId 및 deviceRootId 는 디바이스가 복합 디바이스의 많은 인터페이스 중 하나가 아닌 경우 동일합니다.
문자열에는 displayName 디바이스에 대한 "친숙한" 이름이 포함되어 있습니다. 이 문자열은 응용 프로그램의 UI에 표시하기에 적합하지만, 지역화 여부를 보장할 수 없습니다. 그 이유는 GameInput API가 이 문자열을 여러 위치에서 검색하고, 최종 대안 중 하나가 장치의 펌웨어로부터 오기 때문입니다.
구조의 GameInputDeviceInfo 최종 필드는 개별 컨트롤러 단추의 자세한 속성 또는 힘 피드백 및 촉각 피드백 지원에 대한 정보와 같은 디바이스에 대한 가변 크기의 정보 배열에 대한 포인터입니다. NULL 포인터는 장치에서 해당 기능이 제공 또는 지원되지 않음을 나타냅니다. 각 배열의 요소 수는 이 구조에 있는 해당 필드로 표시됩니다(SAL 주석 참조).
어떤 입력 장치라도 모든 속성에 대해 읽기 가능한 값을 가질 수는 없습니다. 일부 입력 디바이스에는 관련 특성에 대한 값만 있습니다. IGameInputDevice::GetDeviceInfo에서 반환됩니다.
요건
헤더: GameInput.h
지원되는 플랫폼: Windows