enum InputCapability {
KEYBOARD_KEY_RESERVED = 0
KEYBOARD_KEY_ESC = 1
KEYBOARD_KEY_1 = 2
KEYBOARD_KEY_2 = 3
KEYBOARD_KEY_3 = 4
KEYBOARD_KEY_4 = 5
KEYBOARD_KEY_5 = 6
KEYBOARD_KEY_6 = 7
KEYBOARD_KEY_7 = 8
KEYBOARD_KEY_8 = 9
KEYBOARD_KEY_9 = 10
KEYBOARD_KEY_0 = 11
KEYBOARD_KEY_MINUS = 12
KEYBOARD_KEY_EQUAL = 13
KEYBOARD_KEY_BACKSPACE = 14
KEYBOARD_KEY_TAB = 15
KEYBOARD_KEY_Q = 16
KEYBOARD_KEY_W = 17
KEYBOARD_KEY_E = 18
KEYBOARD_KEY_R = 19
KEYBOARD_KEY_T = 20
KEYBOARD_KEY_Y = 21
KEYBOARD_KEY_U = 22
KEYBOARD_KEY_I = 23
KEYBOARD_KEY_O = 24
KEYBOARD_KEY_P = 25
KEYBOARD_KEY_LEFTBRACE = 26
KEYBOARD_KEY_RIGHTBRACE = 27
KEYBOARD_KEY_ENTER = 28
KEYBOARD_KEY_LEFTCTRL = 29
KEYBOARD_KEY_A = 30
KEYBOARD_KEY_S = 31
KEYBOARD_KEY_D = 32
KEYBOARD_KEY_F = 33
KEYBOARD_KEY_G = 34
KEYBOARD_KEY_H = 35
KEYBOARD_KEY_J = 36
KEYBOARD_KEY_K = 37
KEYBOARD_KEY_L = 38
KEYBOARD_KEY_SEMICOLON = 39
KEYBOARD_KEY_APOSTROPHE = 40
KEYBOARD_KEY_GRAVE = 41
KEYBOARD_KEY_LEFTSHIFT = 42
KEYBOARD_KEY_BACKSLASH = 43
KEYBOARD_KEY_Z = 44
KEYBOARD_KEY_X = 45
KEYBOARD_KEY_C = 46
KEYBOARD_KEY_V = 47
KEYBOARD_KEY_B = 48
KEYBOARD_KEY_N = 49
KEYBOARD_KEY_M = 50
KEYBOARD_KEY_COMMA = 51
KEYBOARD_KEY_DOT = 52
KEYBOARD_KEY_SLASH = 53
KEYBOARD_KEY_RIGHTSHIFT = 54
KEYBOARD_KEY_KPASTERISK = 55
KEYBOARD_KEY_LEFTALT = 56
KEYBOARD_KEY_SPACE = 57
KEYBOARD_KEY_CAPSLOCK = 58
KEYBOARD_KEY_F1 = 59
KEYBOARD_KEY_F2 = 60
KEYBOARD_KEY_F3 = 61
KEYBOARD_KEY_F4 = 62
KEYBOARD_KEY_F5 = 63
KEYBOARD_KEY_F6 = 64
KEYBOARD_KEY_F7 = 65
KEYBOARD_KEY_F8 = 66
KEYBOARD_KEY_F9 = 67
KEYBOARD_KEY_F10 = 68
KEYBOARD_KEY_NUMLOCK = 69
KEYBOARD_KEY_SCROLLLOCK = 70
KEYBOARD_KEY_KP7 = 71
KEYBOARD_KEY_KP8 = 72
KEYBOARD_KEY_KP9 = 73
KEYBOARD_KEY_KPMINUS = 74
KEYBOARD_KEY_KP4 = 75
KEYBOARD_KEY_KP5 = 76
KEYBOARD_KEY_KP6 = 77
KEYBOARD_KEY_KPPLUS = 78
KEYBOARD_KEY_KP1 = 79
KEYBOARD_KEY_KP2 = 80
KEYBOARD_KEY_KP3 = 81
KEYBOARD_KEY_KP0 = 82
KEYBOARD_KEY_KPDOT = 83
KEYBOARD_KEY_ZENKAKUHANKAKU 85
KEYBOARD_KEY_102ND = 86
KEYBOARD_KEY_F11 = 87
KEYBOARD_KEY_F12 = 88
KEYBOARD_KEY_RO = 89
KEYBOARD_KEY_KATAKANA = 90
KEYBOARD_KEY_HIRAGANA = 91
KEYBOARD_KEY_HENKAN = 92
KEYBOARD_KEY_KATAKANAHIRAGANA 93
KEYBOARD_KEY_MUHENKAN = 94
KEYBOARD_KEY_KPJPCOMMA = 95
KEYBOARD_KEY_KPENTER = 96
KEYBOARD_KEY_RIGHTCTRL = 97
KEYBOARD_KEY_KPSLASH = 98
KEYBOARD_KEY_SYSRQ = 99
KEYBOARD_KEY_RIGHTALT = 100
KEYBOARD_KEY_LINEFEED = 101
KEYBOARD_KEY_HOME = 102
KEYBOARD_KEY_UP = 103
KEYBOARD_KEY_PAGEUP = 104
KEYBOARD_KEY_LEFT = 105
KEYBOARD_KEY_RIGHT = 106
KEYBOARD_KEY_END = 107
KEYBOARD_KEY_DOWN = 108
KEYBOARD_KEY_PAGEDOWN = 109
KEYBOARD_KEY_INSERT = 110
KEYBOARD_KEY_DELETE = 111
KEYBOARD_KEY_MACRO = 112
KEYBOARD_KEY_MUTE = 113
KEYBOARD_KEY_VOLUMEDOWN = 114
KEYBOARD_KEY_VOLUMEUP = 115
KEYBOARD_KEY_POWER = 116 /* SC System Power Down */
KEYBOARD_KEY_KPEQUAL = 117
KEYBOARD_KEY_KPPLUSMINUS = 118
KEYBOARD_KEY_PAUSE = 119
KEYBOARD_KEY_SCALE = 120 /* AL Compiz Scale (Expose) */
KEYBOARD_KEY_KPCOMMA = 121
KEYBOARD_KEY_HANGEUL = 122
KEYBOARD_KEY_HANGUEL = KEY_HANGEUL
KEYBOARD_KEY_HANJA = 123
KEYBOARD_KEY_YEN = 124
KEYBOARD_KEY_LEFTMETA = 125
KEYBOARD_KEY_RIGHTMETA = 126
KEYBOARD_KEY_COMPOSE = 127
KEYBOARD_KEY_STOP = 128 /* AC Stop */
KEYBOARD_KEY_AGAIN = 129
KEYBOARD_KEY_PROPS = 130 /* AC Properties */
KEYBOARD_KEY_UNDO = 131 /* AC Undo */
KEYBOARD_KEY_FRONT = 132
KEYBOARD_KEY_COPY = 133 /* AC Copy */
KEYBOARD_KEY_OPEN = 134 /* AC Open */
KEYBOARD_KEY_PASTE = 135 /* AC Paste */
KEYBOARD_KEY_FIND = 136 /* AC Search */
KEYBOARD_KEY_CUT = 137 /* AC Cut */
KEYBOARD_KEY_HELP = 138 /* AL Integrated Help Center */
KEYBOARD_KEY_MENU = 139 /* Menu (show menu) */
KEYBOARD_KEY_CALC = 140 /* AL Calculator */
KEYBOARD_KEY_SETUP = 141
KEYBOARD_KEY_SLEEP = 142 /* SC System Sleep */
KEYBOARD_KEY_WAKEUP = 143 /* System Wake Up */
KEYBOARD_KEY_FILE = 144 /* AL Local Machine Browser */
KEYBOARD_KEY_SENDFILE = 145
KEYBOARD_KEY_DELETEFILE = 146
KEYBOARD_KEY_XFER = 147
KEYBOARD_KEY_PROG1 = 148
KEYBOARD_KEY_PROG2 = 149
KEYBOARD_KEY_WWW = 150 /* AL Internet Browser */
KEYBOARD_KEY_MSDOS = 151
KEYBOARD_KEY_COFFEE = 152 /* AL Terminal Lock/Screensaver */
KEYBOARD_KEY_SCREENLOCK = KEY_COFFEE
KEYBOARD_KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */
KEYBOARD_KEY_DIRECTION = KEY_ROTATE_DISPLAY
KEYBOARD_KEY_CYCLEWINDOWS 154
KEYBOARD_KEY_MAIL = 155
KEYBOARD_KEY_BOOKMARKS = 156 /* AC Bookmarks */
KEYBOARD_KEY_COMPUTER = 157
KEYBOARD_KEY_BACK = 158 /* AC Back */
KEYBOARD_KEY_FORWARD = 159 /* AC Forward */
KEYBOARD_KEY_CLOSECD = 160
KEYBOARD_KEY_EJECTCD = 161
KEYBOARD_KEY_EJECTCLOSECD 162
KEYBOARD_KEY_NEXTSONG = 163
KEYBOARD_KEY_PLAYPAUSE = 164
KEYBOARD_KEY_PREVIOUSSONG 165
KEYBOARD_KEY_STOPCD = 166
KEYBOARD_KEY_RECORD = 167
KEYBOARD_KEY_REWIND = 168
KEYBOARD_KEY_PHONE = 169 /* Media Select Telephone */
KEYBOARD_KEY_ISO = 170
KEYBOARD_KEY_CONFIG = 171 /* AL Consumer Control Configuration */
KEYBOARD_KEY_HOMEPAGE = 172 /* AC Home */
KEYBOARD_KEY_REFRESH = 173 /* AC Refresh */
KEYBOARD_KEY_EXIT = 174 /* AC Exit */
KEYBOARD_KEY_MOVE = 175
KEYBOARD_KEY_EDIT = 176
KEYBOARD_KEY_SCROLLUP = 177
KEYBOARD_KEY_SCROLLDOWN = 178
KEYBOARD_KEY_KPLEFTPAREN = 179
KEYBOARD_KEY_KPRIGHTPAREN 180
KEYBOARD_KEY_NEW = 181 /* AC New */
KEYBOARD_KEY_REDO = 182 /* AC Redo/Repeat */
KEYBOARD_KEY_F13 = 183
KEYBOARD_KEY_F14 = 184
KEYBOARD_KEY_F15 = 185
KEYBOARD_KEY_F16 = 186
KEYBOARD_KEY_F17 = 187
KEYBOARD_KEY_F18 = 188
KEYBOARD_KEY_F19 = 189
KEYBOARD_KEY_F20 = 190
KEYBOARD_KEY_F21 = 191
KEYBOARD_KEY_F22 = 192
KEYBOARD_KEY_F23 = 193
KEYBOARD_KEY_F24 = 194
KEYBOARD_KEY_PLAYCD = 200
KEYBOARD_KEY_PAUSECD = 201
KEYBOARD_KEY_PROG3 = 202
KEYBOARD_KEY_PROG4 = 203
KEYBOARD_KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */
KEYBOARD_KEY_DASHBOARD = KEY_ALL_APPLICATIONS
KEYBOARD_KEY_SUSPEND = 205
KEYBOARD_KEY_CLOSE = 206 /* AC Close */
KEYBOARD_KEY_PLAY = 207
KEYBOARD_KEY_FASTFORWARD = 208
KEYBOARD_KEY_BASSBOOST = 209
KEYBOARD_KEY_PRINT = 210 /* AC Print */
KEYBOARD_KEY_HP = 211
KEYBOARD_KEY_CAMERA = 212
KEYBOARD_KEY_SOUND = 213
KEYBOARD_KEY_QUESTION = 214
KEYBOARD_KEY_EMAIL = 215
KEYBOARD_KEY_CHAT = 216
KEYBOARD_KEY_SEARCH = 217
KEYBOARD_KEY_CONNECT = 218
KEYBOARD_KEY_FINANCE = 219 /* AL Checkbook/Finance */
KEYBOARD_KEY_SPORT = 220
KEYBOARD_KEY_SHOP = 221
KEYBOARD_KEY_ALTERASE = 222
KEYBOARD_KEY_CANCEL = 223 /* AC Cancel */
KEYBOARD_KEY_BRIGHTNESSDOWN 224
KEYBOARD_KEY_BRIGHTNESSUP 225
KEYBOARD_KEY_MEDIA = 226
KEYBOARD_KEY_SWITCHVIDEOMODE 227 /* Cycle between available video
= = outputs (Monitor/LCD/TV-out/etc) */
KEYBOARD_KEY_KBDILLUMTOGGLE 228
KEYBOARD_KEY_KBDILLUMDOWN 229
KEYBOARD_KEY_KBDILLUMUP = 230
KEYBOARD_KEY_SEND = 231 /* AC Send */
KEYBOARD_KEY_REPLY = 232 /* AC Reply */
KEYBOARD_KEY_FORWARDMAIL = 233 /* AC Forward Msg */
KEYBOARD_KEY_SAVE = 234 /* AC Save */
KEYBOARD_KEY_DOCUMENTS = 235
KEYBOARD_KEY_BATTERY = 236
KEYBOARD_KEY_BLUETOOTH = 237
KEYBOARD_KEY_WLAN = 238
KEYBOARD_KEY_UWB = 239
KEYBOARD_KEY_UNKNOWN = 240
KEYBOARD_KEY_VIDEO_NEXT = 241 /* drive next video source */
KEYBOARD_KEY_VIDEO_PREV = 242 /* drive previous video source */
KEYBOARD_KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
KEYBOARD_KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual
= = brightness control is off,
= = rely on ambient */
KEYBOARD_KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO
KEYBOARD_KEY_DISPLAY_OFF = 245 /* display device to off state */
KEYBOARD_KEY_WWAN = 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */
KEYBOARD_KEY_WIMAX = KEY_WWAN
KEYBOARD_KEY_RFKILL = 247 /* Key that controls all radios */
KEYBOARD_KEY_MICMUTE = 248 /* Mute / unmute the microphone */
/* Code 255 is reserved for special needs of AT keyboard driver */
BTN_MISC = 0x100
BTN_0 = 0x100
BTN_1 = 0x101
BTN_2 = 0x102
BTN_3 = 0x103
BTN_4 = 0x104
BTN_5 = 0x105
BTN_6 = 0x106
BTN_7 = 0x107
BTN_8 = 0x108
BTN_9 = 0x109
MOUSE_BUTTON_LEFT = 0x110,
MOUSE_BUTTON_RIGHT = 0x111,
MOUSE_BUTTON_MIDDLE = 0x112,
MOUSE_BUTTON_SIDE = 0x113,
MOUSE_BUTTON_EXTRA = 0x114,
/*
BTN_MOUSE = 0x110
BTN_LEFT = 0x110
BTN_RIGHT = 0x111
BTN_MIDDLE = 0x112
BTN_SIDE = 0x113
BTN_EXTRA = 0x114
BTN_FORWARD = 0x115
BTN_BACK = 0x116
BTN_TASK = 0x117
*/
BTN_JOYSTICK = 0x120
BTN_TRIGGER = 0x120
BTN_THUMB = 0x121
BTN_THUMB2 = 0x122
BTN_TOP = 0x123
BTN_TOP2 = 0x124
BTN_PINKIE = 0x125
/// Base button, usually on the bottom right, Steam Quick Access Button (...)
GAMEPAD_BUTTON_QUICK = 0x126,
BTN_BASE = 0x126
BTN_BASE2 = 0x127
BTN_BASE3 = 0x128
BTN_BASE4 = 0x129
BTN_BASE5 = 0x12a
BTN_BASE6 = 0x12b
BTN_DEAD = 0x12f
/// South action, Sony Cross x, Xbox A, Nintendo B
GAMEPAD_BUTTON_SOUTH = 0x130,
/// East action, Sony Circle ◯, Xbox B, Nintendo A
GAMEPAD_BUTTON_EAST = 0x131,
/// North action, Sony Square □, Xbox X, Nintendo Y
GAMEPAD_BUTTON_NORTH = 0x133,
/// West action, Sony Triangle ∆, XBox Y, Nintendo X
GAMEPAD_BUTTON_WEST = 0x134,
/// Select, Sony Select, Xbox Back, Nintendo -, Steam Deck ⧉
GAMEPAD_BUTTON_SELECT = 0x13a,
/// Start, Xbox Menu, Nintendo +, Steam Deck Hamburger Menu (☰)
GAMEPAD_BUTTON_START = 0x13b,
/// Guide button, Sony PS, Xbox Home, Steam Button
GAMEPAD_BUTTON_GUIDE = 0x13c,
BTN_SOUTH = 0x130
BTN_A = BTN_SOUTH
BTN_EAST = 0x131
BTN_B = BTN_EAST
BTN_C = 0x132
BTN_NORTH = 0x133
BTN_X = BTN_NORTH
BTN_WEST = 0x134
BTN_Y = BTN_WEST
BTN_Z = 0x135
BTN_TL = 0x136
BTN_TR = 0x137
BTN_TL2 = 0x138
BTN_TR2 = 0x139
BTN_SELECT = 0x13a
BTN_START = 0x13b
BTN_MODE = 0x13c
BTN_THUMBL = 0x13d
BTN_THUMBR = 0x13e
BTN_DIGI = 0x140
BTN_TOOL_PEN = 0x140
BTN_TOOL_RUBBER = 0x141
BTN_TOOL_BRUSH = 0x142
BTN_TOOL_PENCIL = 0x143
BTN_TOOL_AIRBRUSH 0x144
BTN_TOOL_FINGER = 0x145
BTN_TOOL_MOUSE = 0x146
BTN_TOOL_LENS = 0x147
BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */
BTN_STYLUS3 = 0x149
BTN_TOUCH = 0x14a
BTN_STYLUS = 0x14b
BTN_STYLUS2 = 0x14c
BTN_TOOL_DOUBLETAP 0x14d
BTN_TOOL_TRIPLETAP 0x14e
BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */
BTN_WHEEL = 0x150
BTN_GEAR_DOWN = 0x150
BTN_GEAR_UP = 0x151
KEYBOARD_KEY_OK = 0x160
KEYBOARD_KEY_SELECT = 0x161
KEYBOARD_KEY_GOTO = 0x162
KEYBOARD_KEY_CLEAR = 0x163
KEYBOARD_KEY_POWER2 = 0x164
KEYBOARD_KEY_OPTION = 0x165
KEYBOARD_KEY_INFO = 0x166 /* AL OEM Features/Tips/Tutorial */
KEYBOARD_KEY_TIME = 0x167
KEYBOARD_KEY_VENDOR = 0x168
KEYBOARD_KEY_ARCHIVE = 0x169
KEYBOARD_KEY_PROGRAM = 0x16a /* Media Select Program Guide */
KEYBOARD_KEY_CHANNEL = 0x16b
KEYBOARD_KEY_FAVORITES = 0x16c
KEYBOARD_KEY_EPG = 0x16d
KEYBOARD_KEY_PVR = 0x16e /* Media Select Home */
KEYBOARD_KEY_MHP = 0x16f
KEYBOARD_KEY_LANGUAGE = 0x170
KEYBOARD_KEY_TITLE = 0x171
KEYBOARD_KEY_SUBTITLE = 0x172
KEYBOARD_KEY_ANGLE = 0x173
KEYBOARD_KEY_FULL_SCREEN = 0x174 /* AC View Toggle */
KEYBOARD_KEY_ZOOM = KEY_FULL_SCREEN
KEYBOARD_KEY_MODE = 0x175
KEYBOARD_KEY_KEYBOARD = 0x176
KEYBOARD_KEY_ASPECT_RATIO 0x177 /* HUTRR37: Aspect */
KEYBOARD_KEY_SCREEN = KEY_ASPECT_RATIO
KEYBOARD_KEY_PC = 0x178 /* Media Select Computer */
KEYBOARD_KEY_TV = 0x179 /* Media Select TV */
KEYBOARD_KEY_TV2 = 0x17a /* Media Select Cable */
KEYBOARD_KEY_VCR = 0x17b /* Media Select VCR */
KEYBOARD_KEY_VCR2 = 0x17c /* VCR Plus */
KEYBOARD_KEY_SAT = 0x17d /* Media Select Satellite */
KEYBOARD_KEY_SAT2 = 0x17e
KEYBOARD_KEY_CD = 0x17f /* Media Select CD */
KEYBOARD_KEY_TAPE = 0x180 /* Media Select Tape */
KEYBOARD_KEY_RADIO = 0x181
KEYBOARD_KEY_TUNER = 0x182 /* Media Select Tuner */
KEYBOARD_KEY_PLAYER = 0x183
KEYBOARD_KEY_TEXT = 0x184
KEYBOARD_KEY_DVD = 0x185 /* Media Select DVD */
KEYBOARD_KEY_AUX = 0x186
KEYBOARD_KEY_MP3 = 0x187
KEYBOARD_KEY_AUDIO = 0x188 /* AL Audio Browser */
KEYBOARD_KEY_VIDEO = 0x189 /* AL Movie Browser */
KEYBOARD_KEY_DIRECTORY = 0x18a
KEYBOARD_KEY_LIST = 0x18b
KEYBOARD_KEY_MEMO = 0x18c /* Media Select Messages */
KEYBOARD_KEY_CALENDAR = 0x18d
KEYBOARD_KEY_RED = 0x18e
KEYBOARD_KEY_GREEN = 0x18f
KEYBOARD_KEY_YELLOW = 0x190
KEYBOARD_KEY_BLUE = 0x191
KEYBOARD_KEY_CHANNELUP = 0x192 /* Channel Increment */
KEYBOARD_KEY_CHANNELDOWN = 0x193 /* Channel Decrement */
KEYBOARD_KEY_FIRST = 0x194
KEYBOARD_KEY_LAST = 0x195 /* Recall Last */
KEYBOARD_KEY_AB = 0x196
KEYBOARD_KEY_NEXT = 0x197
KEYBOARD_KEY_RESTART = 0x198
KEYBOARD_KEY_SLOW = 0x199
KEYBOARD_KEY_SHUFFLE = 0x19a
KEYBOARD_KEY_BREAK = 0x19b
KEYBOARD_KEY_PREVIOUS = 0x19c
KEYBOARD_KEY_DIGITS = 0x19d
KEYBOARD_KEY_TEEN = 0x19e
KEYBOARD_KEY_TWEN = 0x19f
KEYBOARD_KEY_VIDEOPHONE = 0x1a0 /* Media Select Video Phone */
KEYBOARD_KEY_GAMES = 0x1a1 /* Media Select Games */
KEYBOARD_KEY_ZOOMIN = 0x1a2 /* AC Zoom In */
KEYBOARD_KEY_ZOOMOUT = 0x1a3 /* AC Zoom Out */
KEYBOARD_KEY_ZOOMRESET = 0x1a4 /* AC Zoom */
KEYBOARD_KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */
KEYBOARD_KEY_EDITOR = 0x1a6 /* AL Text Editor */
KEYBOARD_KEY_SPREADSHEET = 0x1a7 /* AL Spreadsheet */
KEYBOARD_KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */
KEYBOARD_KEY_PRESENTATION 0x1a9 /* AL Presentation App */
KEYBOARD_KEY_DATABASE = 0x1aa /* AL Database App */
KEYBOARD_KEY_NEWS = 0x1ab /* AL Newsreader */
KEYBOARD_KEY_VOICEMAIL = 0x1ac /* AL Voicemail */
KEYBOARD_KEY_ADDRESSBOOK = 0x1ad /* AL Contacts/Address Book */
KEYBOARD_KEY_MESSENGER = 0x1ae /* AL Instant Messaging */
KEYBOARD_KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */
KEYBOARD_KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE
KEYBOARD_KEY_SPELLCHECK = 0x1b0 /* AL Spell Check */
KEYBOARD_KEY_LOGOFF = 0x1b1 /* AL Logoff */
KEYBOARD_KEY_DOLLAR = 0x1b2
KEYBOARD_KEY_EURO = 0x1b3
KEYBOARD_KEY_FRAMEBACK = 0x1b4 /* Consumer - transport controls */
KEYBOARD_KEY_FRAMEFORWARD 0x1b5
KEYBOARD_KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */
KEYBOARD_KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */
KEYBOARD_KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */
KEYBOARD_KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */
KEYBOARD_KEY_IMAGES = 0x1ba /* AL Image Browser */
KEYBOARD_KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */
KEYBOARD_KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */
KEYBOARD_KEY_HANGUP_PHONE 0x1be /* Decline incoming call */
KEYBOARD_KEY_DEL_EOL = 0x1c0
KEYBOARD_KEY_DEL_EOS = 0x1c1
KEYBOARD_KEY_INS_LINE = 0x1c2
KEYBOARD_KEY_DEL_LINE = 0x1c3
KEYBOARD_KEY_FN = 0x1d0
KEYBOARD_KEY_FN_ESC = 0x1d1
KEYBOARD_KEY_FN_F1 = 0x1d2
KEYBOARD_KEY_FN_F2 = 0x1d3
KEYBOARD_KEY_FN_F3 = 0x1d4
KEYBOARD_KEY_FN_F4 = 0x1d5
KEYBOARD_KEY_FN_F5 = 0x1d6
KEYBOARD_KEY_FN_F6 = 0x1d7
KEYBOARD_KEY_FN_F7 = 0x1d8
KEYBOARD_KEY_FN_F8 = 0x1d9
KEYBOARD_KEY_FN_F9 = 0x1da
KEYBOARD_KEY_FN_F10 = 0x1db
KEYBOARD_KEY_FN_F11 = 0x1dc
KEYBOARD_KEY_FN_F12 = 0x1dd
KEYBOARD_KEY_FN_1 = 0x1de
KEYBOARD_KEY_FN_2 = 0x1df
KEYBOARD_KEY_FN_D = 0x1e0
KEYBOARD_KEY_FN_E = 0x1e1
KEYBOARD_KEY_FN_F = 0x1e2
KEYBOARD_KEY_FN_S = 0x1e3
KEYBOARD_KEY_FN_B = 0x1e4
KEYBOARD_KEY_FN_RIGHT_SHIFT 0x1e5
KEYBOARD_KEY_BRL_DOT1 = 0x1f1
KEYBOARD_KEY_BRL_DOT2 = 0x1f2
KEYBOARD_KEY_BRL_DOT3 = 0x1f3
KEYBOARD_KEY_BRL_DOT4 = 0x1f4
KEYBOARD_KEY_BRL_DOT5 = 0x1f5
KEYBOARD_KEY_BRL_DOT6 = 0x1f6
KEYBOARD_KEY_BRL_DOT7 = 0x1f7
KEYBOARD_KEY_BRL_DOT8 = 0x1f8
KEYBOARD_KEY_BRL_DOT9 = 0x1f9
KEYBOARD_KEY_BRL_DOT10 = 0x1fa
KEYBOARD_KEY_NUMERIC_0 = 0x200 /* used by phones, remote controls, */
KEYBOARD_KEY_NUMERIC_1 = 0x201 /* and other keypads */
KEYBOARD_KEY_NUMERIC_2 = 0x202
KEYBOARD_KEY_NUMERIC_3 = 0x203
KEYBOARD_KEY_NUMERIC_4 = 0x204
KEYBOARD_KEY_NUMERIC_5 = 0x205
KEYBOARD_KEY_NUMERIC_6 = 0x206
KEYBOARD_KEY_NUMERIC_7 = 0x207
KEYBOARD_KEY_NUMERIC_8 = 0x208
KEYBOARD_KEY_NUMERIC_9 = 0x209
KEYBOARD_KEY_NUMERIC_STAR 0x20a
KEYBOARD_KEY_NUMERIC_POUND 0x20b
KEYBOARD_KEY_NUMERIC_A = 0x20c /* Phone key A - HUT Telephony 0xb9 */
KEYBOARD_KEY_NUMERIC_B = 0x20d
KEYBOARD_KEY_NUMERIC_C = 0x20e
KEYBOARD_KEY_NUMERIC_D = 0x20f
KEYBOARD_KEY_CAMERA_FOCUS 0x210
KEYBOARD_KEY_WPS_BUTTON = 0x211 /* WiFi Protected Setup key */
KEYBOARD_KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */
KEYBOARD_KEY_TOUCHPAD_ON = 0x213
KEYBOARD_KEY_TOUCHPAD_OFF 0x214
KEYBOARD_KEY_CAMERA_ZOOMIN 0x215
KEYBOARD_KEY_CAMERA_ZOOMOUT 0x216
KEYBOARD_KEY_CAMERA_UP = 0x217
KEYBOARD_KEY_CAMERA_DOWN = 0x218
KEYBOARD_KEY_CAMERA_LEFT = 0x219
KEYBOARD_KEY_CAMERA_RIGHT 0x21a
KEYBOARD_KEY_ATTENDANT_ON 0x21b
KEYBOARD_KEY_ATTENDANT_OFF 0x21c
KEYBOARD_KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */
KEYBOARD_KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */
BTN_DPAD_UP = 0x220
BTN_DPAD_DOWN = 0x221
BTN_DPAD_LEFT = 0x222
BTN_DPAD_RIGHT = 0x223
KEYBOARD_KEY_ALS_TOGGLE = 0x230 /* Ambient light sensor */
KEYBOARD_KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */
KEYBOARD_KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */
KEYBOARD_KEY_BUTTONCONFIG = 0x240 /* AL Button Configuration */
KEYBOARD_KEY_TASKMANAGER = 0x241 /* AL Task/Project Manager */
KEYBOARD_KEY_JOURNAL = 0x242 /* AL Log/Journal/Timecard */
KEYBOARD_KEY_CONTROLPANEL = 0x243 /* AL Control Panel */
KEYBOARD_KEY_APPSELECT = 0x244 /* AL Select Task/Application */
KEYBOARD_KEY_SCREENSAVER = 0x245 /* AL Screen Saver */
KEYBOARD_KEY_VOICECOMMAND = 0x246 /* Listening Voice Command */
KEYBOARD_KEY_ASSISTANT = 0x247 /* AL Context-aware desktop assistant */
KEYBOARD_KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */
KEYBOARD_KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */
KEYBOARD_KEY_DICTATE = 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */
KEYBOARD_KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */
KEYBOARD_KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */
KEYBOARD_KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */
KEYBOARD_KEY_ACCESSIBILITY = 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */
KEYBOARD_KEY_DO_NOT_DISTURB = 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/
KEYBOARD_KEY_BRIGHTNESS_MIN = 0x250 /* Set Brightness to Minimum */
KEYBOARD_KEY_BRIGHTNESS_MAX = 0x251 /* Set Brightness to Maximum */
KEYBOARD_KEY_KBDINPUTASSIST_PREV = 0x260
KEYBOARD_KEY_KBDINPUTASSIST_NEXT = 0x261
KEYBOARD_KEY_KBDINPUTASSIST_PREVGROUP = 0x262
KEYBOARD_KEY_KBDINPUTASSIST_NEXTGROUP = 0x263
KEYBOARD_KEY_KBDINPUTASSIST_ACCEPT = 0x264
KEYBOARD_KEY_KBDINPUTASSIST_CANCEL = 0x265
/* Diagonal movement keys */
KEYBOARD_KEY_RIGHT_UP = 0x266
KEYBOARD_KEY_RIGHT_DOWN = 0x267
KEYBOARD_KEY_LEFT_UP = 0x268
KEYBOARD_KEY_LEFT_DOWN = 0x269
KEYBOARD_KEY_ROOT_MENU = 0x26a /* Show Device's Root Menu */
/* Show Top Menu of the Media (e.g. DVD) */
KEYBOARD_KEY_MEDIA_TOP_MENU = 0x26b
KEYBOARD_KEY_NUMERIC_11 = 0x26c
KEYBOARD_KEY_NUMERIC_12 = 0x26d
/*
* Toggle Audio Description: refers to an audio service that helps blind and
* visually impaired consumers understand the action in a program. Note: in
* some countries this is referred to as "Video Description".
*/
KEYBOARD_KEY_AUDIO_DESC = 0x26e
KEYBOARD_KEY_3D_MODE = 0x26f
KEYBOARD_KEY_NEXT_FAVORITE = 0x270
KEYBOARD_KEY_STOP_RECORD = 0x271
KEYBOARD_KEY_PAUSE_RECORD = 0x272
KEYBOARD_KEY_VOD = = 0x273 /* Video on Demand */
KEYBOARD_KEY_UNMUTE = 0x274
KEYBOARD_KEY_FASTREVERSE = 0x275
KEYBOARD_KEY_SLOWREVERSE = 0x276
/*
* Control a data application associated with the currently viewed channel,
* e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
*/
KEYBOARD_KEY_DATA = 0x277
KEYBOARD_KEY_ONSCREEN_KEYBOARD = 0x278
/* Electronic privacy screen control */
KEYBOARD_KEY_PRIVACY_SCREEN_TOGGLE = 0x279
/* Select an area of screen to be copied */
KEYBOARD_KEY_SELECTIVE_SCREENSHOT = 0x27a
/* Move the focus to the next or previous user controllable element within a UI container */
KEYBOARD_KEY_NEXT_ELEMENT = 0x27b
KEYBOARD_KEY_PREVIOUS_ELEMENT = 0x27c
/* Toggle Autopilot engagement */
KEYBOARD_KEY_AUTOPILOT_ENGAGE_TOGGLE = 0x27d
/* Shortcut Keys */
KEYBOARD_KEY_MARK_WAYPOINT = 0x27e
KEYBOARD_KEY_SOS = 0x27f
KEYBOARD_KEY_NAV_CHART = 0x280
KEYBOARD_KEY_FISHING_CHART = 0x281
KEYBOARD_KEY_SINGLE_RANGE_RADAR = 0x282
KEYBOARD_KEY_DUAL_RANGE_RADAR = 0x283
KEYBOARD_KEY_RADAR_OVERLAY = 0x284
KEYBOARD_KEY_TRADITIONAL_SONAR = 0x285
KEYBOARD_KEY_CLEARVU_SONAR = 0x286
KEYBOARD_KEY_SIDEVU_SONAR = 0x287
KEYBOARD_KEY_NAV_INFO = 0x288
KEYBOARD_KEY_BRIGHTNESS_MENU = 0x289
/*
* Some keyboards have keys which do not have a defined meaning, these keys
* are intended to be programmed / bound to macros by the user. For most
* keyboards with these macro-keys the key-sequence to inject, or action to
* take, is all handled by software on the host side. So from the kernel's
* point of view these are just normal keys.
*
* The KEY_MACRO# codes below are intended for such keys, which may be labeled
* e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
* where the marking on the key does indicate a defined meaning / purpose.
*
* The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
* KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
* define MUST be added.
*/
KEYBOARD_KEY_MACRO1 = 0x290
KEYBOARD_KEY_MACRO2 = 0x291
KEYBOARD_KEY_MACRO3 = 0x292
KEYBOARD_KEY_MACRO4 = 0x293
KEYBOARD_KEY_MACRO5 = 0x294
KEYBOARD_KEY_MACRO6 = 0x295
KEYBOARD_KEY_MACRO7 = 0x296
KEYBOARD_KEY_MACRO8 = 0x297
KEYBOARD_KEY_MACRO9 = 0x298
KEYBOARD_KEY_MACRO10 = 0x299
KEYBOARD_KEY_MACRO11 = 0x29a
KEYBOARD_KEY_MACRO12 = 0x29b
KEYBOARD_KEY_MACRO13 = 0x29c
KEYBOARD_KEY_MACRO14 = 0x29d
KEYBOARD_KEY_MACRO15 = 0x29e
KEYBOARD_KEY_MACRO16 = 0x29f
KEYBOARD_KEY_MACRO17 = 0x2a0
KEYBOARD_KEY_MACRO18 = 0x2a1
KEYBOARD_KEY_MACRO19 = 0x2a2
KEYBOARD_KEY_MACRO20 = 0x2a3
KEYBOARD_KEY_MACRO21 = 0x2a4
KEYBOARD_KEY_MACRO22 = 0x2a5
KEYBOARD_KEY_MACRO23 = 0x2a6
KEYBOARD_KEY_MACRO24 = 0x2a7
KEYBOARD_KEY_MACRO25 = 0x2a8
KEYBOARD_KEY_MACRO26 = 0x2a9
KEYBOARD_KEY_MACRO27 = 0x2aa
KEYBOARD_KEY_MACRO28 = 0x2ab
KEYBOARD_KEY_MACRO29 = 0x2ac
KEYBOARD_KEY_MACRO30 = 0x2ad
/*
* Some keyboards with the macro-keys described above have some extra keys
* for controlling the host-side software responsible for the macro handling:
* -A macro recording start/stop key. Note that not all keyboards which emit
* KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
* KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
* should be interpreted as a recording start/stop toggle;
* -Keys for switching between different macro (pre)sets, either a key for
* cycling through the configured presets or keys to directly select a preset.
*/
KEYBOARD_KEY_MACRO_RECORD_START = 0x2b0
KEYBOARD_KEY_MACRO_RECORD_STOP = 0x2b1
KEYBOARD_KEY_MACRO_PRESET_CYCLE = 0x2b2
KEYBOARD_KEY_MACRO_PRESET1 = 0x2b3
KEYBOARD_KEY_MACRO_PRESET2 = 0x2b4
KEYBOARD_KEY_MACRO_PRESET3 = 0x2b5
/*
* Some keyboards have a buildin LCD panel where the contents are controlled
* by the host. Often these have a number of keys directly below the LCD
* intended for controlling a menu shown on the LCD. These keys often don't
* have any labeling so we just name them KEY_KBD_LCD_MENU#
*/
KEYBOARD_KEY_KBD_LCD_MENU1 = 0x2b8
KEYBOARD_KEY_KBD_LCD_MENU2 = 0x2b9
KEYBOARD_KEY_KBD_LCD_MENU3 = 0x2ba
KEYBOARD_KEY_KBD_LCD_MENU4 = 0x2bb
KEYBOARD_KEY_KBD_LCD_MENU5 = 0x2bc
BTN_TRIGGER_HAPPY = 0x2c0
BTN_TRIGGER_HAPPY1 = 0x2c0
BTN_TRIGGER_HAPPY2 = 0x2c1
BTN_TRIGGER_HAPPY3 = 0x2c2
BTN_TRIGGER_HAPPY4 = 0x2c3
BTN_TRIGGER_HAPPY5 = 0x2c4
BTN_TRIGGER_HAPPY6 = 0x2c5
BTN_TRIGGER_HAPPY7 = 0x2c6
BTN_TRIGGER_HAPPY8 = 0x2c7
BTN_TRIGGER_HAPPY9 = 0x2c8
BTN_TRIGGER_HAPPY10 = 0x2c9
BTN_TRIGGER_HAPPY11 = 0x2ca
BTN_TRIGGER_HAPPY12 = 0x2cb
BTN_TRIGGER_HAPPY13 = 0x2cc
BTN_TRIGGER_HAPPY14 = 0x2cd
BTN_TRIGGER_HAPPY15 = 0x2ce
BTN_TRIGGER_HAPPY16 = 0x2cf
BTN_TRIGGER_HAPPY17 = 0x2d0
BTN_TRIGGER_HAPPY18 = 0x2d1
BTN_TRIGGER_HAPPY19 = 0x2d2
BTN_TRIGGER_HAPPY20 = 0x2d3
BTN_TRIGGER_HAPPY21 = 0x2d4
BTN_TRIGGER_HAPPY22 = 0x2d5
BTN_TRIGGER_HAPPY23 = 0x2d6
BTN_TRIGGER_HAPPY24 = 0x2d7
BTN_TRIGGER_HAPPY25 = 0x2d8
BTN_TRIGGER_HAPPY26 = 0x2d9
BTN_TRIGGER_HAPPY27 = 0x2da
BTN_TRIGGER_HAPPY28 = 0x2db
BTN_TRIGGER_HAPPY29 = 0x2dc
BTN_TRIGGER_HAPPY30 = 0x2dd
BTN_TRIGGER_HAPPY31 = 0x2de
BTN_TRIGGER_HAPPY32 = 0x2df
BTN_TRIGGER_HAPPY33 = 0x2e0
BTN_TRIGGER_HAPPY34 = 0x2e1
BTN_TRIGGER_HAPPY35 = 0x2e2
BTN_TRIGGER_HAPPY36 = 0x2e3
BTN_TRIGGER_HAPPY37 = 0x2e4
BTN_TRIGGER_HAPPY38 = 0x2e5
BTN_TRIGGER_HAPPY39 = 0x2e6
BTN_TRIGGER_HAPPY40 = 0x2e7
// Higher bytes are for capabilities not defined input codes in the kernel
GAMEPAD_GYRO_LEFT = 0x300,
}
enum InputVector2Capability {
MOUSE_MOTION = 0x300, // map closely to REL_X kernel codes
GAMEPAD_AXIS_LEFT_STICK = 0x301,
GAMEPAD_AXIS_RIGHT_STICK = 0x302,
#define REL_X 0x00
#define REL_Y 0x01
#define REL_Z 0x02
#define REL_RX 0x03
#define REL_RY 0x04
#define REL_RZ 0x05
#define REL_HWHEEL 0x06
#define REL_DIAL 0x07
#define REL_WHEEL 0x08
#define REL_MISC 0x09
}
enum InputVector3Capability {
GAMEPAD_GYRO_LEFT = 0x1000,
GAMEPAD_GYRO_MIDDLE = 0x1100,
GAMEPAD_GYRO_RIGHT = 0x1200,
#define ABS_X 0x00
#define ABS_Y 0x01
#define ABS_Z 0x02
#define ABS_RX 0x03
#define ABS_RY 0x04
#define ABS_RZ 0x05
}