5276fcb739
Add support for HID Consumer page (usage page 0x0C) as key events.
Cross-referenced with Linux 7.1 drivers/hid/hid-input.c consumer
usage mapping.
Changes:
send_key_event() now handles usage_page 0x0C with a concrete
mapping table:
0x00E2 → scancode 0xF0 (Mute)
0x00E9 → scancode 0xF1 (Volume Up)
0x00EA → scancode 0xF2 (Volume Down)
0x00B0 → scancode 0xF3 (Play)
0x00B1 → scancode 0xF4 (Pause)
0x00B3 → scancode 0xF5 (Next Track)
0x00B4 → scancode 0xF6 (Previous Track)
0x00B5 → scancode 0xF7 (Stop)
0x00CD → scancode 0xF3 (Play/Pause)
0x0183 → scancode 0xF8 (AL Config)
0x018A → scancode 0xF9 (Email)
0x0192 → scancode 0xFA (Calculator)
0x0194 → scancode 0xFB (My Computer)
0x0221 → scancode 0xFC (Search)
0x0223 → scancode 0xFD (Home)
Event loop now dispatches usage_page 0x0C to send_key_event,
treating it identically to keyboard key press/release.
OrbKeyEvent.scancode is u8, so we use the 0xF0-0xFF vendor-key
block instead of the full Linux evdev encoding (0xC0000 | usage).
Cross-reference: Linux 7.1
- drivers/hid/hid-input.c: hidinput_configure_usage()
- include/uapi/linux/input-event-codes.h: KEY_VOLUMEUP, etc.
This means USB keyboards with media keys (Volume, Mute, Play/Pause,
Next/Previous Track) will now produce scancodes the display server
can map to media actions.