Skip to main content

joydev/event_codes/
key.rs

1use std::marker::PhantomData;
2
3use input_event_codes::*;
4
5use crate::event_codes::{EventCode, IntoIter};
6
7/// Event codes for buttons and keys
8#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
9#[repr(u16)]
10pub enum Key {
11	/// Reserved key
12	KeyReserved = KEY_RESERVED,
13	/// Escape key
14	KeyEscape = KEY_ESC,
15	/// 1 key
16	Key1 = KEY_1,
17	/// 2 key
18	Key2 = KEY_2,
19	/// 3 key
20	Key3 = KEY_3,
21	/// 4 key
22	Key4 = KEY_4,
23	/// 5 key
24	Key5 = KEY_5,
25	/// 6 key
26	Key6 = KEY_6,
27	/// 7 key
28	Key7 = KEY_7,
29	/// 8 key
30	Key8 = KEY_8,
31	/// 9 key
32	Key9 = KEY_9,
33	/// 0 key
34	Key0 = KEY_0,
35	/// Minus key
36	KeyMinus = KEY_MINUS,
37	/// Equal key
38	KeyEqual = KEY_EQUAL,
39	/// Backspace key
40	KeyBackspace = KEY_BACKSPACE,
41	/// Tab key
42	KeyTab = KEY_TAB,
43	/// Q key
44	KeyQ = KEY_Q,
45	/// W key
46	KeyW = KEY_W,
47	/// E key
48	KeyE = KEY_E,
49	/// R key
50	KeyR = KEY_R,
51	/// T key
52	KeyT = KEY_T,
53	/// Y key
54	KeyY = KEY_Y,
55	/// U key
56	KeyU = KEY_U,
57	/// I key
58	KeyI = KEY_I,
59	/// O key
60	KeyO = KEY_O,
61	/// P key
62	KeyP = KEY_P,
63	/// Left brace key
64	KeyLeftBrace = KEY_LEFTBRACE,
65	/// Right brace key
66	KeyRightBrace = KEY_RIGHTBRACE,
67	/// Enter key
68	KeyEnter = KEY_ENTER,
69	/// Left control key
70	KeyLeftControl = KEY_LEFTCTRL,
71	/// A key
72	KeyA = KEY_A,
73	/// S key
74	KeyS = KEY_S,
75	/// D key
76	KeyD = KEY_D,
77	/// F key
78	KeyF = KEY_F,
79	/// G key
80	KeyG = KEY_G,
81	/// H key
82	KeyH = KEY_H,
83	/// J key
84	KeyJ = KEY_J,
85	/// K key
86	KeyK = KEY_K,
87	/// L key
88	KeyL = KEY_L,
89	/// Semicolon key
90	KeySemicolon = KEY_SEMICOLON,
91	/// Apostrophe key
92	KeyApostrophe = KEY_APOSTROPHE,
93	/// Grave key
94	KeyGrave = KEY_GRAVE,
95	/// Left shift key
96	KeyLeftShift = KEY_LEFTSHIFT,
97	/// Backslash key
98	KeyBackslash = KEY_BACKSLASH,
99	/// Z key
100	KeyZ = KEY_Z,
101	/// X key
102	KeyX = KEY_X,
103	/// C key
104	KeyC = KEY_C,
105	/// V key
106	KeyV = KEY_V,
107	/// B key
108	KeyB = KEY_B,
109	/// N key
110	KeyN = KEY_N,
111	/// M key
112	KeyM = KEY_M,
113	/// Comma key
114	KeyComma = KEY_COMMA,
115	/// Dot key
116	KeyDot = KEY_DOT,
117	/// Slash key
118	KeySlash = KEY_SLASH,
119	/// Right shift key
120	KeyRightShift = KEY_RIGHTSHIFT,
121	/// Keypad asterisk key
122	KeyKeypadAsterisk = KEY_KPASTERISK,
123	/// Left alternate key
124	KeyLeftAlternate = KEY_LEFTALT,
125	/// Space key
126	KeySpace = KEY_SPACE,
127	/// Caps lock key
128	KeyCapsLock = KEY_CAPSLOCK,
129	/// F1 key
130	KeyF1 = KEY_F1,
131	/// F2 key
132	KeyF2 = KEY_F2,
133	/// F3 key
134	KeyF3 = KEY_F3,
135	/// F4 key
136	KeyF4 = KEY_F4,
137	/// F5 key
138	KeyF5 = KEY_F5,
139	/// F6 key
140	KeyF6 = KEY_F6,
141	/// F7 key
142	KeyF7 = KEY_F7,
143	/// F8 key
144	KeyF8 = KEY_F8,
145	/// F9 key
146	KeyF9 = KEY_F9,
147	/// F10 key
148	KeyF10 = KEY_F10,
149	/// Numeric lock key
150	KeyNumericLock = KEY_NUMLOCK,
151	/// Scroll lock key
152	KeyScrollLock = KEY_SCROLLLOCK,
153	/// Keypad 7 key
154	KeyKeypad7 = KEY_KP7,
155	/// Keypad 8 key
156	KeyKeypad8 = KEY_KP8,
157	/// Keypad 9 key
158	KeyKeypad9 = KEY_KP9,
159	/// Keypad minus key
160	KeyKeypadMinus = KEY_KPMINUS,
161	/// Keypad 4 key
162	KeyKeypad4 = KEY_KP4,
163	/// Keypad 5 key
164	KeyKeypad5 = KEY_KP5,
165	/// Keypad 6 key
166	KeyKeypad6 = KEY_KP6,
167	/// Keypad plus key
168	KeyKeypadPlus = KEY_KPPLUS,
169	/// Keypad 1 key
170	KeyKeypad1 = KEY_KP1,
171	/// Keypad 2 key
172	KeyKeypad2 = KEY_KP2,
173	/// Keypad 3 key
174	KeyKeypad3 = KEY_KP3,
175	/// Keypad 0 key
176	KeyKeypad0 = KEY_KP0,
177	/// Keypad dot key
178	KeyKeypadDot = KEY_KPDOT,
179	/// Unknown button/key 054
180	Unknown054 = 0x054,
181	/// Zankaku/Hankaku key
182	KeyZenkakuHankaku = KEY_ZENKAKUHANKAKU,
183	/// 102ND key
184	Key102ND = KEY_102ND,
185	/// F11 key
186	KeyF11 = KEY_F11,
187	/// F12 key
188	KeyF12 = KEY_F12,
189	/// RO key
190	KeyRO = KEY_RO,
191	/// Katakana key
192	KeyKatakana = KEY_KATAKANA,
193	/// Hiragana key
194	KeyHiragana = KEY_HIRAGANA,
195	/// Henkan key
196	KeyHenkan = KEY_HENKAN,
197	/// Katakana/Hiragana key
198	KeyKatakanaHiragana = KEY_KATAKANAHIRAGANA,
199	/// Muhenkan key
200	KeyMuhenkan = KEY_MUHENKAN,
201	/// Keypad JP comma key
202	KeyKeypadJPComma = KEY_KPJPCOMMA,
203	/// Keypad enter key
204	KeyKeypadEnter = KEY_KPENTER,
205	/// Right control key
206	KeyRightControl = KEY_RIGHTCTRL,
207	/// Keypad slash key
208	KeyKeypadSlash = KEY_KPSLASH,
209	/// System request key
210	KeySystemRequest = KEY_SYSRQ,
211	/// Right alternate key
212	KeyRightAlternate = KEY_RIGHTALT,
213	/// Linefeed key
214	KeyLinefeed = KEY_LINEFEED,
215	/// Home key
216	KeyHome = KEY_HOME,
217	/// Up key
218	KeyUp = KEY_UP,
219	/// Page up key
220	KeyPageUp = KEY_PAGEUP,
221	/// Left key
222	KeyLeft = KEY_LEFT,
223	/// Right key
224	KeyRight = KEY_RIGHT,
225	/// End key
226	KeyEnd = KEY_END,
227	/// Down key
228	KeyDown = KEY_DOWN,
229	/// Page down key
230	KeyPageDown = KEY_PAGEDOWN,
231	/// Insert key
232	KeyInsert = KEY_INSERT,
233	/// Delete key
234	KeyDelete = KEY_DELETE,
235	/// Macro key
236	KeyMacro = KEY_MACRO,
237	/// Mute key
238	KeyMute = KEY_MUTE,
239	/// Volume down key
240	KeyVolumeDown = KEY_VOLUMEDOWN,
241	/// Valume up key
242	KeyVolumeUp = KEY_VOLUMEUP,
243	/// Powe key
244	KeyPower = KEY_POWER,
245	/// Keypad equal key
246	KeyKeypadEqual = KEY_KPEQUAL,
247	/// Keypad plus/minus key
248	KeyKeypadPlusMinus = KEY_KPPLUSMINUS,
249	/// Pause key
250	KeyPause = KEY_PAUSE,
251	/// Scale key
252	KeyScale = KEY_SCALE,
253	/// Keypad comma key
254	KeyKeypadComma = KEY_KPCOMMA,
255	/// Hangeul key
256	KeyHangeul = KEY_HANGEUL,
257	/// Hanja key
258	KeyHanja = KEY_HANJA,
259	/// Yen key
260	KeyYen = KEY_YEN,
261	/// Left meta key
262	KeyLeftMeta = KEY_LEFTMETA,
263	/// Right meta key
264	KeyRightMeta = KEY_RIGHTMETA,
265	/// Compose key
266	KeyCompose = KEY_COMPOSE,
267	/// Stop key
268	KeyStop = KEY_STOP,
269	/// Again key
270	KeyAgain = KEY_AGAIN,
271	/// Props key
272	KeyProps = KEY_PROPS,
273	/// Undo key
274	KeyUndo = KEY_UNDO,
275	/// Front key
276	KeyFront = KEY_FRONT,
277	/// Copy key
278	KeyCopy = KEY_COPY,
279	/// Open key
280	KeyOpen = KEY_OPEN,
281	/// Paste key
282	KeyPaste = KEY_PASTE,
283	/// Find key
284	KeyFind = KEY_FIND,
285	/// Cut key
286	KeyCut = KEY_CUT,
287	/// Help key
288	KeyHelp = KEY_HELP,
289	/// Menu key
290	KeyMenu = KEY_MENU,
291	/// Calculator key
292	KeyCalculator = KEY_CALC,
293	/// Setup key
294	KeySetup = KEY_SETUP,
295	/// Sleep key
296	KeySleep = KEY_SLEEP,
297	/// Wakeup key
298	KeyWakeup = KEY_WAKEUP,
299	/// File key
300	KeyFile = KEY_FILE,
301	/// Send file key
302	KeySendFile = KEY_SENDFILE,
303	/// Delete file key
304	KeyDeleteFile = KEY_DELETEFILE,
305	/// XFER key
306	KeyXFER = KEY_XFER,
307	/// Program 1 key
308	KeyProgram1 = KEY_PROG1,
309	/// Program 2 key
310	KeyProgram2 = KEY_PROG2,
311	/// WWW key
312	KeyWWW = KEY_WWW,
313	/// Ms DOS key
314	KeyMsDOS = KEY_MSDOS,
315	/// Coffee key
316	KeyCoffee = KEY_COFFEE,
317	/// Rotate display key
318	KeyRotateDisplay = KEY_ROTATE_DISPLAY,
319	/// Cycle windows key
320	KeyCycleWindows = KEY_CYCLEWINDOWS,
321	/// Mail key
322	KeyMail = KEY_MAIL,
323	/// Bookmarks key
324	KeyBookmarks = KEY_BOOKMARKS,
325	/// Computer key
326	KeyComputer = KEY_COMPUTER,
327	/// Back key
328	KeyBack = KEY_BACK,
329	/// Forward key
330	KeyForward = KEY_FORWARD,
331	/// Close CD key
332	KeyCloseCD = KEY_CLOSECD,
333	/// Eject CD key
334	KeyEjectCD = KEY_EJECTCD,
335	/// Eject close CD key
336	KeyEjectCloseCD = KEY_EJECTCLOSECD,
337	/// Next song key
338	KeyNextSong = KEY_NEXTSONG,
339	/// Play pause key
340	KeyPlayPause = KEY_PLAYPAUSE,
341	/// Previous song key
342	KeyPreviousSong = KEY_PREVIOUSSONG,
343	/// Stop CD key
344	KeyStopCD = KEY_STOPCD,
345	/// Record key
346	KeyRecord = KEY_RECORD,
347	/// Rewind key
348	KeyRewind = KEY_REWIND,
349	/// Phone key
350	KeyPhone = KEY_PHONE,
351	/// Iso key
352	KeyIso = KEY_ISO,
353	/// Config key
354	KeyConfig = KEY_CONFIG,
355	/// Homepage key
356	KeyHomepage = KEY_HOMEPAGE,
357	/// Refresh key
358	KeyRefresh = KEY_REFRESH,
359	/// Exit key
360	KeyExit = KEY_EXIT,
361	/// Move key
362	KeyMove = KEY_MOVE,
363	/// Edit key
364	KeyEdit = KEY_EDIT,
365	/// Scroll up key
366	KeyScrollUp = KEY_SCROLLUP,
367	/// Scroll down key
368	KeyScrollDown = KEY_SCROLLDOWN,
369	/// Keypad left parenthesis key
370	KeyKeypadLeftParenthesis = KEY_KPLEFTPAREN,
371	/// Keypad right parenthesis key
372	KeyKeypadRightParenthesis = KEY_KPRIGHTPAREN,
373	/// New key
374	KeyNew = KEY_NEW,
375	/// Redo key
376	KeyRedo = KEY_REDO,
377	/// F13 key
378	KeyF13 = KEY_F13,
379	/// F14 key
380	KeyF14 = KEY_F14,
381	/// F15 key
382	KeyF15 = KEY_F15,
383	/// F16 key
384	KeyF16 = KEY_F16,
385	/// F17 key
386	KeyF17 = KEY_F17,
387	/// F18 key
388	KeyF18 = KEY_F18,
389	/// F19 key
390	KeyF19 = KEY_F19,
391	/// F20 key
392	KeyF20 = KEY_F20,
393	/// F21 key
394	KeyF21 = KEY_F21,
395	/// F22 key
396	KeyF22 = KEY_F22,
397	/// F23 key
398	KeyF23 = KEY_F23,
399	/// F24 key
400	KeyF24 = KEY_F24,
401	/// Unknown button/key 0C3
402	Unknown0C3 = 0x0c3,
403	/// Unknown button/key 0C4
404	Unknown0C4 = 0x0c4,
405	/// Unknown button/key 0C5
406	Unknown0C5 = 0x0c5,
407	/// Unknown button/key 0C6
408	Unknown0C6 = 0x0c6,
409	/// Unknown button/key 0C7
410	Unknown0C7 = 0x0c7,
411	/// Play CD key
412	KeyPlayCD = KEY_PLAYCD,
413	/// Pause CD key
414	KeyPauseCD = KEY_PAUSECD,
415	/// Program 3 key
416	KeyProgram3 = KEY_PROG3,
417	/// Program 4 key
418	KeyProgram4 = KEY_PROG4,
419	/// Dashboard key
420	KeyDashboard = KEY_DASHBOARD,
421	/// Suspend key
422	KeySuspend = KEY_SUSPEND,
423	/// Close key
424	KeyClose = KEY_CLOSE,
425	/// Play key
426	KeyPlay = KEY_PLAY,
427	/// Fast forward key
428	KeyFastForward = KEY_FASTFORWARD,
429	/// Bass boost key
430	KeyBassBoost = KEY_BASSBOOST,
431	/// Print key
432	KeyPrint = KEY_PRINT,
433	/// HP key
434	KeyHP = KEY_HP,
435	/// Camera key
436	KeyCamera = KEY_CAMERA,
437	/// Sound key
438	KeySound = KEY_SOUND,
439	/// Question key
440	KeyQuestion = KEY_QUESTION,
441	/// Email key
442	KeyEmail = KEY_EMAIL,
443	/// Chat key
444	KeyChat = KEY_CHAT,
445	/// Search key
446	KeySearch = KEY_SEARCH,
447	/// Connect key
448	KeyConnect = KEY_CONNECT,
449	/// Finance key
450	KeyFinance = KEY_FINANCE,
451	/// Sport key
452	KeySport = KEY_SPORT,
453	/// Shop key
454	KeyShop = KEY_SHOP,
455	/// Alternate erase key
456	KeyAlternateErase = KEY_ALTERASE,
457	/// Cancel key
458	KeyCancel = KEY_CANCEL,
459	/// Brightness down key
460	KeyBrightnessDown = KEY_BRIGHTNESSDOWN,
461	/// Brightness up key
462	KeyBrightnessUp = KEY_BRIGHTNESSUP,
463	/// Media key
464	KeyMedia = KEY_MEDIA,
465	/// Switch video mode key
466	KeySwitchVideoMode = KEY_SWITCHVIDEOMODE,
467	/// Keyboard illumination toggle key
468	KeyKeyboardIlluminationToggle = KEY_KBDILLUMTOGGLE,
469	/// Keyboard illumination down key
470	KeyKeyboardIlluminationDown = KEY_KBDILLUMDOWN,
471	/// Keyboard illumination up key
472	KeyKeyboardIlluminationUp = KEY_KBDILLUMUP,
473	/// Send key
474	KeySend = KEY_SEND,
475	/// Reply key
476	KeyReply = KEY_REPLY,
477	/// Forward mail key
478	KeyForwardMail = KEY_FORWARDMAIL,
479	/// Save key
480	KeySave = KEY_SAVE,
481	/// Documents key
482	KeyDocuments = KEY_DOCUMENTS,
483	/// Battery key
484	KeyBattery = KEY_BATTERY,
485	/// Bluetooth key
486	KeyBluetooth = KEY_BLUETOOTH,
487	/// WLAN key
488	KeyWLAN = KEY_WLAN,
489	/// UWB key
490	KeyUWB = KEY_UWB,
491	/// Unknown key
492	KeyUnknown = KEY_UNKNOWN,
493	/// Video next key
494	KeyVideoNext = KEY_VIDEO_NEXT,
495	/// Video previous key
496	KeyVideoPrevious = KEY_VIDEO_PREV,
497	/// Brightness cycle key
498	KeyBrightnessCycle = KEY_BRIGHTNESS_CYCLE,
499	/// Brightness auto key
500	KeyBrightnessAuto = KEY_BRIGHTNESS_AUTO,
501	/// Display off key
502	KeyDisplayOff = KEY_DISPLAY_OFF,
503	/// WWAN key
504	KeyWWAN = KEY_WWAN,
505	/// RFKill key
506	KeyRFKill = KEY_RFKILL,
507	/// Microphone mute key
508	KeyMicrophoneMute = KEY_MICMUTE,
509	/// Unknown button/key 0F9
510	Unknown0F9 = 0x0f9,
511	/// Unknown button/key 0FA
512	Unknown0FA = 0x0fa,
513	/// Unknown button/key 0FB
514	Unknown0FB = 0x0fb,
515	/// Unknown button/key 0FC
516	Unknown0FC = 0x0fc,
517	/// Unknown button/key 0FD
518	Unknown0FD = 0x0fd,
519	/// Unknown button/key 0FE
520	Unknown0FE = 0x0fe,
521	/// Unknown button/key 0FF
522	Unknown0FF = 0x0ff,
523	/// 0 button
524	Button0 = BTN_0,
525	/// 1 button
526	Button1 = BTN_1,
527	/// 2 button
528	Button2 = BTN_2,
529	/// 3 button
530	Button3 = BTN_3,
531	/// 4 button
532	Button4 = BTN_4,
533	/// 5 button
534	Button5 = BTN_5,
535	/// 6 button
536	Button6 = BTN_6,
537	/// 7 button
538	Button7 = BTN_7,
539	/// 8 button
540	Button8 = BTN_8,
541	/// 9 button
542	Button9 = BTN_9,
543	/// Unknown button/key 10A
544	Unknown10A = 0x10a,
545	/// Unknown button/key 10B
546	Unknown10B = 0x10b,
547	/// Unknown button/key 10C
548	Unknown10C = 0x10c,
549	/// Unknown button/key 10D
550	Unknown10D = 0x10d,
551	/// Unknown button/key 10E
552	Unknown10E = 0x10e,
553	/// Unknown button/key 10F
554	Unknown10F = 0x10f,
555	/// Left mouse button
556	ButtonLeftMouse = BTN_LEFT,
557	/// Right mouse button
558	ButtonRightMouse = BTN_RIGHT,
559	/// Middle mouse button
560	ButtonMiddleMouse = BTN_MIDDLE,
561	/// Side mouse button
562	ButtonSideMouse = BTN_SIDE,
563	/// Extra mouse button
564	ButtonExtraMouse = BTN_EXTRA,
565	/// Forward mouse button
566	ButtonForwardMouse = BTN_FORWARD,
567	/// Back mouse button
568	ButtonBackMouse = BTN_BACK,
569	/// Task mouse button
570	ButtonTaskMouse = BTN_TASK,
571	/// Unknown button/key 118
572	Unknown118 = 0x118,
573	/// Unknown button/key 119
574	Unknown119 = 0x119,
575	/// Unknown button/key 11A
576	Unknown11A = 0x11a,
577	/// Unknown button/key 11B
578	Unknown11B = 0x11b,
579	/// Unknown button/key 11C
580	Unknown11C = 0x11c,
581	/// Unknown button/key 11D
582	Unknown11D = 0x11d,
583	/// Unknown button/key 11E
584	Unknown11E = 0x11e,
585	/// Unknown button/key 11F
586	Unknown11F = 0x11f,
587	/// Trigger button
588	ButtonTrigger = BTN_TRIGGER,
589	/// Thumb 1 button
590	ButtonThumb = BTN_THUMB,
591	/// Thumb 2 button
592	ButtonThumb2 = BTN_THUMB2,
593	/// Top 1 button
594	ButtonTop = BTN_TOP,
595	/// Top 2 button
596	ButtonTop2 = BTN_TOP2,
597	/// Pinkie button
598	ButtonPinkie = BTN_PINKIE,
599	/// Base 1 button
600	ButtonBase = BTN_BASE,
601	/// Base 2 button
602	ButtonBase2 = BTN_BASE2,
603	/// Base 3 button
604	ButtonBase3 = BTN_BASE3,
605	/// Base 4 button
606	ButtonBase4 = BTN_BASE4,
607	/// Base 5 button
608	ButtonBase5 = BTN_BASE5,
609	/// Base 6 button
610	ButtonBase6 = BTN_BASE6,
611	/// Unknown button/key 12C
612	Unknown12C = 0x12c,
613	/// Unknown button/key 12D
614	Unknown12D = 0x12d,
615	/// Unknown button/key 12E
616	Unknown12E = 0x12e,
617	/// Dead button
618	ButtonDead = BTN_DEAD,
619	/// South button
620	ButtonSouth = BTN_SOUTH,
621	/// East button
622	ButtonEast = BTN_EAST,
623	/// C button
624	ButtonC = BTN_C,
625	/// North button
626	ButtonNorth = BTN_NORTH,
627	/// West button
628	ButtonWest = BTN_WEST,
629	/// Z button
630	ButtonZ = BTN_Z,
631	/// Trigger left 1 button
632	ButtonTriggerLeft = BTN_TL,
633	/// Trigger right 1 button
634	ButtonTriggerRight = BTN_TR,
635	/// Trigger left 2 button
636	ButtonTriggerLeft2 = BTN_TL2,
637	/// Trigger right 2 button
638	ButtonTriggerRight2 = BTN_TR2,
639	/// Select button
640	ButtonSelect = BTN_SELECT,
641	/// Start button
642	ButtonStart = BTN_START,
643	/// Mode button
644	ButtonMode = BTN_MODE,
645	/// Thumb left button
646	ButtonThumbLeft = BTN_THUMBL,
647	/// Thumb right button
648	ButtonThumbRight = BTN_THUMBR,
649	/// Unknown button/key 13F
650	Unknown13F = 0x13f,
651	/// Tool pen button
652	ButtonToolPen = BTN_TOOL_PEN,
653	/// Tool rubber button
654	ButtonToolRubber = BTN_TOOL_RUBBER,
655	/// Tool brush button
656	ButtonToolBrush = BTN_TOOL_BRUSH,
657	/// Tool pencil button
658	ButtonToolPencil = BTN_TOOL_PENCIL,
659	/// Tool airbrush button
660	ButtonToolAirbrush = BTN_TOOL_AIRBRUSH,
661	/// Tool finger button
662	ButtonToolFinger = BTN_TOOL_FINGER,
663	/// Tool mouse button
664	ButtonToolMouse = BTN_TOOL_MOUSE,
665	/// Tool lens button
666	ButtonToolLens = BTN_TOOL_LENS,
667	/// Tool quintuple tap button
668	ButtonToolQuintupleTap = BTN_TOOL_QUINTTAP,
669	/// Stylus 3 button
670	ButtonStylus3 = BTN_STYLUS3,
671	/// Touch button
672	ButtonTouch = BTN_TOUCH,
673	/// Stylus 1 button
674	ButtonStylus = BTN_STYLUS,
675	/// Stylus 2 button
676	ButtonStylus2 = BTN_STYLUS2,
677	/// Tool double tap button
678	ButtonToolDoubleTap = BTN_TOOL_DOUBLETAP,
679	/// Tool triple tap button
680	ButtonToolTripleTap = BTN_TOOL_TRIPLETAP,
681	/// Tool quadruple tap button
682	ButtonToolQuadrupleTap = BTN_TOOL_QUADTAP,
683	/// Gear down button
684	ButtonGearDown = BTN_GEAR_DOWN,
685	/// Gear up button
686	ButtonGearUp = BTN_GEAR_UP,
687	/// Unknown button/key 152
688	Unknown152 = 0x152,
689	/// Unknown button/key 153
690	Unknown153 = 0x153,
691	/// Unknown button/key 154
692	Unknown154 = 0x154,
693	/// Unknown button/key 155
694	Unknown155 = 0x155,
695	/// Unknown button/key 156
696	Unknown156 = 0x156,
697	/// Unknown button/key 157
698	Unknown157 = 0x157,
699	/// Unknown button/key 158
700	Unknown158 = 0x158,
701	/// Unknown button/key 159
702	Unknown159 = 0x159,
703	/// Unknown button/key 15A
704	Unknown15A = 0x15a,
705	/// Unknown button/key 15B
706	Unknown15B = 0x15b,
707	/// Unknown button/key 15C
708	Unknown15C = 0x15c,
709	/// Unknown button/key 15D
710	Unknown15D = 0x15d,
711	/// Unknown button/key 15E
712	Unknown15E = 0x15e,
713	/// Unknown button/key 15F
714	Unknown15F = 0x15f,
715	/// Ok key
716	KeyOk = KEY_OK,
717	/// Select key
718	KeySelect = KEY_SELECT,
719	/// Goto key
720	KeyGoto = KEY_GOTO,
721	/// Clear key
722	KeyClear = KEY_CLEAR,
723	/// Power 2 key
724	KeyPower2 = KEY_POWER2,
725	/// Option key
726	KeyOption = KEY_OPTION,
727	/// Info key
728	KeyInfo = KEY_INFO,
729	/// Time key
730	KeyTime = KEY_TIME,
731	/// Vendor key
732	KeyVendor = KEY_VENDOR,
733	/// Archive key
734	KeyArchive = KEY_ARCHIVE,
735	/// Program key
736	KeyProgram = KEY_PROGRAM,
737	/// Channel key
738	KeyChannel = KEY_CHANNEL,
739	/// Favorites key
740	KeyFavorites = KEY_FAVORITES,
741	/// EPG key
742	KeyEPG = KEY_EPG,
743	/// PVR key
744	KeyPVR = KEY_PVR,
745	/// MHP key
746	KeyMHP = KEY_MHP,
747	/// Language key
748	KeyLanguage = KEY_LANGUAGE,
749	/// Title key
750	KeyTitle = KEY_TITLE,
751	/// Subtitle key
752	KeySubtitle = KEY_SUBTITLE,
753	/// Angle key
754	KeyAngle = KEY_ANGLE,
755	/// Full screen key
756	KeyFullScreen = KEY_FULL_SCREEN,
757	/// Mode key
758	KeyMode = KEY_MODE,
759	/// Keyboard key
760	KeyKeyboard = KEY_KEYBOARD,
761	/// Aspect ratio key
762	KeyAspectRatio = KEY_ASPECT_RATIO,
763	/// PC key
764	KeyPC = KEY_PC,
765	/// TV 1 key
766	KeyTV = KEY_TV,
767	/// TV 2 key
768	KeyTV2 = KEY_TV2,
769	/// Videocassette recorder 1 key
770	KeyVCR = KEY_VCR,
771	/// Videocassette recorder 2 key
772	KeyVCR2 = KEY_VCR2,
773	/// Satellite 1 key
774	KeySatellite = KEY_SAT,
775	/// Satellite 2 key
776	KeySatellite2 = KEY_SAT2,
777	/// CD key
778	KeyCD = KEY_CD,
779	/// Tape key
780	KeyTape = KEY_TAPE,
781	/// Radio key
782	KeyRadio = KEY_RADIO,
783	/// Tuner key
784	KeyTuner = KEY_TUNER,
785	/// Player key
786	KeyPlayer = KEY_PLAYER,
787	/// Text key
788	KeyText = KEY_TEXT,
789	/// DVD key
790	KeyDVD = KEY_DVD,
791	/// Aux key
792	KeyAux = KEY_AUX,
793	/// MP3 key
794	KeyMP3 = KEY_MP3,
795	/// Audio key
796	KeyAudio = KEY_AUDIO,
797	/// Video key
798	KeyVideo = KEY_VIDEO,
799	/// Directory key
800	KeyDirectory = KEY_DIRECTORY,
801	/// List key
802	KeyList = KEY_LIST,
803	/// Memo key
804	KeyMemo = KEY_MEMO,
805	/// Calendar key
806	KeyCalendar = KEY_CALENDAR,
807	/// Red key
808	KeyRed = KEY_RED,
809	/// Green key
810	KeyGreen = KEY_GREEN,
811	/// Yellow key
812	KeyYellow = KEY_YELLOW,
813	/// Blue key
814	KeyBlue = KEY_BLUE,
815	/// Channel up key
816	KeyChannelUp = KEY_CHANNELUP,
817	/// Channel down key
818	KeyChannelDown = KEY_CHANNELDOWN,
819	/// First key
820	KeyFirst = KEY_FIRST,
821	/// Last key
822	KeyLast = KEY_LAST,
823	/// Ab key
824	KeyAb = KEY_AB,
825	/// Next key
826	KeyNext = KEY_NEXT,
827	/// Restart key
828	KeyRestart = KEY_RESTART,
829	/// Slow key
830	KeySlow = KEY_SLOW,
831	/// Shuffle key
832	KeyShuffle = KEY_SHUFFLE,
833	/// Break key
834	KeyBreak = KEY_BREAK,
835	/// Previous key
836	KeyPrevious = KEY_PREVIOUS,
837	/// Digits key
838	KeyDigits = KEY_DIGITS,
839	/// Teen key
840	KeyTeen = KEY_TEEN,
841	/// Twenty key
842	KeyTwenty = KEY_TWEN,
843	/// Videophone key
844	KeyVideophone = KEY_VIDEOPHONE,
845	/// Games key
846	KeyGames = KEY_GAMES,
847	/// Zoom in key
848	KeyZoomIn = KEY_ZOOMIN,
849	/// Zoom out key
850	KeyZoomOut = KEY_ZOOMOUT,
851	/// Zoom reset key
852	KeyZoomReset = KEY_ZOOMRESET,
853	/// Word processor key
854	KeyWordProcessor = KEY_WORDPROCESSOR,
855	/// Editor key
856	KeyEditor = KEY_EDITOR,
857	/// Spread sheet key
858	KeySpreadSheet = KEY_SPREADSHEET,
859	/// Graphics editor key
860	KeyGraphicsEditor = KEY_GRAPHICSEDITOR,
861	/// Presentation key
862	KeyPresentation = KEY_PRESENTATION,
863	/// Database key
864	KeyDatabase = KEY_DATABASE,
865	/// News key
866	KeyNews = KEY_NEWS,
867	/// Voice mail key
868	KeyVoiceMail = KEY_VOICEMAIL,
869	/// Address book key
870	KeyAddressBook = KEY_ADDRESSBOOK,
871	/// Messenger key
872	KeyMessenger = KEY_MESSENGER,
873	/// Display toggle key
874	KeyDisplayToggle = KEY_DISPLAYTOGGLE,
875	/// Spellcheck key
876	KeySpellcheck = KEY_SPELLCHECK,
877	/// Logoff key
878	KeyLogoff = KEY_LOGOFF,
879	/// Dollar key
880	KeyDollar = KEY_DOLLAR,
881	/// Euro key
882	KeyEuro = KEY_EURO,
883	/// Frame back key
884	KeyFrameBack = KEY_FRAMEBACK,
885	/// Frame forward key
886	KeyFrameForward = KEY_FRAMEFORWARD,
887	/// Context menu key
888	KeyContextMenu = KEY_CONTEXT_MENU,
889	/// Media repeat key
890	KeyMediaRepeat = KEY_MEDIA_REPEAT,
891	/// 10 channels up key
892	Key10ChannelsUp = KEY_10CHANNELSUP,
893	/// 10 channels down key
894	Key10ChannelsDown = KEY_10CHANNELSDOWN,
895	/// Image key
896	KeyImages = KEY_IMAGES,
897	/// Unknown button/key 1BB
898	Unknown1BB = 0x1bb,
899	/// Unknown button/key 1BC
900	Unknown1BC = 0x1bc,
901	/// Unknown button/key 1BD
902	Unknown1BD = 0x1bd,
903	/// Unknown button/key 1BE
904	Unknown1BE = 0x1be,
905	/// Unknown button/key 1BF
906	Unknown1BF = 0x1bf,
907	/// Delete eol key
908	KeyDeleteEOL = KEY_DEL_EOL,
909	/// Delete eos key
910	KeyDeleteEOS = KEY_DEL_EOS,
911	/// Insert line key
912	KeyInsertLine = KEY_INS_LINE,
913	/// Delete line key
914	KeyDeleteLine = KEY_DEL_LINE,
915	/// Unknown button/key 1C4
916	Unknown1C4 = 0x1c4,
917	/// Unknown button/key 1C5
918	Unknown1C5 = 0x1c5,
919	/// Unknown button/key 1C6
920	Unknown1C6 = 0x1c6,
921	/// Unknown button/key 1C7
922	Unknown1C7 = 0x1c7,
923	/// Unknown button/key 1C8
924	Unknown1C8 = 0x1c8,
925	/// Unknown button/key 1C9
926	Unknown1C9 = 0x1c9,
927	/// Unknown button/key 1CA
928	Unknown1CA = 0x1ca,
929	/// Unknown button/key 1CB
930	Unknown1CB = 0x1cb,
931	/// Unknown button/key 1CC
932	Unknown1CC = 0x1cc,
933	/// Unknown button/key 1CD
934	Unknown1CD = 0x1cd,
935	/// Unknown button/key 1CE
936	Unknown1CE = 0x1ce,
937	/// Unknown button/key 1CF
938	Unknown1CF = 0x1cf,
939	/// Function key
940	KeyFunction = KEY_FN,
941	/// Function escape key
942	KeyFunctionEscape = KEY_FN_ESC,
943	/// Function F1 key
944	KeyFunctionF1 = KEY_FN_F1,
945	/// Function F2 key
946	KeyFunctionF2 = KEY_FN_F2,
947	/// Function F3 key
948	KeyFunctionF3 = KEY_FN_F3,
949	/// Function F4 key
950	KeyFunctionF4 = KEY_FN_F4,
951	/// Function F5 key
952	KeyFunctionF5 = KEY_FN_F5,
953	/// Function F6 key
954	KeyFunctionF6 = KEY_FN_F6,
955	/// Function F7 key
956	KeyFunctionF7 = KEY_FN_F7,
957	/// Function F8 key
958	KeyFunctionF8 = KEY_FN_F8,
959	/// Function F9 key
960	KeyFunctionF9 = KEY_FN_F9,
961	/// Function F10 key
962	KeyFunctionF10 = KEY_FN_F10,
963	/// Function F11 key
964	KeyFunctionF11 = KEY_FN_F11,
965	/// Function F12 key
966	KeyFunctionF12 = KEY_FN_F12,
967	/// Function 1 key
968	KeyFunction1 = KEY_FN_1,
969	/// Function 2 key
970	KeyFunction2 = KEY_FN_2,
971	/// Function D key
972	KeyFunctionD = KEY_FN_D,
973	/// Function E key
974	KeyFunctionE = KEY_FN_E,
975	/// Function F key
976	KeyFunctionF = KEY_FN_F,
977	/// Function S key
978	KeyFunctionS = KEY_FN_S,
979	/// Function B key
980	KeyFunctionB = KEY_FN_B,
981	/// Unknown button/key 1E5
982	Unknown1E5 = 0x1e5,
983	/// Unknown button/key 1E6
984	Unknown1E6 = 0x1e6,
985	/// Unknown button/key 1E7
986	Unknown1E7 = 0x1e7,
987	/// Unknown button/key 1E8
988	Unknown1E8 = 0x1e8,
989	/// Unknown button/key 1E9
990	Unknown1E9 = 0x1e9,
991	/// Unknown button/key 1EA
992	Unknown1EA = 0x1ea,
993	/// Unknown button/key 1EB
994	Unknown1EB = 0x1eb,
995	/// Unknown button/key 1EC
996	Unknown1EC = 0x1ec,
997	/// Unknown button/key 1ED
998	Unknown1ED = 0x1ed,
999	/// Unknown button/key 1EE
1000	Unknown1EE = 0x1ee,
1001	/// Unknown button/key 1EF
1002	Unknown1EF = 0x1ef,
1003	/// Unknown button/key 1F0
1004	Unknown1F0 = 0x1f0,
1005	/// Braille dot 1 key
1006	KeyBrailleDot1 = KEY_BRL_DOT1,
1007	/// Braille dot 2 key
1008	KeyBrailleDot2 = KEY_BRL_DOT2,
1009	/// Braille dot 3 key
1010	KeyBrailleDot3 = KEY_BRL_DOT3,
1011	/// Braille dot 4 key
1012	KeyBrailleDot4 = KEY_BRL_DOT4,
1013	/// Braille dot 5 key
1014	KeyBrailleDot5 = KEY_BRL_DOT5,
1015	/// Braille dot 6 key
1016	KeyBrailleDot6 = KEY_BRL_DOT6,
1017	/// Braille dot 7 key
1018	KeyBrailleDot7 = KEY_BRL_DOT7,
1019	/// Braille dot 8 key
1020	KeyBrailleDot8 = KEY_BRL_DOT8,
1021	/// Braille dot 9 key
1022	KeyBrailleDot9 = KEY_BRL_DOT9,
1023	/// Braille dot 10 key
1024	KeyBrailleDot10 = KEY_BRL_DOT10,
1025	/// Unknown button/key 1FB
1026	Unknown1FB = 0x1fb,
1027	/// Unknown button/key 1FC
1028	Unknown1FC = 0x1fc,
1029	/// Unknown button/key 1FD
1030	Unknown1FD = 0x1fd,
1031	/// Unknown button/key 1FE
1032	Unknown1FE = 0x1fe,
1033	/// Unknown button/key 1FF
1034	Unknown1FF = 0x1ff,
1035	/// Numeric 0 key
1036	KeyNumeric0 = KEY_NUMERIC_0,
1037	/// Numeric 1 key
1038	KeyNumeric1 = KEY_NUMERIC_1,
1039	/// Numeric 2 key
1040	KeyNumeric2 = KEY_NUMERIC_2,
1041	/// Numeric 3 key
1042	KeyNumeric3 = KEY_NUMERIC_3,
1043	/// Numeric 4 key
1044	KeyNumeric4 = KEY_NUMERIC_4,
1045	/// Numeric 5 key
1046	KeyNumeric5 = KEY_NUMERIC_5,
1047	/// Numeric 6 key
1048	KeyNumeric6 = KEY_NUMERIC_6,
1049	/// Numeric 7 key
1050	KeyNumeric7 = KEY_NUMERIC_7,
1051	/// Numeric 8 key
1052	KeyNumeric8 = KEY_NUMERIC_8,
1053	/// Numeric 9 key
1054	KeyNumeric9 = KEY_NUMERIC_9,
1055	/// Numeric star key
1056	KeyNumericStar = KEY_NUMERIC_STAR,
1057	/// Numeric pound key
1058	KeyNumericPound = KEY_NUMERIC_POUND,
1059	/// Numeric A key
1060	KeyNumericA = KEY_NUMERIC_A,
1061	/// Numeric B key
1062	KeyNumericB = KEY_NUMERIC_B,
1063	/// Numeric C key
1064	KeyNumericC = KEY_NUMERIC_C,
1065	/// Numeric D key
1066	KeyNumericD = KEY_NUMERIC_D,
1067	/// Camera focus key
1068	KeyCameraFocus = KEY_CAMERA_FOCUS,
1069	/// WPS button key
1070	KeyWPSButton = KEY_WPS_BUTTON,
1071	/// Touchpad toggle key
1072	KeyTouchpadToggle = KEY_TOUCHPAD_TOGGLE,
1073	/// Touchpad on key
1074	KeyTouchpadOn = KEY_TOUCHPAD_ON,
1075	/// Touchpad off key
1076	KeyTouchpadOff = KEY_TOUCHPAD_OFF,
1077	/// Camera zoom in key
1078	KeyCameraZoomIn = KEY_CAMERA_ZOOMIN,
1079	/// Camera zoom out key
1080	KeyCameraZoomOut = KEY_CAMERA_ZOOMOUT,
1081	/// Camera up key
1082	KeyCameraUp = KEY_CAMERA_UP,
1083	/// Camera down key
1084	KeyCameraDown = KEY_CAMERA_DOWN,
1085	/// Camera left key
1086	KeyCameraLeft = KEY_CAMERA_LEFT,
1087	/// Camera right key
1088	KeyCameraRight = KEY_CAMERA_RIGHT,
1089	/// Attendant on key
1090	KeyAttendantOn = KEY_ATTENDANT_ON,
1091	/// Attendant off key
1092	KeyAttendantOff = KEY_ATTENDANT_OFF,
1093	/// Attendant toggle key
1094	KeyAttendantToggle = KEY_ATTENDANT_TOGGLE,
1095	/// Lights toggle key
1096	KeyLightsToggle = KEY_LIGHTS_TOGGLE,
1097	/// Unknown button/key 21F
1098	Unknown21F = 0x21f,
1099	/// D-pad up button
1100	ButtonDPadUp = BTN_DPAD_UP,
1101	/// D-pad down button
1102	ButtonDPadDown = BTN_DPAD_DOWN,
1103	/// D-pad left button
1104	ButtonDPadLeft = BTN_DPAD_LEFT,
1105	/// D-pad right button
1106	ButtonDPadRight = BTN_DPAD_RIGHT,
1107	/// Unknown button/key 224
1108	Unknown224 = 0x224,
1109	/// Unknown button/key 225
1110	Unknown225 = 0x225,
1111	/// Unknown button/key 226
1112	Unknown226 = 0x226,
1113	/// Unknown button/key 227
1114	Unknown227 = 0x227,
1115	/// Unknown button/key 228
1116	Unknown228 = 0x228,
1117	/// Unknown button/key 229
1118	Unknown229 = 0x229,
1119	/// Unknown button/key 22A
1120	Unknown22A = 0x22a,
1121	/// Unknown button/key 22B
1122	Unknown22B = 0x22b,
1123	/// Unknown button/key 22C
1124	Unknown22C = 0x22c,
1125	/// Unknown button/key 22D
1126	Unknown22D = 0x22d,
1127	/// Unknown button/key 22E
1128	Unknown22E = 0x22e,
1129	/// Unknown button/key 22F
1130	Unknown22F = 0x22f,
1131	/// ALS toggle key
1132	KeyALSToggle = KEY_ALS_TOGGLE,
1133	/// Rotate lock toggle key
1134	KeyRotateLockToggle = KEY_ROTATE_LOCK_TOGGLE,
1135	/// Unknown button/key 232
1136	Unknown232 = 0x232,
1137	/// Unknown button/key 233
1138	Unknown233 = 0x233,
1139	/// Unknown button/key 234
1140	Unknown234 = 0x234,
1141	/// Unknown button/key 235
1142	Unknown235 = 0x235,
1143	/// Unknown button/key 236
1144	Unknown236 = 0x236,
1145	/// Unknown button/key 237
1146	Unknown237 = 0x237,
1147	/// Unknown button/key 238
1148	Unknown238 = 0x238,
1149	/// Unknown button/key 239
1150	Unknown239 = 0x239,
1151	/// Unknown button/key 23A
1152	Unknown23A = 0x23a,
1153	/// Unknown button/key 23B
1154	Unknown23B = 0x23b,
1155	/// Unknown button/key 23C
1156	Unknown23C = 0x23c,
1157	/// Unknown button/key 23D
1158	Unknown23D = 0x23d,
1159	/// Unknown button/key 23E
1160	Unknown23E = 0x23e,
1161	/// Unknown button/key 23F
1162	Unknown23F = 0x23f,
1163	/// Button configuration key
1164	KeyButtonConfiguration = KEY_BUTTONCONFIG,
1165	/// Task manager key
1166	KeyTaskManager = KEY_TASKMANAGER,
1167	/// Key journal key
1168	KeyJournal = KEY_JOURNAL,
1169	/// Control panel key
1170	KeyControlPanel = KEY_CONTROLPANEL,
1171	/// App select key
1172	KeyAppSelect = KEY_APPSELECT,
1173	/// Screen saver key
1174	KeyScreenSaver = KEY_SCREENSAVER,
1175	/// Voice command key
1176	KeyVoiceCommand = KEY_VOICECOMMAND,
1177	/// Assistant key
1178	KeyAssistant = KEY_ASSISTANT,
1179	/// Unknown button/key 248
1180	Unknown248 = 0x248,
1181	/// Unknown button/key 249
1182	Unknown249 = 0x249,
1183	/// Unknown button/key 24A
1184	Unknown24A = 0x24a,
1185	/// Unknown button/key 24B
1186	Unknown24B = 0x24b,
1187	/// Unknown button/key 24C
1188	Unknown24C = 0x24c,
1189	/// Unknown button/key 24D
1190	Unknown24D = 0x24d,
1191	/// Unknown button/key 24E
1192	Unknown24E = 0x24e,
1193	/// Unknown button/key 24F
1194	Unknown24F = 0x24f,
1195	/// Brightness min key
1196	KeyBrightnessMin = KEY_BRIGHTNESS_MIN,
1197	/// Brightness max key
1198	KeyBrightnessMax = KEY_BRIGHTNESS_MAX,
1199	/// Unknown button/key 252
1200	Unknown252 = 0x252,
1201	/// Unknown button/key 253
1202	Unknown253 = 0x253,
1203	/// Unknown button/key 254
1204	Unknown254 = 0x254,
1205	/// Unknown button/key 255
1206	Unknown255 = 0x255,
1207	/// Unknown button/key 256
1208	Unknown256 = 0x256,
1209	/// Unknown button/key 257
1210	Unknown257 = 0x257,
1211	/// Unknown button/key 258
1212	Unknown258 = 0x258,
1213	/// Unknown button/key 259
1214	Unknown259 = 0x259,
1215	/// Unknown button/key 25A
1216	Unknown25A = 0x25a,
1217	/// Unknown button/key 25B
1218	Unknown25B = 0x25b,
1219	/// Unknown button/key 25C
1220	Unknown25C = 0x25c,
1221	/// Unknown button/key 25D
1222	Unknown25D = 0x25d,
1223	/// Unknown button/key 25E
1224	Unknown25E = 0x25e,
1225	/// Unknown button/key 25F
1226	Unknown25F = 0x25f,
1227	/// Keyboard input assist previous key
1228	KeyKeyboardInputAssistPrevious = KEY_KBDINPUTASSIST_PREV,
1229	/// Keyboard input assist next key
1230	KeyKeyboardInputAssistNext = KEY_KBDINPUTASSIST_NEXT,
1231	/// Keyboard input assist previous group key
1232	KeyKeyboardInputAssistPreviousGroup = KEY_KBDINPUTASSIST_PREVGROUP,
1233	/// Keyboard input assist next group key
1234	KeyKeyboardInputAssistNextGroup = KEY_KBDINPUTASSIST_NEXTGROUP,
1235	/// Keyboard input assist accept key
1236	KeyKeyboardInputAssistAccept = KEY_KBDINPUTASSIST_ACCEPT,
1237	///Keyboard input assist cancel key
1238	KeyKeyboardInputAssistCancel = KEY_KBDINPUTASSIST_CANCEL,
1239	/// Right up key
1240	KeyRightUp = KEY_RIGHT_UP,
1241	/// Right down key
1242	KeyRightDown = KEY_RIGHT_DOWN,
1243	/// Left up key
1244	KeyLeftUp = KEY_LEFT_UP,
1245	/// Left down key
1246	KeyLeftDown = KEY_LEFT_DOWN,
1247	/// Root menu key
1248	KeyRootMenu = KEY_ROOT_MENU,
1249	/// Media top menu key
1250	KeyMediaTopMenu = KEY_MEDIA_TOP_MENU,
1251	/// Numeric 11 key
1252	KeyNumeric11 = KEY_NUMERIC_11,
1253	/// Numeric 12 key
1254	KeyNumeric12 = KEY_NUMERIC_12,
1255	/// Audio description key
1256	KeyAudioDescription = KEY_AUDIO_DESC,
1257	/// 3D mode key
1258	Key3DMode = KEY_3D_MODE,
1259	/// Next favorite key
1260	KeyNextFavorite = KEY_NEXT_FAVORITE,
1261	/// Stop record key
1262	KeyStopRecord = KEY_STOP_RECORD,
1263	/// Pause record key
1264	KeyPauseRecord = KEY_PAUSE_RECORD,
1265	/// Video on-demand key
1266	KeyVOD = KEY_VOD,
1267	/// Unmute key
1268	KeyUnmute = KEY_UNMUTE,
1269	/// Fast reverse key
1270	KeyFastReverse = KEY_FASTREVERSE,
1271	/// Slow reverse key
1272	KeySlowReverse = KEY_SLOWREVERSE,
1273	/// Data key
1274	KeyData = KEY_DATA,
1275	/// On-screen keyboard key
1276	KeyOnScreenKeyboard = KEY_ONSCREEN_KEYBOARD,
1277	/// Unknown button/key 279
1278	Unknown279 = 0x279,
1279	/// Unknown button/key 27A
1280	Unknown27A = 0x27a,
1281	/// Unknown button/key 27B
1282	Unknown27B = 0x27b,
1283	/// Unknown button/key 27C
1284	Unknown27C = 0x27c,
1285	/// Unknown button/key 27D
1286	Unknown27D = 0x27d,
1287	/// Unknown button/key 27E
1288	Unknown27E = 0x27e,
1289	/// Unknown button/key 27F
1290	Unknown27F = 0x27f,
1291	/// Unknown button/key 280
1292	Unknown280 = 0x280,
1293	/// Unknown button/key 281
1294	Unknown281 = 0x281,
1295	/// Unknown button/key 282
1296	Unknown282 = 0x282,
1297	/// Unknown button/key 283
1298	Unknown283 = 0x283,
1299	/// Unknown button/key 284
1300	Unknown284 = 0x284,
1301	/// Unknown button/key 285
1302	Unknown285 = 0x285,
1303	/// Unknown button/key 286
1304	Unknown286 = 0x286,
1305	/// Unknown button/key 287
1306	Unknown287 = 0x287,
1307	/// Unknown button/key 288
1308	Unknown288 = 0x288,
1309	/// Unknown button/key 289
1310	Unknown289 = 0x289,
1311	/// Unknown button/key 28A
1312	Unknown28A = 0x28a,
1313	/// Unknown button/key 28B
1314	Unknown28B = 0x28b,
1315	/// Unknown button/key 28C
1316	Unknown28C = 0x28c,
1317	/// Unknown button/key 28D
1318	Unknown28D = 0x28d,
1319	/// Unknown button/key 28E
1320	Unknown28E = 0x28e,
1321	/// Unknown button/key 28F
1322	Unknown28F = 0x28f,
1323	/// Unknown button/key 290
1324	Unknown290 = 0x290,
1325	/// Unknown button/key 291
1326	Unknown291 = 0x291,
1327	/// Unknown button/key 292
1328	Unknown292 = 0x292,
1329	/// Unknown button/key 293
1330	Unknown293 = 0x293,
1331	/// Unknown button/key 294
1332	Unknown294 = 0x294,
1333	/// Unknown button/key 295
1334	Unknown295 = 0x295,
1335	/// Unknown button/key 296
1336	Unknown296 = 0x296,
1337	/// Unknown button/key 297
1338	Unknown297 = 0x297,
1339	/// Unknown button/key 298
1340	Unknown298 = 0x298,
1341	/// Unknown button/key 299
1342	Unknown299 = 0x299,
1343	/// Unknown button/key 29A
1344	Unknown29A = 0x29a,
1345	/// Unknown button/key 29B
1346	Unknown29B = 0x29b,
1347	/// Unknown button/key 29C
1348	Unknown29C = 0x29c,
1349	/// Unknown button/key 29D
1350	Unknown29D = 0x29d,
1351	/// Unknown button/key 29E
1352	Unknown29E = 0x29e,
1353	/// Unknown button/key 29F
1354	Unknown29F = 0x29f,
1355	/// Unknown button/key 2A0
1356	Unknown2A0 = 0x2a0,
1357	/// Unknown button/key 2A1
1358	Unknown2A1 = 0x2a1,
1359	/// Unknown button/key 2A2
1360	Unknown2A2 = 0x2a2,
1361	/// Unknown button/key 2A3
1362	Unknown2A3 = 0x2a3,
1363	/// Unknown button/key 2A4
1364	Unknown2A4 = 0x2a4,
1365	/// Unknown button/key 2A5
1366	Unknown2A5 = 0x2a5,
1367	/// Unknown button/key 2A6
1368	Unknown2A6 = 0x2a6,
1369	/// Unknown button/key 2A7
1370	Unknown2A7 = 0x2a7,
1371	/// Unknown button/key 2A8
1372	Unknown2A8 = 0x2a8,
1373	/// Unknown button/key 2A9
1374	Unknown2A9 = 0x2a9,
1375	/// Unknown button/key 2AA
1376	Unknown2AA = 0x2aa,
1377	/// Unknown button/key 2AB
1378	Unknown2AB = 0x2ab,
1379	/// Unknown button/key 2AC
1380	Unknown2AC = 0x2ac,
1381	/// Unknown button/key 2AD
1382	Unknown2AD = 0x2ad,
1383	/// Unknown button/key 2AE
1384	Unknown2AE = 0x2ae,
1385	/// Unknown button/key 2AF
1386	Unknown2AF = 0x2af,
1387	/// Unknown button/key 2B0
1388	Unknown2B0 = 0x2b0,
1389	/// Unknown button/key 2B1
1390	Unknown2B1 = 0x2b1,
1391	/// Unknown button/key 2B2
1392	Unknown2B2 = 0x2b2,
1393	/// Unknown button/key 2B3
1394	Unknown2B3 = 0x2b3,
1395	/// Unknown button/key 2B4
1396	Unknown2B4 = 0x2b4,
1397	/// Unknown button/key 2B5
1398	Unknown2B5 = 0x2b5,
1399	/// Unknown button/key 2B6
1400	Unknown2B6 = 0x2b6,
1401	/// Unknown button/key 2B7
1402	Unknown2B7 = 0x2b7,
1403	/// Unknown button/key 2B8
1404	Unknown2B8 = 0x2b8,
1405	/// Unknown button/key 2B9
1406	Unknown2B9 = 0x2b9,
1407	/// Unknown button/key 2BA
1408	Unknown2BA = 0x2ba,
1409	/// Unknown button/key 2BB
1410	Unknown2BB = 0x2bb,
1411	/// Unknown button/key 2BC
1412	Unknown2BC = 0x2bc,
1413	/// Unknown button/key 2BD
1414	Unknown2BD = 0x2bd,
1415	/// Unknown button/key 2BE
1416	Unknown2BE = 0x2be,
1417	/// Unknown button/key 2BF
1418	Unknown2BF = 0x2bf,
1419	/// Extra button 1
1420	ButtonTriggerHappy1 = BTN_TRIGGER_HAPPY1,
1421	/// Extra button 2
1422	ButtonTriggerHappy2 = BTN_TRIGGER_HAPPY2,
1423	/// Extra button 3
1424	ButtonTriggerHappy3 = BTN_TRIGGER_HAPPY3,
1425	/// Extra button 4
1426	ButtonTriggerHappy4 = BTN_TRIGGER_HAPPY4,
1427	/// Extra button 5
1428	ButtonTriggerHappy5 = BTN_TRIGGER_HAPPY5,
1429	/// Extra button 6
1430	ButtonTriggerHappy6 = BTN_TRIGGER_HAPPY6,
1431	/// Extra button 7
1432	ButtonTriggerHappy7 = BTN_TRIGGER_HAPPY7,
1433	/// Extra button 8
1434	ButtonTriggerHappy8 = BTN_TRIGGER_HAPPY8,
1435	/// Extra button 9
1436	ButtonTriggerHappy9 = BTN_TRIGGER_HAPPY9,
1437	/// Extra button 10
1438	ButtonTriggerHappy10 = BTN_TRIGGER_HAPPY10,
1439	/// Extra button 11
1440	ButtonTriggerHappy11 = BTN_TRIGGER_HAPPY11,
1441	/// Extra button 12
1442	ButtonTriggerHappy12 = BTN_TRIGGER_HAPPY12,
1443	/// Extra button 13
1444	ButtonTriggerHappy13 = BTN_TRIGGER_HAPPY13,
1445	/// Extra button 14
1446	ButtonTriggerHappy14 = BTN_TRIGGER_HAPPY14,
1447	/// Extra button 15
1448	ButtonTriggerHappy15 = BTN_TRIGGER_HAPPY15,
1449	/// Extra button 16
1450	ButtonTriggerHappy16 = BTN_TRIGGER_HAPPY16,
1451	/// Extra button 17
1452	ButtonTriggerHappy17 = BTN_TRIGGER_HAPPY17,
1453	/// Extra button 18
1454	ButtonTriggerHappy18 = BTN_TRIGGER_HAPPY18,
1455	/// Extra button 19
1456	ButtonTriggerHappy19 = BTN_TRIGGER_HAPPY19,
1457	/// Extra button 20
1458	ButtonTriggerHappy20 = BTN_TRIGGER_HAPPY20,
1459	/// Extra button 21
1460	ButtonTriggerHappy21 = BTN_TRIGGER_HAPPY21,
1461	/// Extra button 22
1462	ButtonTriggerHappy22 = BTN_TRIGGER_HAPPY22,
1463	/// Extra button 23
1464	ButtonTriggerHappy23 = BTN_TRIGGER_HAPPY23,
1465	/// Extra button 24
1466	ButtonTriggerHappy24 = BTN_TRIGGER_HAPPY24,
1467	/// Extra button 25
1468	ButtonTriggerHappy25 = BTN_TRIGGER_HAPPY25,
1469	/// Extra button 26
1470	ButtonTriggerHappy26 = BTN_TRIGGER_HAPPY26,
1471	/// Extra button 27
1472	ButtonTriggerHappy27 = BTN_TRIGGER_HAPPY27,
1473	/// Extra button 28
1474	ButtonTriggerHappy28 = BTN_TRIGGER_HAPPY28,
1475	/// Extra button 29
1476	ButtonTriggerHappy29 = BTN_TRIGGER_HAPPY29,
1477	/// Extra button 30
1478	ButtonTriggerHappy30 = BTN_TRIGGER_HAPPY30,
1479	/// Extra button 31
1480	ButtonTriggerHappy31 = BTN_TRIGGER_HAPPY31,
1481	/// Extra button 32
1482	ButtonTriggerHappy32 = BTN_TRIGGER_HAPPY32,
1483	/// Extra button 33
1484	ButtonTriggerHappy33 = BTN_TRIGGER_HAPPY33,
1485	/// Extra button 34
1486	ButtonTriggerHappy34 = BTN_TRIGGER_HAPPY34,
1487	/// Extra button 35
1488	ButtonTriggerHappy35 = BTN_TRIGGER_HAPPY35,
1489	/// Extra button 36
1490	ButtonTriggerHappy36 = BTN_TRIGGER_HAPPY36,
1491	/// Extra button 37
1492	ButtonTriggerHappy37 = BTN_TRIGGER_HAPPY37,
1493	/// Extra button 38
1494	ButtonTriggerHappy38 = BTN_TRIGGER_HAPPY38,
1495	/// Extra button 39
1496	ButtonTriggerHappy39 = BTN_TRIGGER_HAPPY39,
1497	/// Extra button 40
1498	ButtonTriggerHappy40 = BTN_TRIGGER_HAPPY40,
1499	/// Unknown button/key 2E8
1500	Unknown2E8 = 0x2e8,
1501	/// Unknown button/key 2E9
1502	Unknown2E9 = 0x2e9,
1503	/// Unknown button/key 2EA
1504	Unknown2EA = 0x2ea,
1505	/// Unknown button/key 2EB
1506	Unknown2EB = 0x2eb,
1507	/// Unknown button/key 2EC
1508	Unknown2EC = 0x2ec,
1509	/// Unknown button/key 2ED
1510	Unknown2ED = 0x2ed,
1511	/// Unknown button/key 2EE
1512	Unknown2EE = 0x2ee,
1513	/// Unknown button/key 2EF
1514	Unknown2EF = 0x2ef,
1515	/// Unknown button/key 2F0
1516	Unknown2F0 = 0x2f0,
1517	/// Unknown button/key 2F1
1518	Unknown2F1 = 0x2f1,
1519	/// Unknown button/key 2F2
1520	Unknown2F2 = 0x2f2,
1521	/// Unknown button/key 2F3
1522	Unknown2F3 = 0x2f3,
1523	/// Unknown button/key 2F4
1524	Unknown2F4 = 0x2f4,
1525	/// Unknown button/key 2F5
1526	Unknown2F5 = 0x2f5,
1527	/// Unknown button/key 2F6
1528	Unknown2F6 = 0x2f6,
1529	/// Unknown button/key 2F7
1530	Unknown2F7 = 0x2f7,
1531	/// Unknown button/key 2F8
1532	Unknown2F8 = 0x2f8,
1533	/// Unknown button/key 2F9
1534	Unknown2F9 = 0x2f9,
1535	/// Unknown button/key 2FA
1536	Unknown2FA = 0x2fa,
1537	/// Unknown button/key 2FB
1538	Unknown2FB = 0x2fb,
1539	/// Unknown button/key 2FC
1540	Unknown2FC = 0x2fc,
1541	/// Unknown button/key 2FD
1542	Unknown2FD = 0x2fd,
1543	/// Unknown button/key 2FE
1544	Unknown2FE = 0x2fe,
1545}
1546
1547impl Key {
1548	/// A button
1549	#[allow(non_upper_case_globals)]
1550	pub const ButtonA: Self = Self::ButtonSouth;
1551
1552	/// B button
1553	#[allow(non_upper_case_globals)]
1554	pub const ButtonB: Self = Self::ButtonEast;
1555
1556	/// Digitizer button
1557	#[allow(non_upper_case_globals)]
1558	pub const ButtonDigitizer: Self = Self::ButtonToolPen;
1559
1560	/// Gamepad buttons present
1561	#[allow(non_upper_case_globals)]
1562	pub const ButtonGamepad: Self = Self::ButtonSouth;
1563
1564	/// Joystick buttons present
1565	#[allow(non_upper_case_globals)]
1566	pub const ButtonJoystick: Self = Self::ButtonTrigger;
1567
1568	/// Miscellaneous buttons present
1569	#[allow(non_upper_case_globals)]
1570	pub const ButtonMiscellaneous: Self = Self::Button0;
1571
1572	/// Mouse buttons present
1573	#[allow(non_upper_case_globals)]
1574	pub const ButtonMouse: Self = Self::ButtonLeftMouse;
1575
1576	/// Extra buttons present
1577	#[allow(non_upper_case_globals)]
1578	pub const ButtonTriggerHappy: Self = Self::ButtonTriggerHappy1;
1579
1580	/// Wheel buttons present
1581	#[allow(non_upper_case_globals)]
1582	pub const ButtonWheel: Self = Self::ButtonGearDown;
1583
1584	/// X button
1585	#[allow(non_upper_case_globals)]
1586	pub const ButtonX: Self = Self::ButtonNorth;
1587
1588	/// Y button
1589	#[allow(non_upper_case_globals)]
1590	pub const ButtonY: Self = Self::ButtonWest;
1591
1592	/// Brightness toggle key
1593	#[allow(non_upper_case_globals)]
1594	pub const KeyBrightnessToggle: Self = Self::KeyDisplayToggle;
1595
1596	/// Brightness zero key
1597	#[allow(non_upper_case_globals)]
1598	pub const KeyBrightnessZero: Self = Self::KeyBrightnessAuto;
1599
1600	/// Direction key
1601	#[allow(non_upper_case_globals)]
1602	pub const KeyDirection: Self = Self::KeyRotateDisplay;
1603
1604	/// Hanguel key
1605	#[allow(non_upper_case_globals)]
1606	pub const KeyHanguel: Self = Self::KeyHangeul;
1607
1608	/// Min interesting key
1609	#[allow(non_upper_case_globals)]
1610	pub const KeyMinInteresting: Self = Self::KeyMute;
1611
1612	/// Screen key
1613	#[allow(non_upper_case_globals)]
1614	pub const KeyScreen: Self = Self::KeyAspectRatio;
1615
1616	/// Screen lock key
1617	#[allow(non_upper_case_globals)]
1618	pub const KeyScreenLock: Self = Self::KeyCoffee;
1619
1620	/// WiMAX key
1621	#[allow(non_upper_case_globals)]
1622	pub const KeyWiMAX: Self = Self::KeyWWAN;
1623
1624	/// Zoom key
1625	#[allow(non_upper_case_globals)]
1626	pub const KeyZoom: Self = Self::KeyFullScreen;
1627}
1628
1629impl Default for Key {
1630	fn default() -> Self {
1631		Key::KeyReserved
1632	}
1633}
1634
1635impl EventCode<u16> for Key {
1636	const COUNT: u16 = KEY_CNT;
1637	const MAX: u16 = KEY_MAX;
1638}
1639
1640impl IntoIterator for Key {
1641	type Item = Key;
1642	type IntoIter = IntoIter<Key, u16>;
1643
1644	fn into_iter(self) -> Self::IntoIter {
1645		Self::IntoIter {
1646			phantom: PhantomData,
1647			value: self as u16,
1648		}
1649	}
1650}