Skip to main content

HID Specs

This header file provides a detailed reference for various HID (Human Interface Device) keycodes used across keyboard, mouse, gamepad, and consumer devices. Each section defines specific keycode enums and their usage.

For detail value, refer to the source code os/framework/HIDSpecs.h.


Keyboard Keycodes​

Enum: KeyboardKeycode​

enum KeyboardKeycode : uint8_t

Defines keycodes for standard keyboard keys, including alphanumeric characters, function keys, and special keys.

Examples:

  • KEY_A = 4
  • KEY_1 = 30
  • KEY_ENTER = 40

Enum: KeyboardMods​

enum KeyboardMods : uint16_t

Defines modifiers such as control, shift, alt, and GUI keys.

Examples:

  • MOD_LEFT_CTRL = (1 << 8)
  • MOD_RIGHT_SHIFT = (1 << 13)

Enum: KeyboardLeds​

enum KeyboardLeds : uint8_t

Defines keyboard LED states, including NUM LOCK, CAPS LOCK, and more.

Examples:

  • LED_NUM_LOCK = (1 << 0)
  • LED_CAPS_LOCK = (1 << 1)

Mouse Keycodes​

Enum: MouseKeycode​

enum MouseKeycode : uint8_t

Defines mouse button codes for left, right, and middle buttons, as well as navigation buttons.

Examples:

  • MOUSE_LEFT = 0x01
  • MOUSE_RIGHT = 0x02

Gamepad Keycodes​

Enum: GamepadKeycode​

enum GamepadKeycode : uint8_t

Defines keycodes for gamepad buttons, including standard buttons (A, B, etc.) and numbered buttons.

Examples:

  • GAMEPAD_A = 0x00
  • GAMEPAD_B = 0x01

Enum: GamepadDPadDirection​

enum GamepadDPadDirection : uint8_t

Defines directions for the gamepad D-pad.

Examples:

  • GAMEPAD_DPAD_CENTERED = 0
  • GAMEPAD_DPAD_UP = 1

Consumer Keycodes​

Enum: ConsumerKeycode​

enum ConsumerKeycode : uint16_t

Defines keycodes for consumer controls such as media keys and brightness adjustments.

Examples:

  • MEDIA_PLAY_PAUSE = 0xCD
  • MEDIA_VOLUME_UP = 0xE9

System Keycodes​

Enum: SystemKeycode​

enum SystemKeycode : uint8_t

Defines keycodes for system-level controls like power, sleep, and wake-up.

Examples:

  • SYSTEM_POWER_DOWN = 0x81
  • HID_SYSTEM_SLEEP = 0x82

Detailed Keycode Tables​

Keyboard Keycodes​

KeyCode
KEY_A4
KEY_B5
KEY_ENTER40
KEY_CAPS_LOCK0x39

Modifier Keys​

ModifierCode
MOD_LEFT_CTRL(1 << 8)
MOD_RIGHT_SHIFT(1 << 13)

Consumer Keys​

KeyCode
MEDIA_PLAY_PAUSE0xCD
MEDIA_VOLUME_UP0xE9

System Keys​

KeyCode
SYSTEM_POWER_DOWN0x81
SYSTEM_SLEEP0x82

Notes​

  1. Some consumer keys might only work on specific operating systems (e.g., Linux).
  2. Gamepad follows the Dinput standard, which is might not work for all games (They only support Xinput).

This documentation is comprehensive and categorized, providing quick references and details about each set of keycodes. It ensures developers can easily locate and understand the purpose of each keycode.

Comments