Created
June 29, 2017 20:30
-
-
Save mantognini/92fd36818985934a3f1610266bd22971 to your computer and use it in GitHub Desktop.
Explore USB HID HUT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IOHIDElementRef element = ... | |
switch (IOHIDElementGetUsagePage(element)) { | |
case kHIDPage_Undefined: sf::err() << "Page of element: kHIDPage_Undefined" << std::endl; break; | |
case kHIDPage_GenericDesktop: | |
sf::err() << "Page of element: kHIDPage_GenericDesktop" << std::endl; | |
switch (IOHIDElementGetUsage(element)) { | |
case kHIDUsage_GD_Pointer: sf::err() << " Usage of element: kHIDUsage_GD_Pointer" << std::endl; break; | |
case kHIDUsage_GD_Mouse: sf::err() << " Usage of element: kHIDUsage_GD_Mouse" << std::endl; break; | |
/* 0x03 Reserved */ | |
case kHIDUsage_GD_Joystick: sf::err() << " Usage of element: kHIDUsage_GD_Joystick" << std::endl; break; | |
case kHIDUsage_GD_GamePad: sf::err() << " Usage of element: kHIDUsage_GD_GamePad" << std::endl; break; | |
case kHIDUsage_GD_Keyboard: sf::err() << " Usage of element: kHIDUsage_GD_Keyboard" << std::endl; break; | |
case kHIDUsage_GD_Keypad: sf::err() << " Usage of element: kHIDUsage_GD_Keypad" << std::endl; break; | |
case kHIDUsage_GD_MultiAxisController: sf::err() << " Usage of element: kHIDUsage_GD_MultiAxisController" << std::endl; break; | |
case kHIDUsage_GD_TabletPCSystemControls: sf::err() << " Usage of element: kHIDUsage_GD_TabletPCSystemControls" << std::endl; break; | |
case kHIDUsage_GD_AssistiveControl: sf::err() << " Usage of element: kHIDUsage_GD_AssistiveControl" << std::endl; break; | |
/* 0x0B - 0x2F Reserved */ | |
case kHIDUsage_GD_X: sf::err() << " Usage of element: kHIDUsage_GD_X" << std::endl; break; | |
case kHIDUsage_GD_Y: sf::err() << " Usage of element: kHIDUsage_GD_Y" << std::endl; break; | |
case kHIDUsage_GD_Z: sf::err() << " Usage of element: kHIDUsage_GD_Z" << std::endl; break; | |
case kHIDUsage_GD_Rx: sf::err() << " Usage of element: kHIDUsage_GD_Rx" << std::endl; break; | |
case kHIDUsage_GD_Ry: sf::err() << " Usage of element: kHIDUsage_GD_Ry" << std::endl; break; | |
case kHIDUsage_GD_Rz: sf::err() << " Usage of element: kHIDUsage_GD_Rz" << std::endl; break; | |
case kHIDUsage_GD_Slider: sf::err() << " Usage of element: kHIDUsage_GD_Slider" << std::endl; break; | |
case kHIDUsage_GD_Dial: sf::err() << " Usage of element: kHIDUsage_GD_Dial" << std::endl; break; | |
case kHIDUsage_GD_Wheel: sf::err() << " Usage of element: kHIDUsage_GD_Wheel" << std::endl; break; | |
case kHIDUsage_GD_Hatswitch: sf::err() << " Usage of element: kHIDUsage_GD_Hatswitch" << std::endl; break; | |
case kHIDUsage_GD_CountedBuffer: sf::err() << " Usage of element: kHIDUsage_GD_CountedBuffer" << std::endl; break; | |
case kHIDUsage_GD_ByteCount: sf::err() << " Usage of element: kHIDUsage_GD_ByteCount" << std::endl; break; | |
case kHIDUsage_GD_MotionWakeup: sf::err() << " Usage of element: kHIDUsage_GD_MotionWakeup" << std::endl; break; | |
case kHIDUsage_GD_Start: sf::err() << " Usage of element: kHIDUsage_GD_Start" << std::endl; break; | |
case kHIDUsage_GD_Select: sf::err() << " Usage of element: kHIDUsage_GD_Select" << std::endl; break; | |
/* 0x3F Reserved */ | |
case kHIDUsage_GD_Vx: sf::err() << " Usage of element: kHIDUsage_GD_Vx" << std::endl; break; | |
case kHIDUsage_GD_Vy: sf::err() << " Usage of element: kHIDUsage_GD_Vy" << std::endl; break; | |
case kHIDUsage_GD_Vz: sf::err() << " Usage of element: kHIDUsage_GD_Vz" << std::endl; break; | |
case kHIDUsage_GD_Vbrx: sf::err() << " Usage of element: kHIDUsage_GD_Vbrx" << std::endl; break; | |
case kHIDUsage_GD_Vbry: sf::err() << " Usage of element: kHIDUsage_GD_Vbry" << std::endl; break; | |
case kHIDUsage_GD_Vbrz: sf::err() << " Usage of element: kHIDUsage_GD_Vbrz" << std::endl; break; | |
case kHIDUsage_GD_Vno: sf::err() << " Usage of element: kHIDUsage_GD_Vno" << std::endl; break; | |
/* 0x47 - 0x7F Reserved */ | |
case kHIDUsage_GD_SystemControl: sf::err() << " Usage of element: kHIDUsage_GD_SystemControl" << std::endl; break; | |
case kHIDUsage_GD_SystemPowerDown: sf::err() << " Usage of element: kHIDUsage_GD_SystemPowerDown" << std::endl; break; | |
case kHIDUsage_GD_SystemSleep: sf::err() << " Usage of element: kHIDUsage_GD_SystemSleep" << std::endl; break; | |
case kHIDUsage_GD_SystemWakeUp: sf::err() << " Usage of element: kHIDUsage_GD_SystemWakeUp" << std::endl; break; | |
case kHIDUsage_GD_SystemContextMenu: sf::err() << " Usage of element: kHIDUsage_GD_SystemContextMenu" << std::endl; break; | |
case kHIDUsage_GD_SystemMainMenu: sf::err() << " Usage of element: kHIDUsage_GD_SystemMainMenu" << std::endl; break; | |
case kHIDUsage_GD_SystemAppMenu: sf::err() << " Usage of element: kHIDUsage_GD_SystemAppMenu" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuHelp: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuHelp" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuExit: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuExit" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuSelect: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuSelect" << std::endl; break; | |
// case kHIDUsage_GD_SystemMenu: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenu" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuRight: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuRight" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuLeft: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuLeft" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuUp: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuUp" << std::endl; break; | |
case kHIDUsage_GD_SystemMenuDown: sf::err() << " Usage of element: kHIDUsage_GD_SystemMenuDown" << std::endl; break; | |
/* 0x8E - 0x8F Reserved */ | |
case kHIDUsage_GD_DPadUp: sf::err() << " Usage of element: kHIDUsage_GD_DPadUp" << std::endl; break; | |
case kHIDUsage_GD_DPadDown: sf::err() << " Usage of element: kHIDUsage_GD_DPadDown" << std::endl; break; | |
case kHIDUsage_GD_DPadRight: sf::err() << " Usage of element: kHIDUsage_GD_DPadRight" << std::endl; break; | |
case kHIDUsage_GD_DPadLeft: sf::err() << " Usage of element: kHIDUsage_GD_DPadLeft" << std::endl; break; | |
/* 0x94 - 0xFFFF Reserved */ | |
case kHIDUsage_GD_Reserved: sf::err() << " Usage of element: kHIDUsage_GD_Reserved" << std::endl; break; | |
} | |
break; | |
case kHIDPage_Simulation: sf::err() << "Page of element: kHIDPage_Simulation" << std::endl; break; | |
case kHIDPage_VR: sf::err() << "Page of element: kHIDPage_VR" << std::endl; break; | |
case kHIDPage_Sport: sf::err() << "Page of element: kHIDPage_Sport" << std::endl; break; | |
case kHIDPage_Game: sf::err() << "Page of element: kHIDPage_Game" << std::endl; break; | |
case kHIDPage_GenericDeviceControls: sf::err() << "Page of element: kHIDPage_GenericDeviceControls" << std::endl; break; | |
case kHIDPage_KeyboardOrKeypad: sf::err() << "Page of element: kHIDPage_KeyboardOrKeypad" << std::endl; break; | |
case kHIDPage_LEDs: sf::err() << "Page of element: kHIDPage_LEDs" << std::endl; break; | |
case kHIDPage_Button: sf::err() << "Page of element: kHIDPage_Button" << std::endl; break; | |
case kHIDPage_Ordinal: sf::err() << "Page of element: kHIDPage_Ordinal" << std::endl; break; | |
case kHIDPage_Telephony: sf::err() << "Page of element: kHIDPage_Telephony" << std::endl; break; | |
case kHIDPage_Consumer: sf::err() << "Page of element: kHIDPage_Consumer" << std::endl; break; | |
case kHIDPage_Digitizer: sf::err() << "Page of element: kHIDPage_Digitizer" << std::endl; break; | |
/* Reserved 0x0E */ | |
case kHIDPage_PID: sf::err() << "Page of element: kHIDPage_PID" << std::endl; break; | |
case kHIDPage_Unicode: sf::err() << "Page of element: kHIDPage_Unicode" << std::endl; break; | |
/* Reserved 0x11 - 0x13 */ | |
case kHIDPage_AlphanumericDisplay: sf::err() << "Page of element: kHIDPage_AlphanumericDisplay" << std::endl; break; | |
/* Reserved 0x15 - 0x1F */ | |
case kHIDPage_Sensor: sf::err() << "Page of element: kHIDPage_Sensor" << std::endl; break; | |
/* Reserved 0x21 - 0x7f */ | |
case kHIDPage_Monitor: sf::err() << "Page of element: kHIDPage_Monitor" << std::endl; break; | |
case kHIDPage_MonitorEnumerated: sf::err() << "Page of element: kHIDPage_MonitorEnumerated" << std::endl; break; | |
case kHIDPage_MonitorVirtual: sf::err() << "Page of element: kHIDPage_MonitorVirtual" << std::endl; break; | |
case kHIDPage_MonitorReserved: sf::err() << "Page of element: kHIDPage_MonitorReserved" << std::endl; break; | |
/* Power 0x84 - 0x87 USB Device Class Definition for Power Devices */ | |
case kHIDPage_PowerDevice: sf::err() << "Page of element: kHIDPage_PowerDevice" << std::endl; break; | |
case kHIDPage_BatterySystem: sf::err() << "Page of element: kHIDPage_BatterySystem" << std::endl; break; | |
case kHIDPage_PowerReserved: sf::err() << "Page of element: kHIDPage_PowerReserved" << std::endl; break; | |
case kHIDPage_PowerReserved2: sf::err() << "Page of element: kHIDPage_PowerReserved2" << std::endl; break; | |
/* Reserved 0x88 - 0x8B */ | |
case kHIDPage_BarCodeScanner: sf::err() << "Page of element: kHIDPage_BarCodeScanner" << std::endl; break; | |
case kHIDPage_WeighingDevice: sf::err() << "Page of element: kHIDPage_WeighingDevice" << std::endl; break; | |
// case kHIDPage_Scale: sf::err() << "Page of element: kHIDPage_Scale" << std::endl; break; | |
case kHIDPage_MagneticStripeReader: sf::err() << "Page of element: kHIDPage_MagneticStripeReader" << std::endl; break; | |
/* ReservedPointofSalepages 0x8F */ | |
case kHIDPage_CameraControl: sf::err() << "Page of element: kHIDPage_CameraControl" << std::endl; break; | |
case kHIDPage_Arcade: sf::err() << "Page of element: kHIDPage_Arcade" << std::endl; break; | |
/* Reserved 0x92 - 0xFEFF */ | |
/* VendorDefined 0xFF00 - 0xFFFF */ | |
// default: sf::err() << "Page of element: (reserved) 0x" << std::hex << IOHIDElementGetUsagePage(element) << std::dec << std::endl; break; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment