evdev/
scancodes.rs

1use crate::compat::KEY_CNT;
2
3/// Scancodes for key presses.
4///
5/// Values correspond to [/usr/include/linux/input-event-codes.h](https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h)
6///
7/// Each associated constant for this struct represents a distinct key.
8#[derive(Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
9#[repr(transparent)]
10pub struct KeyCode(pub u16);
11
12impl KeyCode {
13    #[inline]
14    pub const fn new(code: u16) -> Self {
15        Self(code)
16    }
17
18    #[inline]
19    pub const fn code(self) -> u16 {
20        self.0
21    }
22
23    pub(crate) const COUNT: usize = KEY_CNT;
24}
25
26evdev_enum!(
27    KeyCode,
28    box Array,
29    KEY_RESERVED = 0,
30    KEY_ESC = 1,
31    KEY_1 = 2,
32    KEY_2 = 3,
33    KEY_3 = 4,
34    KEY_4 = 5,
35    KEY_5 = 6,
36    KEY_6 = 7,
37    KEY_7 = 8,
38    KEY_8 = 9,
39    KEY_9 = 10,
40    KEY_0 = 11,
41    KEY_MINUS = 12,
42    KEY_EQUAL = 13,
43    KEY_BACKSPACE = 14,
44    KEY_TAB = 15,
45    KEY_Q = 16,
46    KEY_W = 17,
47    KEY_E = 18,
48    KEY_R = 19,
49    KEY_T = 20,
50    KEY_Y = 21,
51    KEY_U = 22,
52    KEY_I = 23,
53    KEY_O = 24,
54    KEY_P = 25,
55    KEY_LEFTBRACE = 26,
56    KEY_RIGHTBRACE = 27,
57    KEY_ENTER = 28,
58    KEY_LEFTCTRL = 29,
59    KEY_A = 30,
60    KEY_S = 31,
61    KEY_D = 32,
62    KEY_F = 33,
63    KEY_G = 34,
64    KEY_H = 35,
65    KEY_J = 36,
66    KEY_K = 37,
67    KEY_L = 38,
68    KEY_SEMICOLON = 39,
69    KEY_APOSTROPHE = 40,
70    KEY_GRAVE = 41,
71    KEY_LEFTSHIFT = 42,
72    KEY_BACKSLASH = 43,
73    KEY_Z = 44,
74    KEY_X = 45,
75    KEY_C = 46,
76    KEY_V = 47,
77    KEY_B = 48,
78    KEY_N = 49,
79    KEY_M = 50,
80    KEY_COMMA = 51,
81    KEY_DOT = 52,
82    KEY_SLASH = 53,
83    KEY_RIGHTSHIFT = 54,
84    KEY_KPASTERISK = 55,
85    KEY_LEFTALT = 56,
86    KEY_SPACE = 57,
87    KEY_CAPSLOCK = 58,
88    KEY_F1 = 59,
89    KEY_F2 = 60,
90    KEY_F3 = 61,
91    KEY_F4 = 62,
92    KEY_F5 = 63,
93    KEY_F6 = 64,
94    KEY_F7 = 65,
95    KEY_F8 = 66,
96    KEY_F9 = 67,
97    KEY_F10 = 68,
98    KEY_NUMLOCK = 69,
99    KEY_SCROLLLOCK = 70,
100    KEY_KP7 = 71,
101    KEY_KP8 = 72,
102    KEY_KP9 = 73,
103    KEY_KPMINUS = 74,
104    KEY_KP4 = 75,
105    KEY_KP5 = 76,
106    KEY_KP6 = 77,
107    KEY_KPPLUS = 78,
108    KEY_KP1 = 79,
109    KEY_KP2 = 80,
110    KEY_KP3 = 81,
111    KEY_KP0 = 82,
112    KEY_KPDOT = 83,
113    KEY_ZENKAKUHANKAKU = 85,
114    KEY_102ND = 86,
115    KEY_F11 = 87,
116    KEY_F12 = 88,
117    KEY_RO = 89,
118    KEY_KATAKANA = 90,
119    KEY_HIRAGANA = 91,
120    KEY_HENKAN = 92,
121    KEY_KATAKANAHIRAGANA = 93,
122    KEY_MUHENKAN = 94,
123    KEY_KPJPCOMMA = 95,
124    KEY_KPENTER = 96,
125    KEY_RIGHTCTRL = 97,
126    KEY_KPSLASH = 98,
127    KEY_SYSRQ = 99,
128    KEY_RIGHTALT = 100,
129    KEY_LINEFEED = 101,
130    KEY_HOME = 102,
131    KEY_UP = 103,
132    KEY_PAGEUP = 104,
133    KEY_LEFT = 105,
134    KEY_RIGHT = 106,
135    KEY_END = 107,
136    KEY_DOWN = 108,
137    KEY_PAGEDOWN = 109,
138    KEY_INSERT = 110,
139    KEY_DELETE = 111,
140    KEY_MACRO = 112,
141    KEY_MUTE = 113,
142    KEY_VOLUMEDOWN = 114,
143    KEY_VOLUMEUP = 115,
144    KEY_POWER = 116, /* SC System Power Down */
145    KEY_KPEQUAL = 117,
146    KEY_KPPLUSMINUS = 118,
147    KEY_PAUSE = 119,
148    KEY_SCALE = 120, /* AL Compiz Scale (Expose) */
149    KEY_KPCOMMA = 121,
150    KEY_HANGEUL = 122,
151    KEY_HANJA = 123,
152    KEY_YEN = 124,
153    KEY_LEFTMETA = 125,
154    KEY_RIGHTMETA = 126,
155    KEY_COMPOSE = 127,
156    KEY_STOP = 128, /* AC Stop */
157    KEY_AGAIN = 129,
158    KEY_PROPS = 130, /* AC Properties */
159    KEY_UNDO = 131,  /* AC Undo */
160    KEY_FRONT = 132,
161    KEY_COPY = 133,  /* AC Copy */
162    KEY_OPEN = 134,  /* AC Open */
163    KEY_PASTE = 135, /* AC Paste */
164    KEY_FIND = 136,  /* AC Search */
165    KEY_CUT = 137,   /* AC Cut */
166    KEY_HELP = 138,  /* AL Integrated Help Center */
167    KEY_MENU = 139,  /* Menu (show menu) */
168    KEY_CALC = 140,  /* AL Calculator */
169    KEY_SETUP = 141,
170    KEY_SLEEP = 142,  /* SC System Sleep */
171    KEY_WAKEUP = 143, /* System Wake Up */
172    KEY_FILE = 144,   /* AL Local Machine Browser */
173    KEY_SENDFILE = 145,
174    KEY_DELETEFILE = 146,
175    KEY_XFER = 147,
176    KEY_PROG1 = 148,
177    KEY_PROG2 = 149,
178    KEY_WWW = 150, /* AL Internet Browser */
179    KEY_MSDOS = 151,
180    KEY_COFFEE = 152, /* AL Terminal Lock/Screensaver */
181    KEY_DIRECTION = 153,
182    KEY_ROTATE_DISPLAY = 153,
183    KEY_CYCLEWINDOWS = 154,
184    KEY_MAIL = 155,
185    KEY_BOOKMARKS = 156, /* AC Bookmarks */
186    KEY_COMPUTER = 157,
187    KEY_BACK = 158,    /* AC Back */
188    KEY_FORWARD = 159, /* AC Forward */
189    KEY_CLOSECD = 160,
190    KEY_EJECTCD = 161,
191    KEY_EJECTCLOSECD = 162,
192    KEY_NEXTSONG = 163,
193    KEY_PLAYPAUSE = 164,
194    KEY_PREVIOUSSONG = 165,
195    KEY_STOPCD = 166,
196    KEY_RECORD = 167,
197    KEY_REWIND = 168,
198    KEY_PHONE = 169, /* Media Select Telephone */
199    KEY_ISO = 170,
200    KEY_CONFIG = 171,   /* AL Consumer Control Configuration */
201    KEY_HOMEPAGE = 172, /* AC Home */
202    KEY_REFRESH = 173,  /* AC Refresh */
203    KEY_EXIT = 174,     /* AC Exit */
204    KEY_MOVE = 175,
205    KEY_EDIT = 176,
206    KEY_SCROLLUP = 177,
207    KEY_SCROLLDOWN = 178,
208    KEY_KPLEFTPAREN = 179,
209    KEY_KPRIGHTPAREN = 180,
210    KEY_NEW = 181,  /* AC New */
211    KEY_REDO = 182, /* AC Redo/Repeat */
212    KEY_F13 = 183,
213    KEY_F14 = 184,
214    KEY_F15 = 185,
215    KEY_F16 = 186,
216    KEY_F17 = 187,
217    KEY_F18 = 188,
218    KEY_F19 = 189,
219    KEY_F20 = 190,
220    KEY_F21 = 191,
221    KEY_F22 = 192,
222    KEY_F23 = 193,
223    KEY_F24 = 194,
224    KEY_PLAYCD = 200,
225    KEY_PAUSECD = 201,
226    KEY_PROG3 = 202,
227    KEY_PROG4 = 203,
228    KEY_DASHBOARD = 204, /* AL Dashboard */
229    KEY_SUSPEND = 205,
230    KEY_CLOSE = 206, /* AC Close */
231    KEY_PLAY = 207,
232    KEY_FASTFORWARD = 208,
233    KEY_BASSBOOST = 209,
234    KEY_PRINT = 210, /* AC Print */
235    KEY_HP = 211,
236    KEY_CAMERA = 212,
237    KEY_SOUND = 213,
238    KEY_QUESTION = 214,
239    KEY_EMAIL = 215,
240    KEY_CHAT = 216,
241    KEY_SEARCH = 217,
242    KEY_CONNECT = 218,
243    KEY_FINANCE = 219,
244    KEY_SPORT = 220,
245    KEY_SHOP = 221,
246    KEY_ALTERASE = 222,
247    KEY_CANCEL = 223,
248    KEY_BRIGHTNESSDOWN = 224,
249    KEY_BRIGHTNESSUP = 225,
250    KEY_MEDIA = 226,
251    KEY_SWITCHVIDEOMODE = 227,
252    KEY_KBDILLUMTOGGLE = 228,
253    KEY_KBDILLUMDOWN = 229,
254    KEY_KBDILLUMUP = 230,
255    KEY_SEND = 231,
256    KEY_REPLY = 232,
257    KEY_FORWARDMAIL = 233,
258    KEY_SAVE = 234,
259    KEY_DOCUMENTS = 235,
260    KEY_BATTERY = 236,
261    KEY_BLUETOOTH = 237,
262    KEY_WLAN = 238,
263    KEY_UWB = 239,
264    KEY_UNKNOWN = 240,
265    KEY_VIDEO_NEXT = 241,
266    KEY_VIDEO_PREV = 242,
267    KEY_BRIGHTNESS_CYCLE = 243,
268    KEY_BRIGHTNESS_AUTO = 244,
269    KEY_DISPLAY_OFF = 245,
270    KEY_WWAN = 246,
271    KEY_RFKILL = 247,
272    KEY_MICMUTE = 248,
273    BTN_0 = 0x100,
274    BTN_1 = 0x101,
275    BTN_2 = 0x102,
276    BTN_3 = 0x103,
277    BTN_4 = 0x104,
278    BTN_5 = 0x105,
279    BTN_6 = 0x106,
280    BTN_7 = 0x107,
281    BTN_8 = 0x108,
282    BTN_9 = 0x109,
283    BTN_LEFT = 0x110,
284    BTN_RIGHT = 0x111,
285    BTN_MIDDLE = 0x112,
286    BTN_SIDE = 0x113,
287    BTN_EXTRA = 0x114,
288    BTN_FORWARD = 0x115,
289    BTN_BACK = 0x116,
290    BTN_TASK = 0x117,
291    BTN_TRIGGER = 0x120,
292    BTN_THUMB = 0x121,
293    BTN_THUMB2 = 0x122,
294    BTN_TOP = 0x123,
295    BTN_TOP2 = 0x124,
296    BTN_PINKIE = 0x125,
297    BTN_BASE = 0x126,
298    BTN_BASE2 = 0x127,
299    BTN_BASE3 = 0x128,
300    BTN_BASE4 = 0x129,
301    BTN_BASE5 = 0x12a,
302    BTN_BASE6 = 0x12b,
303    BTN_DEAD = 0x12f,
304    BTN_SOUTH = 0x130,
305    BTN_EAST = 0x131,
306    BTN_C = 0x132,
307    BTN_NORTH = 0x133,
308    BTN_WEST = 0x134,
309    BTN_Z = 0x135,
310    BTN_TL = 0x136,
311    BTN_TR = 0x137,
312    BTN_TL2 = 0x138,
313    BTN_TR2 = 0x139,
314    BTN_SELECT = 0x13a,
315    BTN_START = 0x13b,
316    BTN_MODE = 0x13c,
317    BTN_THUMBL = 0x13d,
318    BTN_THUMBR = 0x13e,
319    BTN_TOOL_PEN = 0x140,
320    BTN_TOOL_RUBBER = 0x141,
321    BTN_TOOL_BRUSH = 0x142,
322    BTN_TOOL_PENCIL = 0x143,
323    BTN_TOOL_AIRBRUSH = 0x144,
324    BTN_TOOL_FINGER = 0x145,
325    BTN_TOOL_MOUSE = 0x146,
326    BTN_TOOL_LENS = 0x147,
327    BTN_TOOL_QUINTTAP = 0x148, /* Five fingers on trackpad */
328    BTN_TOUCH = 0x14a,
329    BTN_STYLUS = 0x14b,
330    BTN_STYLUS2 = 0x14c,
331    BTN_TOOL_DOUBLETAP = 0x14d,
332    BTN_TOOL_TRIPLETAP = 0x14e,
333    BTN_TOOL_QUADTAP = 0x14f, /* Four fingers on trackpad */
334    BTN_GEAR_DOWN = 0x150,
335    BTN_GEAR_UP = 0x151,
336    KEY_OK = 0x160,
337    KEY_SELECT = 0x161,
338    KEY_GOTO = 0x162,
339    KEY_CLEAR = 0x163,
340    KEY_POWER2 = 0x164,
341    KEY_OPTION = 0x165,
342    KEY_INFO = 0x166, /* AL OEM Features/Tips/Tutorial */
343    KEY_TIME = 0x167,
344    KEY_VENDOR = 0x168,
345    KEY_ARCHIVE = 0x169,
346    KEY_PROGRAM = 0x16a, /* Media Select Program Guide */
347    KEY_CHANNEL = 0x16b,
348    KEY_FAVORITES = 0x16c,
349    KEY_EPG = 0x16d,
350    KEY_PVR = 0x16e, /* Media Select Home */
351    KEY_MHP = 0x16f,
352    KEY_LANGUAGE = 0x170,
353    KEY_TITLE = 0x171,
354    KEY_SUBTITLE = 0x172,
355    KEY_ANGLE = 0x173,
356    KEY_ZOOM = 0x174,
357    KEY_FULL_SCREEN = 0x174,
358    KEY_MODE = 0x175,
359    KEY_KEYBOARD = 0x176,
360    KEY_SCREEN = 0x177,
361    KEY_PC = 0x178,   /* Media Select Computer */
362    KEY_TV = 0x179,   /* Media Select TV */
363    KEY_TV2 = 0x17a,  /* Media Select Cable */
364    KEY_VCR = 0x17b,  /* Media Select VCR */
365    KEY_VCR2 = 0x17c, /* VCR Plus */
366    KEY_SAT = 0x17d,  /* Media Select Satellite */
367    KEY_SAT2 = 0x17e,
368    KEY_CD = 0x17f,   /* Media Select CD */
369    KEY_TAPE = 0x180, /* Media Select Tape */
370    KEY_RADIO = 0x181,
371    KEY_TUNER = 0x182, /* Media Select Tuner */
372    KEY_PLAYER = 0x183,
373    KEY_TEXT = 0x184,
374    KEY_DVD = 0x185, /* Media Select DVD */
375    KEY_AUX = 0x186,
376    KEY_MP3 = 0x187,
377    KEY_AUDIO = 0x188, /* AL Audio Browser */
378    KEY_VIDEO = 0x189, /* AL Movie Browser */
379    KEY_DIRECTORY = 0x18a,
380    KEY_LIST = 0x18b,
381    KEY_MEMO = 0x18c, /* Media Select Messages */
382    KEY_CALENDAR = 0x18d,
383    KEY_RED = 0x18e,
384    KEY_GREEN = 0x18f,
385    KEY_YELLOW = 0x190,
386    KEY_BLUE = 0x191,
387    KEY_CHANNELUP = 0x192,   /* Channel Increment */
388    KEY_CHANNELDOWN = 0x193, /* Channel Decrement */
389    KEY_FIRST = 0x194,
390    KEY_LAST = 0x195, /* Recall Last */
391    KEY_AB = 0x196,
392    KEY_NEXT = 0x197,
393    KEY_RESTART = 0x198,
394    KEY_SLOW = 0x199,
395    KEY_SHUFFLE = 0x19a,
396    KEY_BREAK = 0x19b,
397    KEY_PREVIOUS = 0x19c,
398    KEY_DIGITS = 0x19d,
399    KEY_TEEN = 0x19e,
400    KEY_TWEN = 0x19f,
401    KEY_VIDEOPHONE = 0x1a0,     /* Media Select Video Phone */
402    KEY_GAMES = 0x1a1,          /* Media Select Games */
403    KEY_ZOOMIN = 0x1a2,         /* AC Zoom In */
404    KEY_ZOOMOUT = 0x1a3,        /* AC Zoom Out */
405    KEY_ZOOMRESET = 0x1a4,      /* AC Zoom */
406    KEY_WORDPROCESSOR = 0x1a5,  /* AL Word Processor */
407    KEY_EDITOR = 0x1a6,         /* AL Text Editor */
408    KEY_SPREADSHEET = 0x1a7,    /* AL Spreadsheet */
409    KEY_GRAPHICSEDITOR = 0x1a8, /* AL Graphics Editor */
410    KEY_PRESENTATION = 0x1a9,   /* AL Presentation App */
411    KEY_DATABASE = 0x1aa,       /* AL Database App */
412    KEY_NEWS = 0x1ab,           /* AL Newsreader */
413    KEY_VOICEMAIL = 0x1ac,      /* AL Voicemail */
414    KEY_ADDRESSBOOK = 0x1ad,    /* AL Contacts/Address Book */
415    KEY_MESSENGER = 0x1ae,      /* AL Instant Messaging */
416    KEY_DISPLAYTOGGLE = 0x1af,  /* Turn display (LCD) on and off */
417    KEY_SPELLCHECK = 0x1b0,     /* AL Spell Check */
418    KEY_LOGOFF = 0x1b1,         /* AL Logoff */
419    KEY_DOLLAR = 0x1b2,
420    KEY_EURO = 0x1b3,
421    KEY_FRAMEBACK = 0x1b4, /* Consumer - transport controls */
422    KEY_FRAMEFORWARD = 0x1b5,
423    KEY_CONTEXT_MENU = 0x1b6,   /* GenDesc - system context menu */
424    KEY_MEDIA_REPEAT = 0x1b7,   /* Consumer - transport control */
425    KEY_10CHANNELSUP = 0x1b8,   /* 10 channels up (10+) */
426    KEY_10CHANNELSDOWN = 0x1b9, /* 10 channels down (10-) */
427    KEY_IMAGES = 0x1ba,         /* AL Image Browser */
428    KEY_PICKUP_PHONE = 0x1bd,
429    KEY_HANGUP_PHONE = 0x1be,
430    KEY_DEL_EOL = 0x1c0,
431    KEY_DEL_EOS = 0x1c1,
432    KEY_INS_LINE = 0x1c2,
433    KEY_DEL_LINE = 0x1c3,
434    KEY_FN = 0x1d0,
435    KEY_FN_ESC = 0x1d1,
436    KEY_FN_F1 = 0x1d2,
437    KEY_FN_F2 = 0x1d3,
438    KEY_FN_F3 = 0x1d4,
439    KEY_FN_F4 = 0x1d5,
440    KEY_FN_F5 = 0x1d6,
441    KEY_FN_F6 = 0x1d7,
442    KEY_FN_F7 = 0x1d8,
443    KEY_FN_F8 = 0x1d9,
444    KEY_FN_F9 = 0x1da,
445    KEY_FN_F10 = 0x1db,
446    KEY_FN_F11 = 0x1dc,
447    KEY_FN_F12 = 0x1dd,
448    KEY_FN_1 = 0x1de,
449    KEY_FN_2 = 0x1df,
450    KEY_FN_D = 0x1e0,
451    KEY_FN_E = 0x1e1,
452    KEY_FN_F = 0x1e2,
453    KEY_FN_S = 0x1e3,
454    KEY_FN_B = 0x1e4,
455    KEY_BRL_DOT1 = 0x1f1,
456    KEY_BRL_DOT2 = 0x1f2,
457    KEY_BRL_DOT3 = 0x1f3,
458    KEY_BRL_DOT4 = 0x1f4,
459    KEY_BRL_DOT5 = 0x1f5,
460    KEY_BRL_DOT6 = 0x1f6,
461    KEY_BRL_DOT7 = 0x1f7,
462    KEY_BRL_DOT8 = 0x1f8,
463    KEY_BRL_DOT9 = 0x1f9,
464    KEY_BRL_DOT10 = 0x1fa,
465    KEY_NUMERIC_0 = 0x200, /* used by phones, remote controls, */
466    KEY_NUMERIC_1 = 0x201, /* and other keypads */
467    KEY_NUMERIC_2 = 0x202,
468    KEY_NUMERIC_3 = 0x203,
469    KEY_NUMERIC_4 = 0x204,
470    KEY_NUMERIC_5 = 0x205,
471    KEY_NUMERIC_6 = 0x206,
472    KEY_NUMERIC_7 = 0x207,
473    KEY_NUMERIC_8 = 0x208,
474    KEY_NUMERIC_9 = 0x209,
475    KEY_NUMERIC_STAR = 0x20a,
476    KEY_NUMERIC_POUND = 0x20b,
477    KEY_NUMERIC_A = 0x20c, /* Phone key A - HUT Telephony 0xb9 */
478    KEY_NUMERIC_B = 0x20d,
479    KEY_NUMERIC_C = 0x20e,
480    KEY_NUMERIC_D = 0x20f,
481    KEY_CAMERA_FOCUS = 0x210,
482    KEY_WPS_BUTTON = 0x211,      /* WiFi Protected Setup key */
483    KEY_TOUCHPAD_TOGGLE = 0x212, /* Request switch touchpad on or off */
484    KEY_TOUCHPAD_ON = 0x213,
485    KEY_TOUCHPAD_OFF = 0x214,
486    KEY_CAMERA_ZOOMIN = 0x215,
487    KEY_CAMERA_ZOOMOUT = 0x216,
488    KEY_CAMERA_UP = 0x217,
489    KEY_CAMERA_DOWN = 0x218,
490    KEY_CAMERA_LEFT = 0x219,
491    KEY_CAMERA_RIGHT = 0x21a,
492    KEY_ATTENDANT_ON = 0x21b,
493    KEY_ATTENDANT_OFF = 0x21c,
494    KEY_ATTENDANT_TOGGLE = 0x21d, /* Attendant call on or off */
495    KEY_LIGHTS_TOGGLE = 0x21e,    /* Reading light on or off */
496    BTN_DPAD_UP = 0x220,
497    BTN_DPAD_DOWN = 0x221,
498    BTN_DPAD_LEFT = 0x222,
499    BTN_DPAD_RIGHT = 0x223,
500    KEY_ALS_TOGGLE = 0x230,   /* Ambient light sensor */
501    KEY_BUTTONCONFIG = 0x240, /* AL Button Configuration */
502    KEY_TASKMANAGER = 0x241,  /* AL Task/Project Manager */
503    KEY_JOURNAL = 0x242,      /* AL Log/Journal/Timecard */
504    KEY_CONTROLPANEL = 0x243, /* AL Control Panel */
505    KEY_APPSELECT = 0x244,    /* AL Select Task/Application */
506    KEY_SCREENSAVER = 0x245,  /* AL Screen Saver */
507    KEY_VOICECOMMAND = 0x246, /* Listening Voice Command */
508    KEY_ASSISTANT = 0x247,
509    KEY_KBD_LAYOUT_NEXT = 0x248,
510    KEY_BRIGHTNESS_MIN = 0x250, /* Set Brightness to Minimum */
511    KEY_BRIGHTNESS_MAX = 0x251, /* Set Brightness to Maximum */
512    KEY_KBDINPUTASSIST_PREV = 0x260,
513    KEY_KBDINPUTASSIST_NEXT = 0x261,
514    KEY_KBDINPUTASSIST_PREVGROUP = 0x262,
515    KEY_KBDINPUTASSIST_NEXTGROUP = 0x263,
516    KEY_KBDINPUTASSIST_ACCEPT = 0x264,
517    KEY_KBDINPUTASSIST_CANCEL = 0x265,
518    KEY_RIGHT_UP = 0x266,
519    KEY_RIGHT_DOWN = 0x267,
520    KEY_LEFT_UP = 0x268,
521    KEY_LEFT_DOWN = 0x269,
522    KEY_ROOT_MENU = 0x26a,
523    KEY_MEDIA_TOP_MENU = 0x26b,
524    KEY_NUMERIC_11 = 0x26c,
525    KEY_NUMERIC_12 = 0x26d,
526    KEY_AUDIO_DESC = 0x26e,
527    KEY_3D_MODE = 0x26f,
528    KEY_NEXT_FAVORITE = 0x270,
529    KEY_STOP_RECORD = 0x271,
530    KEY_PAUSE_RECORD = 0x272,
531    KEY_VOD = 0x273, /* Video on Demand */
532    KEY_UNMUTE = 0x274,
533    KEY_FASTREVERSE = 0x275,
534    KEY_SLOWREVERSE = 0x276,
535    KEY_DATA = 0x277,
536    KEY_ONSCREEN_KEYBOARD = 0x278,
537    KEY_PRIVACY_SCREEN_TOGGLE = 0x279,
538    KEY_SELECTIVE_SCREENSHOT = 0x27a,
539    BTN_TRIGGER_HAPPY1 = 0x2c0,
540    BTN_TRIGGER_HAPPY2 = 0x2c1,
541    BTN_TRIGGER_HAPPY3 = 0x2c2,
542    BTN_TRIGGER_HAPPY4 = 0x2c3,
543    BTN_TRIGGER_HAPPY5 = 0x2c4,
544    BTN_TRIGGER_HAPPY6 = 0x2c5,
545    BTN_TRIGGER_HAPPY7 = 0x2c6,
546    BTN_TRIGGER_HAPPY8 = 0x2c7,
547    BTN_TRIGGER_HAPPY9 = 0x2c8,
548    BTN_TRIGGER_HAPPY10 = 0x2c9,
549    BTN_TRIGGER_HAPPY11 = 0x2ca,
550    BTN_TRIGGER_HAPPY12 = 0x2cb,
551    BTN_TRIGGER_HAPPY13 = 0x2cc,
552    BTN_TRIGGER_HAPPY14 = 0x2cd,
553    BTN_TRIGGER_HAPPY15 = 0x2ce,
554    BTN_TRIGGER_HAPPY16 = 0x2cf,
555    BTN_TRIGGER_HAPPY17 = 0x2d0,
556    BTN_TRIGGER_HAPPY18 = 0x2d1,
557    BTN_TRIGGER_HAPPY19 = 0x2d2,
558    BTN_TRIGGER_HAPPY20 = 0x2d3,
559    BTN_TRIGGER_HAPPY21 = 0x2d4,
560    BTN_TRIGGER_HAPPY22 = 0x2d5,
561    BTN_TRIGGER_HAPPY23 = 0x2d6,
562    BTN_TRIGGER_HAPPY24 = 0x2d7,
563    BTN_TRIGGER_HAPPY25 = 0x2d8,
564    BTN_TRIGGER_HAPPY26 = 0x2d9,
565    BTN_TRIGGER_HAPPY27 = 0x2da,
566    BTN_TRIGGER_HAPPY28 = 0x2db,
567    BTN_TRIGGER_HAPPY29 = 0x2dc,
568    BTN_TRIGGER_HAPPY30 = 0x2dd,
569    BTN_TRIGGER_HAPPY31 = 0x2de,
570    BTN_TRIGGER_HAPPY32 = 0x2df,
571    BTN_TRIGGER_HAPPY33 = 0x2e0,
572    BTN_TRIGGER_HAPPY34 = 0x2e1,
573    BTN_TRIGGER_HAPPY35 = 0x2e2,
574    BTN_TRIGGER_HAPPY36 = 0x2e3,
575    BTN_TRIGGER_HAPPY37 = 0x2e4,
576    BTN_TRIGGER_HAPPY38 = 0x2e5,
577    BTN_TRIGGER_HAPPY39 = 0x2e6,
578    BTN_TRIGGER_HAPPY40 = 0x2e7,
579);
580
581#[test]
582fn from_str() {
583    use std::str::FromStr;
584
585    assert_eq!(KeyCode::from_str("KEY_A"), Ok(KeyCode::KEY_A));
586    assert!(KeyCode::from_str("KEY_FOOBAR").is_err());
587}