kanata_parser/keys/
mappings.rs

1use super::KeyCode;
2use super::OsCode;
3
4impl From<KeyCode> for OsCode {
5    fn from(item: KeyCode) -> Self {
6        unsafe { std::mem::transmute(item) }
7    }
8}
9
10impl From<OsCode> for KeyCode {
11    fn from(item: OsCode) -> KeyCode {
12        unsafe { std::mem::transmute(item) }
13    }
14}
15
16#[test]
17fn roundtrip_oscode_keycode() {
18    use super::OsCode::*;
19    let oscs = &[
20        KEY_RESERVED,
21        KEY_ESC,
22        KEY_1,
23        KEY_2,
24        KEY_3,
25        KEY_4,
26        KEY_5,
27        KEY_6,
28        KEY_7,
29        KEY_8,
30        KEY_9,
31        KEY_0,
32        KEY_MINUS,
33        KEY_EQUAL,
34        KEY_BACKSPACE,
35        KEY_TAB,
36        KEY_Q,
37        KEY_W,
38        KEY_E,
39        KEY_R,
40        KEY_T,
41        KEY_Y,
42        KEY_U,
43        KEY_I,
44        KEY_O,
45        KEY_P,
46        KEY_LEFTBRACE,
47        KEY_RIGHTBRACE,
48        KEY_ENTER,
49        KEY_LEFTCTRL,
50        KEY_A,
51        KEY_S,
52        KEY_D,
53        KEY_F,
54        KEY_G,
55        KEY_H,
56        KEY_J,
57        KEY_K,
58        KEY_L,
59        KEY_SEMICOLON,
60        KEY_APOSTROPHE,
61        KEY_GRAVE,
62        KEY_LEFTSHIFT,
63        KEY_BACKSLASH,
64        KEY_Z,
65        KEY_X,
66        KEY_C,
67        KEY_V,
68        KEY_B,
69        KEY_N,
70        KEY_M,
71        KEY_COMMA,
72        KEY_DOT,
73        KEY_SLASH,
74        KEY_RIGHTSHIFT,
75        KEY_KPASTERISK,
76        KEY_LEFTALT,
77        KEY_SPACE,
78        KEY_CAPSLOCK,
79        KEY_F1,
80        KEY_F2,
81        KEY_F3,
82        KEY_F4,
83        KEY_F5,
84        KEY_F6,
85        KEY_F7,
86        KEY_F8,
87        KEY_F9,
88        KEY_F10,
89        KEY_NUMLOCK,
90        KEY_SCROLLLOCK,
91        KEY_KP7,
92        KEY_KP8,
93        KEY_KP9,
94        KEY_KPMINUS,
95        KEY_KP4,
96        KEY_KP5,
97        KEY_KP6,
98        KEY_KPPLUS,
99        KEY_KP1,
100        KEY_KP2,
101        KEY_KP3,
102        KEY_KP0,
103        KEY_KPDOT,
104        KEY_84,
105        KEY_ZENKAKUHANKAKU,
106        KEY_102ND,
107        KEY_F11,
108        KEY_F12,
109        KEY_RO,
110        KEY_KATAKANA,
111        KEY_HIRAGANA,
112        KEY_HENKAN,
113        KEY_KATAKANAHIRAGANA,
114        KEY_MUHENKAN,
115        KEY_KPJPCOMMA,
116        KEY_KPENTER,
117        KEY_RIGHTCTRL,
118        KEY_KPSLASH,
119        KEY_SYSRQ,
120        KEY_RIGHTALT,
121        KEY_LINEFEED,
122        KEY_HOME,
123        KEY_UP,
124        KEY_PAGEUP,
125        KEY_LEFT,
126        KEY_RIGHT,
127        KEY_END,
128        KEY_DOWN,
129        KEY_PAGEDOWN,
130        KEY_INSERT,
131        KEY_DELETE,
132        KEY_MACRO,
133        KEY_MUTE,
134        KEY_VOLUMEDOWN,
135        KEY_VOLUMEUP,
136        KEY_POWER,
137        KEY_KPEQUAL,
138        KEY_KPPLUSMINUS,
139        KEY_PAUSE,
140        KEY_SCALE,
141        KEY_KPCOMMA,
142        KEY_HANGEUL,
143        KEY_HANJA,
144        KEY_YEN,
145        KEY_LEFTMETA,
146        KEY_RIGHTMETA,
147        KEY_COMPOSE,
148        KEY_STOP,
149        KEY_AGAIN,
150        KEY_PROPS,
151        KEY_UNDO,
152        KEY_FRONT,
153        KEY_COPY,
154        KEY_OPEN,
155        KEY_PASTE,
156        KEY_FIND,
157        KEY_CUT,
158        KEY_HELP,
159        KEY_MENU,
160        KEY_CALC,
161        KEY_SETUP,
162        KEY_SLEEP,
163        KEY_WAKEUP,
164        KEY_FILE,
165        KEY_SENDFILE,
166        KEY_DELETEFILE,
167        KEY_XFER,
168        KEY_PROG1,
169        KEY_PROG2,
170        KEY_WWW,
171        KEY_MSDOS,
172        KEY_COFFEE,
173        KEY_ROTATE_DISPLAY,
174        KEY_CYCLEWINDOWS,
175        KEY_MAIL,
176        KEY_BOOKMARKS,
177        KEY_COMPUTER,
178        KEY_BACK,
179        KEY_FORWARD,
180        KEY_CLOSECD,
181        KEY_EJECTCD,
182        KEY_EJECTCLOSECD,
183        KEY_NEXTSONG,
184        KEY_PLAYPAUSE,
185        KEY_PREVIOUSSONG,
186        KEY_STOPCD,
187        KEY_RECORD,
188        KEY_REWIND,
189        KEY_PHONE,
190        KEY_ISO,
191        KEY_CONFIG,
192        KEY_HOMEPAGE,
193        KEY_REFRESH,
194        KEY_EXIT,
195        KEY_MOVE,
196        KEY_EDIT,
197        KEY_SCROLLUP,
198        KEY_SCROLLDOWN,
199        KEY_KPLEFTPAREN,
200        KEY_KPRIGHTPAREN,
201        KEY_NEW,
202        KEY_REDO,
203        KEY_F13,
204        KEY_F14,
205        KEY_F15,
206        KEY_F16,
207        KEY_F17,
208        KEY_F18,
209        KEY_F19,
210        KEY_F20,
211        KEY_F21,
212        KEY_F22,
213        KEY_F23,
214        KEY_F24,
215        KEY_195,
216        KEY_196,
217        KEY_197,
218        KEY_198,
219        KEY_199,
220        KEY_PLAYCD,
221        KEY_PAUSECD,
222        KEY_PROG3,
223        KEY_PROG4,
224        KEY_DASHBOARD,
225        KEY_SUSPEND,
226        KEY_CLOSE,
227        KEY_PLAY,
228        KEY_FASTFORWARD,
229        KEY_BASSBOOST,
230        KEY_PRINT,
231        KEY_HP,
232        KEY_CAMERA,
233        KEY_SOUND,
234        KEY_QUESTION,
235        KEY_EMAIL,
236        KEY_CHAT,
237        KEY_SEARCH,
238        KEY_CONNECT,
239        KEY_FINANCE,
240        KEY_SPORT,
241        KEY_SHOP,
242        KEY_ALTERASE,
243        KEY_CANCEL,
244        KEY_BRIGHTNESSDOWN,
245        KEY_BRIGHTNESSUP,
246        KEY_MEDIA,
247        KEY_SWITCHVIDEOMODE,
248        KEY_KBDILLUMTOGGLE,
249        KEY_KBDILLUMDOWN,
250        KEY_KBDILLUMUP,
251        KEY_SEND,
252        KEY_REPLY,
253        KEY_FORWARDMAIL,
254        KEY_SAVE,
255        KEY_DOCUMENTS,
256        KEY_BATTERY,
257        KEY_BLUETOOTH,
258        KEY_WLAN,
259        KEY_UWB,
260        KEY_UNKNOWN,
261        KEY_VIDEO_NEXT,
262        KEY_VIDEO_PREV,
263        KEY_BRIGHTNESS_CYCLE,
264        KEY_BRIGHTNESS_AUTO,
265        KEY_DISPLAY_OFF,
266        KEY_WWAN,
267        KEY_RFKILL,
268        KEY_MICMUTE,
269        KEY_249,
270        KEY_250,
271        KEY_251,
272        KEY_252,
273        KEY_253,
274        KEY_254,
275        KEY_255,
276        BTN_0,
277        BTN_1,
278        BTN_2,
279        BTN_3,
280        BTN_4,
281        BTN_5,
282        BTN_6,
283        BTN_7,
284        BTN_8,
285        BTN_9,
286        KEY_266,
287        KEY_267,
288        KEY_268,
289        KEY_269,
290        KEY_270,
291        KEY_271,
292        BTN_LEFT,
293        BTN_RIGHT,
294        BTN_MIDDLE,
295        BTN_SIDE,
296        BTN_EXTRA,
297        BTN_FORWARD,
298        BTN_BACK,
299        BTN_TASK,
300        KEY_280,
301        KEY_281,
302        KEY_282,
303        KEY_283,
304        KEY_284,
305        KEY_285,
306        KEY_286,
307        KEY_287,
308        BTN_TRIGGER,
309        BTN_THUMB,
310        BTN_THUMB2,
311        BTN_TOP,
312        BTN_TOP2,
313        BTN_PINKIE,
314        BTN_BASE,
315        BTN_BASE2,
316        BTN_BASE3,
317        BTN_BASE4,
318        BTN_BASE5,
319        BTN_BASE6,
320        KEY_300,
321        KEY_301,
322        KEY_302,
323        BTN_DEAD,
324        BTN_SOUTH,
325        BTN_EAST,
326        BTN_C,
327        BTN_NORTH,
328        BTN_WEST,
329        BTN_Z,
330        BTN_TL,
331        BTN_TR,
332        BTN_TL2,
333        BTN_TR2,
334        BTN_SELECT,
335        BTN_START,
336        BTN_MODE,
337        BTN_THUMBL,
338        BTN_THUMBR,
339        KEY_319,
340        BTN_TOOL_PEN,
341        BTN_TOOL_RUBBER,
342        BTN_TOOL_BRUSH,
343        BTN_TOOL_PENCIL,
344        BTN_TOOL_AIRBRUSH,
345        BTN_TOOL_FINGER,
346        BTN_TOOL_MOUSE,
347        BTN_TOOL_LENS,
348        BTN_TOOL_QUINTTAP,
349        BTN_STYLUS3,
350        BTN_TOUCH,
351        BTN_STYLUS,
352        BTN_STYLUS2,
353        BTN_TOOL_DOUBLETAP,
354        BTN_TOOL_TRIPLETAP,
355        BTN_TOOL_QUADTAP,
356        BTN_GEAR_DOWN,
357        BTN_GEAR_UP,
358        KEY_338,
359        KEY_339,
360        KEY_340,
361        KEY_341,
362        KEY_342,
363        KEY_343,
364        KEY_344,
365        KEY_345,
366        KEY_346,
367        KEY_347,
368        KEY_348,
369        KEY_349,
370        KEY_350,
371        KEY_351,
372        KEY_OK,
373        KEY_SELECT,
374        KEY_GOTO,
375        KEY_CLEAR,
376        KEY_POWER2,
377        KEY_OPTION,
378        KEY_INFO,
379        KEY_TIME,
380        KEY_VENDOR,
381        KEY_ARCHIVE,
382        KEY_PROGRAM,
383        KEY_CHANNEL,
384        KEY_FAVORITES,
385        KEY_EPG,
386        KEY_PVR,
387        KEY_MHP,
388        KEY_LANGUAGE,
389        KEY_TITLE,
390        KEY_SUBTITLE,
391        KEY_ANGLE,
392        KEY_FULL_SCREEN,
393        KEY_MODE,
394        KEY_KEYBOARD,
395        KEY_ASPECT_RATIO,
396        KEY_PC,
397        KEY_TV,
398        KEY_TV2,
399        KEY_VCR,
400        KEY_VCR2,
401        KEY_SAT,
402        KEY_SAT2,
403        KEY_CD,
404        KEY_TAPE,
405        KEY_RADIO,
406        KEY_TUNER,
407        KEY_PLAYER,
408        KEY_TEXT,
409        KEY_DVD,
410        KEY_AUX,
411        KEY_MP3,
412        KEY_AUDIO,
413        KEY_VIDEO,
414        KEY_DIRECTORY,
415        KEY_LIST,
416        KEY_MEMO,
417        KEY_CALENDAR,
418        KEY_RED,
419        KEY_GREEN,
420        KEY_YELLOW,
421        KEY_BLUE,
422        KEY_CHANNELUP,
423        KEY_CHANNELDOWN,
424        KEY_FIRST,
425        KEY_LAST,
426        KEY_AB,
427        KEY_NEXT,
428        KEY_RESTART,
429        KEY_SLOW,
430        KEY_SHUFFLE,
431        KEY_BREAK,
432        KEY_PREVIOUS,
433        KEY_DIGITS,
434        KEY_TEEN,
435        KEY_TWEN,
436        KEY_VIDEOPHONE,
437        KEY_GAMES,
438        KEY_ZOOMIN,
439        KEY_ZOOMOUT,
440        KEY_ZOOMRESET,
441        KEY_WORDPROCESSOR,
442        KEY_EDITOR,
443        KEY_SPREADSHEET,
444        KEY_GRAPHICSEDITOR,
445        KEY_PRESENTATION,
446        KEY_DATABASE,
447        KEY_NEWS,
448        KEY_VOICEMAIL,
449        KEY_ADDRESSBOOK,
450        KEY_MESSENGER,
451        KEY_DISPLAYTOGGLE,
452        KEY_SPELLCHECK,
453        KEY_LOGOFF,
454        KEY_DOLLAR,
455        KEY_EURO,
456        KEY_FRAMEBACK,
457        KEY_FRAMEFORWARD,
458        KEY_CONTEXT_MENU,
459        KEY_MEDIA_REPEAT,
460        KEY_10CHANNELSUP,
461        KEY_10CHANNELSDOWN,
462        KEY_IMAGES,
463        KEY_443,
464        KEY_444,
465        KEY_445,
466        KEY_446,
467        KEY_447,
468        KEY_DEL_EOL,
469        KEY_DEL_EOS,
470        KEY_INS_LINE,
471        KEY_DEL_LINE,
472        KEY_452,
473        KEY_453,
474        KEY_454,
475        KEY_455,
476        KEY_456,
477        KEY_457,
478        KEY_458,
479        KEY_459,
480        KEY_460,
481        KEY_461,
482        KEY_462,
483        KEY_463,
484        KEY_FN,
485        KEY_FN_ESC,
486        KEY_FN_F1,
487        KEY_FN_F2,
488        KEY_FN_F3,
489        KEY_FN_F4,
490        KEY_FN_F5,
491        KEY_FN_F6,
492        KEY_FN_F7,
493        KEY_FN_F8,
494        KEY_FN_F9,
495        KEY_FN_F10,
496        KEY_FN_F11,
497        KEY_FN_F12,
498        KEY_FN_1,
499        KEY_FN_2,
500        KEY_FN_D,
501        KEY_FN_E,
502        KEY_FN_F,
503        KEY_FN_S,
504        KEY_FN_B,
505        KEY_485,
506        KEY_486,
507        KEY_487,
508        KEY_488,
509        KEY_489,
510        KEY_490,
511        KEY_491,
512        KEY_492,
513        KEY_493,
514        KEY_494,
515        KEY_495,
516        KEY_496,
517        KEY_BRL_DOT1,
518        KEY_BRL_DOT2,
519        KEY_BRL_DOT3,
520        KEY_BRL_DOT4,
521        KEY_BRL_DOT5,
522        KEY_BRL_DOT6,
523        KEY_BRL_DOT7,
524        KEY_BRL_DOT8,
525        KEY_BRL_DOT9,
526        KEY_BRL_DOT10,
527        KEY_507,
528        KEY_508,
529        KEY_509,
530        KEY_510,
531        KEY_511,
532        KEY_NUMERIC_0,
533        KEY_NUMERIC_1,
534        KEY_NUMERIC_2,
535        KEY_NUMERIC_3,
536        KEY_NUMERIC_4,
537        KEY_NUMERIC_5,
538        KEY_NUMERIC_6,
539        KEY_NUMERIC_7,
540        KEY_NUMERIC_8,
541        KEY_NUMERIC_9,
542        KEY_NUMERIC_STAR,
543        KEY_NUMERIC_POUND,
544        KEY_NUMERIC_A,
545        KEY_NUMERIC_B,
546        KEY_NUMERIC_C,
547        KEY_NUMERIC_D,
548        KEY_CAMERA_FOCUS,
549        KEY_WPS_BUTTON,
550        KEY_TOUCHPAD_TOGGLE,
551        KEY_TOUCHPAD_ON,
552        KEY_TOUCHPAD_OFF,
553        KEY_CAMERA_ZOOMIN,
554        KEY_CAMERA_ZOOMOUT,
555        KEY_CAMERA_UP,
556        KEY_CAMERA_DOWN,
557        KEY_CAMERA_LEFT,
558        KEY_CAMERA_RIGHT,
559        KEY_ATTENDANT_ON,
560        KEY_ATTENDANT_OFF,
561        KEY_ATTENDANT_TOGGLE,
562        KEY_LIGHTS_TOGGLE,
563        KEY_543,
564        BTN_DPAD_UP,
565        BTN_DPAD_DOWN,
566        BTN_DPAD_LEFT,
567        BTN_DPAD_RIGHT,
568        KEY_548,
569        KEY_549,
570        KEY_550,
571        KEY_551,
572        KEY_552,
573        KEY_553,
574        KEY_554,
575        KEY_555,
576        KEY_556,
577        KEY_557,
578        KEY_558,
579        KEY_559,
580        KEY_ALS_TOGGLE,
581        KEY_ROTATE_LOCK_TOGGLE,
582        KEY_562,
583        KEY_563,
584        KEY_564,
585        KEY_565,
586        KEY_566,
587        KEY_567,
588        KEY_568,
589        KEY_569,
590        KEY_570,
591        KEY_571,
592        KEY_572,
593        KEY_573,
594        KEY_574,
595        KEY_575,
596        KEY_BUTTONCONFIG,
597        KEY_TASKMANAGER,
598        KEY_JOURNAL,
599        KEY_CONTROLPANEL,
600        KEY_APPSELECT,
601        KEY_SCREENSAVER,
602        KEY_VOICECOMMAND,
603        KEY_ASSISTANT,
604        KEY_KBD_LAYOUT_NEXT,
605        KEY_585,
606        KEY_586,
607        KEY_587,
608        KEY_588,
609        KEY_589,
610        KEY_590,
611        KEY_591,
612        KEY_BRIGHTNESS_MIN,
613        KEY_BRIGHTNESS_MAX,
614        KEY_594,
615        KEY_595,
616        KEY_596,
617        KEY_597,
618        KEY_598,
619        KEY_599,
620        KEY_600,
621        KEY_601,
622        KEY_602,
623        KEY_603,
624        KEY_604,
625        KEY_605,
626        KEY_606,
627        KEY_607,
628        KEY_KBDINPUTASSIST_PREV,
629        KEY_KBDINPUTASSIST_NEXT,
630        KEY_KBDINPUTASSIST_PREVGROUP,
631        KEY_KBDINPUTASSIST_NEXTGROUP,
632        KEY_KBDINPUTASSIST_ACCEPT,
633        KEY_KBDINPUTASSIST_CANCEL,
634        KEY_RIGHT_UP,
635        KEY_RIGHT_DOWN,
636        KEY_LEFT_UP,
637        KEY_LEFT_DOWN,
638        KEY_ROOT_MENU,
639        KEY_MEDIA_TOP_MENU,
640        KEY_NUMERIC_11,
641        KEY_NUMERIC_12,
642        KEY_AUDIO_DESC,
643        KEY_3D_MODE,
644        KEY_NEXT_FAVORITE,
645        KEY_STOP_RECORD,
646        KEY_PAUSE_RECORD,
647        KEY_VOD,
648        KEY_UNMUTE,
649        KEY_FASTREVERSE,
650        KEY_SLOWREVERSE,
651        KEY_DATA,
652        KEY_ONSCREEN_KEYBOARD,
653        KEY_633,
654        KEY_634,
655        KEY_635,
656        KEY_636,
657        KEY_637,
658        KEY_638,
659        KEY_639,
660        KEY_640,
661        KEY_641,
662        KEY_642,
663        KEY_643,
664        KEY_644,
665        KEY_645,
666        KEY_646,
667        KEY_647,
668        KEY_648,
669        KEY_649,
670        KEY_650,
671        KEY_651,
672        KEY_652,
673        KEY_653,
674        KEY_654,
675        KEY_655,
676        KEY_656,
677        KEY_657,
678        KEY_658,
679        KEY_659,
680        KEY_660,
681        KEY_661,
682        KEY_662,
683        KEY_663,
684        KEY_664,
685        KEY_665,
686        KEY_666,
687        KEY_667,
688        KEY_668,
689        KEY_669,
690        KEY_670,
691        KEY_671,
692        KEY_672,
693        KEY_673,
694        KEY_674,
695        KEY_675,
696        KEY_676,
697        KEY_677,
698        KEY_678,
699        KEY_679,
700        KEY_680,
701        KEY_681,
702        KEY_682,
703        KEY_683,
704        KEY_684,
705        KEY_685,
706        KEY_686,
707        KEY_687,
708        KEY_688,
709        KEY_689,
710        KEY_690,
711        KEY_691,
712        KEY_692,
713        KEY_693,
714        KEY_694,
715        KEY_695,
716        KEY_696,
717        KEY_697,
718        KEY_698,
719        KEY_699,
720        KEY_700,
721        KEY_701,
722        KEY_702,
723        KEY_703,
724        BTN_TRIGGER_HAPPY1,
725        BTN_TRIGGER_HAPPY2,
726        BTN_TRIGGER_HAPPY3,
727        BTN_TRIGGER_HAPPY4,
728        BTN_TRIGGER_HAPPY5,
729        BTN_TRIGGER_HAPPY6,
730        BTN_TRIGGER_HAPPY7,
731        BTN_TRIGGER_HAPPY8,
732        BTN_TRIGGER_HAPPY9,
733        BTN_TRIGGER_HAPPY10,
734        BTN_TRIGGER_HAPPY11,
735        BTN_TRIGGER_HAPPY12,
736        BTN_TRIGGER_HAPPY13,
737        BTN_TRIGGER_HAPPY14,
738        BTN_TRIGGER_HAPPY15,
739        BTN_TRIGGER_HAPPY16,
740        BTN_TRIGGER_HAPPY17,
741        BTN_TRIGGER_HAPPY18,
742        BTN_TRIGGER_HAPPY19,
743        BTN_TRIGGER_HAPPY20,
744        BTN_TRIGGER_HAPPY21,
745        BTN_TRIGGER_HAPPY22,
746        BTN_TRIGGER_HAPPY23,
747        BTN_TRIGGER_HAPPY24,
748        BTN_TRIGGER_HAPPY25,
749        BTN_TRIGGER_HAPPY26,
750        BTN_TRIGGER_HAPPY27,
751        BTN_TRIGGER_HAPPY28,
752        BTN_TRIGGER_HAPPY29,
753        BTN_TRIGGER_HAPPY30,
754        BTN_TRIGGER_HAPPY31,
755        BTN_TRIGGER_HAPPY32,
756        BTN_TRIGGER_HAPPY33,
757        BTN_TRIGGER_HAPPY34,
758        BTN_TRIGGER_HAPPY35,
759        BTN_TRIGGER_HAPPY36,
760        BTN_TRIGGER_HAPPY37,
761        BTN_TRIGGER_HAPPY38,
762        BTN_TRIGGER_HAPPY39,
763        BTN_TRIGGER_HAPPY40,
764        BTN_MAX,
765        MouseWheelUp,
766        MouseWheelDown,
767        MouseWheelLeft,
768        MouseWheelRight,
769        KEY_749,
770        KEY_750,
771        KEY_751,
772        KEY_752,
773        KEY_753,
774        KEY_754,
775        KEY_755,
776        KEY_756,
777        KEY_757,
778        KEY_758,
779        KEY_759,
780        KEY_760,
781        KEY_761,
782        KEY_762,
783        KEY_763,
784        KEY_764,
785        KEY_765,
786        KEY_766,
787        KEY_MAX,
788    ];
789
790    for osc in oscs.iter().copied() {
791        let roundtrip = OsCode::from(KeyCode::from(osc));
792        assert_eq!(osc, roundtrip);
793    }
794}