pub const KEYCODE_UNKNOWN: i32 = 0;
pub const KEYCODE_SOFT_LEFT: i32 = 1;
pub const KEYCODE_SOFT_RIGHT: i32 = 2;
pub const KEYCODE_HOME: i32 = 3;
pub const KEYCODE_BACK: i32 = 4;
pub const KEYCODE_CALL: i32 = 5;
pub const KEYCODE_ENDCALL: i32 = 6;
pub const KEYCODE_0: i32 = 7;
pub const KEYCODE_1: i32 = 8;
pub const KEYCODE_2: i32 = 9;
pub const KEYCODE_3: i32 = 10;
pub const KEYCODE_4: i32 = 11;
pub const KEYCODE_5: i32 = 12;
pub const KEYCODE_6: i32 = 13;
pub const KEYCODE_7: i32 = 14;
pub const KEYCODE_8: i32 = 15;
pub const KEYCODE_9: i32 = 16;
pub const KEYCODE_STAR: i32 = 17;
pub const KEYCODE_POUND: i32 = 18;
pub const KEYCODE_DPAD_UP: i32 = 19;
pub const KEYCODE_DPAD_DOWN: i32 = 20;
pub const KEYCODE_DPAD_LEFT: i32 = 21;
pub const KEYCODE_DPAD_RIGHT: i32 = 22;
pub const KEYCODE_DPAD_CENTER: i32 = 23;
pub const KEYCODE_VOLUME_UP: i32 = 24;
pub const KEYCODE_VOLUME_DOWN: i32 = 25;
pub const KEYCODE_POWER: i32 = 26;
pub const KEYCODE_CAMERA: i32 = 27;
pub const KEYCODE_CLEAR: i32 = 28;
pub const KEYCODE_A: i32 = 29;
pub const KEYCODE_B: i32 = 30;
pub const KEYCODE_C: i32 = 31;
pub const KEYCODE_D: i32 = 32;
pub const KEYCODE_E: i32 = 33;
pub const KEYCODE_F: i32 = 34;
pub const KEYCODE_G: i32 = 35;
pub const KEYCODE_H: i32 = 36;
pub const KEYCODE_I: i32 = 37;
pub const KEYCODE_J: i32 = 38;
pub const KEYCODE_K: i32 = 39;
pub const KEYCODE_L: i32 = 40;
pub const KEYCODE_M: i32 = 41;
pub const KEYCODE_N: i32 = 42;
pub const KEYCODE_O: i32 = 43;
pub const KEYCODE_P: i32 = 44;
pub const KEYCODE_Q: i32 = 45;
pub const KEYCODE_R: i32 = 46;
pub const KEYCODE_S: i32 = 47;
pub const KEYCODE_T: i32 = 48;
pub const KEYCODE_U: i32 = 49;
pub const KEYCODE_V: i32 = 50;
pub const KEYCODE_W: i32 = 51;
pub const KEYCODE_X: i32 = 52;
pub const KEYCODE_Y: i32 = 53;
pub const KEYCODE_Z: i32 = 54;
pub const KEYCODE_COMMA: i32 = 55;
pub const KEYCODE_PERIOD: i32 = 56;
pub const KEYCODE_ALT_LEFT: i32 = 57;
pub const KEYCODE_ALT_RIGHT: i32 = 58;
pub const KEYCODE_SHIFT_LEFT: i32 = 59;
pub const KEYCODE_SHIFT_RIGHT: i32 = 60;
pub const KEYCODE_TAB: i32 = 61;
pub const KEYCODE_SPACE: i32 = 62;
pub const KEYCODE_SYM: i32 = 63;
pub const KEYCODE_EXPLORER: i32 = 64;
pub const KEYCODE_ENVELOPE: i32 = 65;
pub const KEYCODE_ENTER: i32 = 66;
pub const KEYCODE_DEL: i32 = 67;
pub const KEYCODE_GRAVE: i32 = 68;
pub const KEYCODE_MINUS: i32 = 69;
pub const KEYCODE_EQUALS: i32 = 70;
pub const KEYCODE_LEFT_BRACKET: i32 = 71;
pub const KEYCODE_RIGHT_BRACKET: i32 = 72;
pub const KEYCODE_BACKSLASH: i32 = 73;
pub const KEYCODE_SEMICOLON: i32 = 74;
pub const KEYCODE_APOSTROPHE: i32 = 75;
pub const KEYCODE_SLASH: i32 = 76;
pub const KEYCODE_AT: i32 = 77;
pub const KEYCODE_NUM: i32 = 78;
pub const KEYCODE_HEADSETHOOK: i32 = 79;
pub const KEYCODE_FOCUS: i32 = 80;
pub const KEYCODE_PLUS: i32 = 81;
pub const KEYCODE_MENU: i32 = 82;
pub const KEYCODE_NOTIFICATION: i32 = 83;
pub const KEYCODE_SEARCH: i32 = 84;
pub const KEYCODE_MEDIA_PLAY_PAUSE: i32 = 85;
pub const KEYCODE_MEDIA_STOP: i32 = 86;
pub const KEYCODE_MEDIA_NEXT: i32 = 87;
pub const KEYCODE_MEDIA_PREVIOUS: i32 = 88;
pub const KEYCODE_MEDIA_REWIND: i32 = 89;
pub const KEYCODE_MEDIA_FAST_FORWARD: i32 = 90;
pub const KEYCODE_MUTE: i32 = 91;
pub const KEYCODE_PAGE_UP: i32 = 92;
pub const KEYCODE_PAGE_DOWN: i32 = 93;
pub const KEYCODE_PICTSYMBOLS: i32 = 94;
pub const KEYCODE_SWITCH_CHARSET: i32 = 95;
pub const KEYCODE_BUTTON_A: i32 = 96;
pub const KEYCODE_BUTTON_B: i32 = 97;
pub const KEYCODE_BUTTON_C: i32 = 98;
pub const KEYCODE_BUTTON_X: i32 = 99;
pub const KEYCODE_BUTTON_Y: i32 = 100;
pub const KEYCODE_BUTTON_Z: i32 = 101;
pub const KEYCODE_BUTTON_L1: i32 = 102;
pub const KEYCODE_BUTTON_R1: i32 = 103;
pub const KEYCODE_BUTTON_L2: i32 = 104;
pub const KEYCODE_BUTTON_R2: i32 = 105;
pub const KEYCODE_BUTTON_THUMBL: i32 = 106;
pub const KEYCODE_BUTTON_THUMBR: i32 = 107;
pub const KEYCODE_BUTTON_START: i32 = 108;
pub const KEYCODE_BUTTON_SELECT: i32 = 109;
pub const KEYCODE_BUTTON_MODE: i32 = 110;
pub const KEYCODE_ESCAPE: i32 = 111;
pub const KEYCODE_FORWARD_DEL: i32 = 112;
pub const KEYCODE_CTRL_LEFT: i32 = 113;
pub const KEYCODE_CTRL_RIGHT: i32 = 114;
pub const KEYCODE_CAPS_LOCK: i32 = 115;
pub const KEYCODE_SCROLL_LOCK: i32 = 116;
pub const KEYCODE_META_LEFT: i32 = 117;
pub const KEYCODE_META_RIGHT: i32 = 118;
pub const KEYCODE_FUNCTION: i32 = 119;
pub const KEYCODE_SYSRQ: i32 = 120;
pub const KEYCODE_BREAK: i32 = 121;
pub const KEYCODE_MOVE_HOME: i32 = 122;
pub const KEYCODE_MOVE_END: i32 = 123;
pub const KEYCODE_INSERT: i32 = 124;
pub const KEYCODE_FORWARD: i32 = 125;
pub const KEYCODE_MEDIA_PLAY: i32 = 126;
pub const KEYCODE_MEDIA_PAUSE: i32 = 127;
pub const KEYCODE_MEDIA_CLOSE: i32 = 128;
pub const KEYCODE_MEDIA_EJECT: i32 = 129;
pub const KEYCODE_MEDIA_RECORD: i32 = 130;
pub const KEYCODE_F1: i32 = 131;
pub const KEYCODE_F2: i32 = 132;
pub const KEYCODE_F3: i32 = 133;
pub const KEYCODE_F4: i32 = 134;
pub const KEYCODE_F5: i32 = 135;
pub const KEYCODE_F6: i32 = 136;
pub const KEYCODE_F7: i32 = 137;
pub const KEYCODE_F8: i32 = 138;
pub const KEYCODE_F9: i32 = 139;
pub const KEYCODE_F10: i32 = 140;
pub const KEYCODE_F11: i32 = 141;
pub const KEYCODE_F12: i32 = 142;
pub const KEYCODE_NUM_LOCK: i32 = 143;
pub const KEYCODE_NUMPAD_0: i32 = 144;
pub const KEYCODE_NUMPAD_1: i32 = 145;
pub const KEYCODE_NUMPAD_2: i32 = 146;
pub const KEYCODE_NUMPAD_3: i32 = 147;
pub const KEYCODE_NUMPAD_4: i32 = 148;
pub const KEYCODE_NUMPAD_5: i32 = 149;
pub const KEYCODE_NUMPAD_6: i32 = 150;
pub const KEYCODE_NUMPAD_7: i32 = 151;
pub const KEYCODE_NUMPAD_8: i32 = 152;
pub const KEYCODE_NUMPAD_9: i32 = 153;
pub const KEYCODE_NUMPAD_DIVIDE: i32 = 154;
pub const KEYCODE_NUMPAD_MULTIPLY: i32 = 155;
pub const KEYCODE_NUMPAD_SUBTRACT: i32 = 156;
pub const KEYCODE_NUMPAD_ADD: i32 = 157;
pub const KEYCODE_NUMPAD_DOT: i32 = 158;
pub const KEYCODE_NUMPAD_COMMA: i32 = 159;
pub const KEYCODE_NUMPAD_ENTER: i32 = 160;
pub const KEYCODE_NUMPAD_EQUALS: i32 = 161;
pub const KEYCODE_NUMPAD_LEFT_PAREN: i32 = 162;
pub const KEYCODE_NUMPAD_RIGHT_PAREN: i32 = 163;
pub const KEYCODE_VOLUME_MUTE: i32 = 164;
pub const KEYCODE_INFO: i32 = 165;
pub const KEYCODE_CHANNEL_UP: i32 = 166;
pub const KEYCODE_CHANNEL_DOWN: i32 = 167;
pub const KEYCODE_ZOOM_IN: i32 = 168;
pub const KEYCODE_ZOOM_OUT: i32 = 169;
pub const KEYCODE_TV: i32 = 170;
pub const KEYCODE_WINDOW: i32 = 171;
pub const KEYCODE_GUIDE: i32 = 172;
pub const KEYCODE_DVR: i32 = 173;
pub const KEYCODE_BOOKMARK: i32 = 174;
pub const KEYCODE_CAPTIONS: i32 = 175;
pub const KEYCODE_SETTINGS: i32 = 176;
pub const KEYCODE_TV_POWER: i32 = 177;
pub const KEYCODE_TV_INPUT: i32 = 178;
pub const KEYCODE_STB_POWER: i32 = 179;
pub const KEYCODE_STB_INPUT: i32 = 180;
pub const KEYCODE_AVR_POWER: i32 = 181;
pub const KEYCODE_AVR_INPUT: i32 = 182;
pub const KEYCODE_PROG_RED: i32 = 183;
pub const KEYCODE_PROG_GREEN: i32 = 184;
pub const KEYCODE_PROG_YELLOW: i32 = 185;
pub const KEYCODE_PROG_BLUE: i32 = 186;
pub const KEYCODE_APP_SWITCH: i32 = 187;
pub const KEYCODE_BUTTON_1: i32 = 188;
pub const KEYCODE_BUTTON_2: i32 = 189;
pub const KEYCODE_BUTTON_3: i32 = 190;
pub const KEYCODE_BUTTON_4: i32 = 191;
pub const KEYCODE_BUTTON_5: i32 = 192;
pub const KEYCODE_BUTTON_6: i32 = 193;
pub const KEYCODE_BUTTON_7: i32 = 194;
pub const KEYCODE_BUTTON_8: i32 = 195;
pub const KEYCODE_BUTTON_9: i32 = 196;
pub const KEYCODE_BUTTON_10: i32 = 197;
pub const KEYCODE_BUTTON_11: i32 = 198;
pub const KEYCODE_BUTTON_12: i32 = 199;
pub const KEYCODE_BUTTON_13: i32 = 200;
pub const KEYCODE_BUTTON_14: i32 = 201;
pub const KEYCODE_BUTTON_15: i32 = 202;
pub const KEYCODE_BUTTON_16: i32 = 203;
pub const KEYCODE_LANGUAGE_SWITCH: i32 = 204;
pub const KEYCODE_MANNER_MODE: i32 = 205;
pub const KEYCODE_3D_MODE: i32 = 206;
pub const KEYCODE_CONTACTS: i32 = 207;
pub const KEYCODE_CALENDAR: i32 = 208;
pub const KEYCODE_MUSIC: i32 = 209;
pub const KEYCODE_CALCULATOR: i32 = 210;
pub const KEYCODE_ZENKAKU_HANKAKU: i32 = 211;
pub const KEYCODE_EISU: i32 = 212;
pub const KEYCODE_MUHENKAN: i32 = 213;
pub const KEYCODE_HENKAN: i32 = 214;
pub const KEYCODE_KATAKANA_HIRAGANA: i32 = 215;
pub const KEYCODE_YEN: i32 = 216;
pub const KEYCODE_RO: i32 = 217;
pub const KEYCODE_KANA: i32 = 218;
pub const KEYCODE_ASSIST: i32 = 219;
pub const KEYCODE_BRIGHTNESS_DOWN: i32 = 220;
pub const KEYCODE_BRIGHTNESS_UP: i32 = 221;
pub const KEYCODE_MEDIA_AUDIO_TRACK: i32 = 222;
pub const KEYCODE_SLEEP: i32 = 223;
pub const KEYCODE_WAKEUP: i32 = 224;
pub const KEYCODE_PAIRING: i32 = 225;
pub const KEYCODE_MEDIA_TOP_MENU: i32 = 226;
pub const KEYCODE_11: i32 = 227;
pub const KEYCODE_12: i32 = 228;
pub const KEYCODE_LAST_CHANNEL: i32 = 229;
pub const KEYCODE_TV_DATA_SERVICE: i32 = 230;
pub const KEYCODE_VOICE_ASSIST: i32 = 231;
pub const KEYCODE_TV_RADIO_SERVICE: i32 = 232;
pub const KEYCODE_TV_TELETEXT: i32 = 233;
pub const KEYCODE_TV_NUMBER_ENTRY: i32 = 234;
pub const KEYCODE_TV_TERRESTRIAL_ANALOG: i32 = 235;
pub const KEYCODE_TV_TERRESTRIAL_DIGITAL: i32 = 236;
pub const KEYCODE_TV_SATELLITE: i32 = 237;
pub const KEYCODE_TV_SATELLITE_BS: i32 = 238;
pub const KEYCODE_TV_SATELLITE_CS: i32 = 239;
pub const KEYCODE_TV_SATELLITE_SERVICE: i32 = 240;
pub const KEYCODE_TV_NETWORK: i32 = 241;
pub const KEYCODE_TV_ANTENNA_CABLE: i32 = 242;
pub const KEYCODE_TV_INPUT_HDMI_1: i32 = 243;
pub const KEYCODE_TV_INPUT_HDMI_2: i32 = 244;
pub const KEYCODE_TV_INPUT_HDMI_3: i32 = 245;
pub const KEYCODE_TV_INPUT_HDMI_4: i32 = 246;
pub const KEYCODE_TV_INPUT_COMPOSITE_1: i32 = 247;
pub const KEYCODE_TV_INPUT_COMPOSITE_2: i32 = 248;
pub const KEYCODE_TV_INPUT_COMPONENT_1: i32 = 249;
pub const KEYCODE_TV_INPUT_COMPONENT_2: i32 = 250;
pub const KEYCODE_TV_INPUT_VGA_1: i32 = 251;
pub const KEYCODE_TV_AUDIO_DESCRIPTION: i32 = 252;
pub const KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP: i32 = 253;
pub const KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN: i32 = 254;
pub const KEYCODE_TV_ZOOM_MODE: i32 = 255;
pub const KEYCODE_TV_CONTENTS_MENU: i32 = 256;
pub const KEYCODE_TV_MEDIA_CONTEXT_MENU: i32 = 257;
pub const KEYCODE_TV_TIMER_PROGRAMMING: i32 = 258;
pub const KEYCODE_HELP: i32 = 259;
pub const KEYCODE_NAVIGATE_PREVIOUS: i32 = 260;
pub const KEYCODE_NAVIGATE_NEXT: i32 = 261;
pub const KEYCODE_NAVIGATE_IN: i32 = 262;
pub const KEYCODE_NAVIGATE_OUT: i32 = 263;
pub const KEYCODE_STEM_PRIMARY: i32 = 264;
pub const KEYCODE_STEM_1: i32 = 265;
pub const KEYCODE_STEM_2: i32 = 266;
pub const KEYCODE_STEM_3: i32 = 267;
pub const KEYCODE_DPAD_UP_LEFT: i32 = 268;
pub const KEYCODE_DPAD_DOWN_LEFT: i32 = 269;
pub const KEYCODE_DPAD_UP_RIGHT: i32 = 270;
pub const KEYCODE_DPAD_DOWN_RIGHT: i32 = 271;
pub const KEYCODE_MEDIA_SKIP_FORWARD: i32 = 272;
pub const KEYCODE_MEDIA_SKIP_BACKWARD: i32 = 273;
pub const KEYCODE_MEDIA_STEP_FORWARD: i32 = 274;
pub const KEYCODE_MEDIA_STEP_BACKWARD: i32 = 275;
pub const KEYCODE_SOFT_SLEEP: i32 = 276;
pub const KEYCODE_CUT: i32 = 277;
pub const KEYCODE_COPY: i32 = 278;
pub const KEYCODE_PASTE: i32 = 279;
pub const KEYCODE_SYSTEM_NAVIGATION_UP: i32 = 280;
pub const KEYCODE_SYSTEM_NAVIGATION_DOWN: i32 = 281;
pub const KEYCODE_SYSTEM_NAVIGATION_LEFT: i32 = 282;
pub const KEYCODE_SYSTEM_NAVIGATION_RIGHT: i32 = 283;
pub const KEYCODE_ALL_APPS: i32 = 284;
pub const KEYCODE_REFRESH: i32 = 285;
pub const KEYCODE_THUMBS_UP: i32 = 286;
pub const KEYCODE_THUMBS_DOWN: i32 = 287;
pub const KEYCODE_PROFILE_SWITCH: i32 = 288;
pub const KEYCODE_VIDEO_APP_1: i32 = 289;
pub const KEYCODE_VIDEO_APP_2: i32 = 290;
pub const KEYCODE_VIDEO_APP_3: i32 = 291;
pub const KEYCODE_VIDEO_APP_4: i32 = 292;
pub const KEYCODE_VIDEO_APP_5: i32 = 293;
pub const KEYCODE_VIDEO_APP_6: i32 = 294;
pub const KEYCODE_VIDEO_APP_7: i32 = 295;
pub const KEYCODE_VIDEO_APP_8: i32 = 296;
pub const KEYCODE_FEATURED_APP_1: i32 = 297;
pub const KEYCODE_FEATURED_APP_2: i32 = 298;
pub const KEYCODE_FEATURED_APP_3: i32 = 299;
pub const KEYCODE_FEATURED_APP_4: i32 = 300;
pub const KEYCODE_DEMO_APP_1: i32 = 301;
pub const KEYCODE_DEMO_APP_2: i32 = 302;
pub const KEYCODE_DEMO_APP_3: i32 = 303;
pub const KEYCODE_DEMO_APP_4: i32 = 304;
pub const KEYCODE_KEYBOARD_BACKLIGHT_DOWN: i32 = 305;
pub const KEYCODE_KEYBOARD_BACKLIGHT_UP: i32 = 306;
pub const KEYCODE_KEYBOARD_BACKLIGHT_TOGGLE: i32 = 307;
pub const KEYCODE_STYLUS_BUTTON_PRIMARY: i32 = 308;
pub const KEYCODE_STYLUS_BUTTON_SECONDARY: i32 = 309;
pub const KEYCODE_STYLUS_BUTTON_TERTIARY: i32 = 310;
pub const KEYCODE_STYLUS_BUTTON_TAIL: i32 = 311;
pub const KEYCODE_RECENT_APPS: i32 = 312;
pub const KEYCODE_MACRO_1: i32 = 313;
pub const KEYCODE_MACRO_2: i32 = 314;
pub const KEYCODE_MACRO_3: i32 = 315;
pub const KEYCODE_MACRO_4: i32 = 316;
pub const KEYCODE_EMOJI_PICKER: i32 = 317;
pub const KEYCODE_SCREENSHOT: i32 = 318;
pub const KEYCODE_DICTATE: i32 = 319;
pub const KEYCODE_NEW: i32 = 320;
pub const KEYCODE_CLOSE: i32 = 321;
pub const KEYCODE_DO_NOT_DISTURB: i32 = 322;
pub const KEYCODE_PRINT: i32 = 323;
pub const KEYCODE_LOCK: i32 = 324;
pub const KEYCODE_FULLSCREEN: i32 = 325;
pub const KEYCODE_F13: i32 = 326;
pub const KEYCODE_F14: i32 = 327;
pub const KEYCODE_F15: i32 = 328;
pub const KEYCODE_F16: i32 = 329;
pub const KEYCODE_F17: i32 = 330;
pub const KEYCODE_F18: i32 = 331;
pub const KEYCODE_F19: i32 = 332;
pub const KEYCODE_F20: i32 = 333;
pub const KEYCODE_F21: i32 = 334;
pub const KEYCODE_F22: i32 = 335;
pub const KEYCODE_F23: i32 = 336;
pub const KEYCODE_F24: i32 = 337;
use super::{Code, Location, NamedKey};
pub fn keycode_to_code(keycode: i32) -> Code {
match keycode {
KEYCODE_A => Code::KeyA,
KEYCODE_B => Code::KeyB,
KEYCODE_C => Code::KeyC,
KEYCODE_D => Code::KeyD,
KEYCODE_E => Code::KeyE,
KEYCODE_F => Code::KeyF,
KEYCODE_G => Code::KeyG,
KEYCODE_H => Code::KeyH,
KEYCODE_I => Code::KeyI,
KEYCODE_J => Code::KeyJ,
KEYCODE_K => Code::KeyK,
KEYCODE_L => Code::KeyL,
KEYCODE_M => Code::KeyM,
KEYCODE_N => Code::KeyN,
KEYCODE_O => Code::KeyO,
KEYCODE_P => Code::KeyP,
KEYCODE_Q => Code::KeyQ,
KEYCODE_R => Code::KeyR,
KEYCODE_S => Code::KeyS,
KEYCODE_T => Code::KeyT,
KEYCODE_U => Code::KeyU,
KEYCODE_V => Code::KeyV,
KEYCODE_W => Code::KeyW,
KEYCODE_X => Code::KeyX,
KEYCODE_Y => Code::KeyY,
KEYCODE_Z => Code::KeyZ,
KEYCODE_0 => Code::Digit0,
KEYCODE_1 => Code::Digit1,
KEYCODE_2 => Code::Digit2,
KEYCODE_3 => Code::Digit3,
KEYCODE_4 => Code::Digit4,
KEYCODE_5 => Code::Digit5,
KEYCODE_6 => Code::Digit6,
KEYCODE_7 => Code::Digit7,
KEYCODE_8 => Code::Digit8,
KEYCODE_9 => Code::Digit9,
KEYCODE_COMMA => Code::Comma,
KEYCODE_PERIOD => Code::Period,
KEYCODE_MINUS => Code::Minus,
KEYCODE_EQUALS => Code::Equal,
KEYCODE_LEFT_BRACKET => Code::BracketLeft,
KEYCODE_RIGHT_BRACKET => Code::BracketRight,
KEYCODE_BACKSLASH => Code::Backslash,
KEYCODE_SEMICOLON => Code::Semicolon,
KEYCODE_APOSTROPHE => Code::Quote,
KEYCODE_SLASH => Code::Slash,
KEYCODE_GRAVE => Code::Backquote,
KEYCODE_PLUS => Code::NumpadAdd,
KEYCODE_SHIFT_LEFT => Code::ShiftLeft,
KEYCODE_SHIFT_RIGHT => Code::ShiftRight,
KEYCODE_CTRL_LEFT => Code::ControlLeft,
KEYCODE_CTRL_RIGHT => Code::ControlRight,
KEYCODE_ALT_LEFT => Code::AltLeft,
KEYCODE_ALT_RIGHT => Code::AltRight,
KEYCODE_META_LEFT => Code::MetaLeft,
KEYCODE_META_RIGHT => Code::MetaRight,
KEYCODE_CAPS_LOCK => Code::CapsLock,
KEYCODE_NUM_LOCK => Code::NumLock,
KEYCODE_SCROLL_LOCK => Code::ScrollLock,
KEYCODE_FUNCTION => Code::Fn,
KEYCODE_DPAD_UP => Code::ArrowUp,
KEYCODE_DPAD_DOWN => Code::ArrowDown,
KEYCODE_DPAD_LEFT => Code::ArrowLeft,
KEYCODE_DPAD_RIGHT => Code::ArrowRight,
KEYCODE_DPAD_CENTER => Code::Enter,
KEYCODE_PAGE_UP => Code::PageUp,
KEYCODE_PAGE_DOWN => Code::PageDown,
KEYCODE_MOVE_HOME => Code::Home,
KEYCODE_MOVE_END => Code::End,
KEYCODE_INSERT => Code::Insert,
KEYCODE_ESCAPE => Code::Escape,
KEYCODE_DEL => Code::Backspace,
KEYCODE_FORWARD_DEL => Code::Delete,
KEYCODE_CUT => Code::Cut,
KEYCODE_COPY => Code::Copy,
KEYCODE_PASTE => Code::Paste,
KEYCODE_ENTER => Code::Enter,
KEYCODE_SPACE => Code::Space,
KEYCODE_TAB => Code::Tab,
KEYCODE_MENU => Code::ContextMenu,
KEYCODE_F1 => Code::F1,
KEYCODE_F2 => Code::F2,
KEYCODE_F3 => Code::F3,
KEYCODE_F4 => Code::F4,
KEYCODE_F5 => Code::F5,
KEYCODE_F6 => Code::F6,
KEYCODE_F7 => Code::F7,
KEYCODE_F8 => Code::F8,
KEYCODE_F9 => Code::F9,
KEYCODE_F10 => Code::F10,
KEYCODE_F11 => Code::F11,
KEYCODE_F12 => Code::F12,
KEYCODE_F13 => Code::F13,
KEYCODE_F14 => Code::F14,
KEYCODE_F15 => Code::F15,
KEYCODE_F16 => Code::F16,
KEYCODE_F17 => Code::F17,
KEYCODE_F18 => Code::F18,
KEYCODE_F19 => Code::F19,
KEYCODE_F20 => Code::F20,
KEYCODE_F21 => Code::F21,
KEYCODE_F22 => Code::F22,
KEYCODE_F23 => Code::F23,
KEYCODE_F24 => Code::F24,
KEYCODE_NUMPAD_0 => Code::Numpad0,
KEYCODE_NUMPAD_1 => Code::Numpad1,
KEYCODE_NUMPAD_2 => Code::Numpad2,
KEYCODE_NUMPAD_3 => Code::Numpad3,
KEYCODE_NUMPAD_4 => Code::Numpad4,
KEYCODE_NUMPAD_5 => Code::Numpad5,
KEYCODE_NUMPAD_6 => Code::Numpad6,
KEYCODE_NUMPAD_7 => Code::Numpad7,
KEYCODE_NUMPAD_8 => Code::Numpad8,
KEYCODE_NUMPAD_9 => Code::Numpad9,
KEYCODE_NUMPAD_ADD => Code::NumpadAdd,
KEYCODE_NUMPAD_SUBTRACT => Code::NumpadSubtract,
KEYCODE_NUMPAD_MULTIPLY => Code::NumpadMultiply,
KEYCODE_NUMPAD_DIVIDE => Code::NumpadDivide,
KEYCODE_NUMPAD_ENTER => Code::NumpadEnter,
KEYCODE_NUMPAD_DOT => Code::NumpadDecimal,
KEYCODE_NUMPAD_COMMA => Code::NumpadComma,
KEYCODE_NUMPAD_EQUALS => Code::NumpadEqual,
KEYCODE_NUMPAD_LEFT_PAREN => Code::NumpadParenLeft,
KEYCODE_NUMPAD_RIGHT_PAREN => Code::NumpadParenRight,
KEYCODE_CLEAR => Code::NumpadClear,
KEYCODE_MEDIA_PLAY_PAUSE => Code::MediaPlayPause,
KEYCODE_MEDIA_STOP => Code::MediaStop,
KEYCODE_MEDIA_NEXT => Code::MediaTrackNext,
KEYCODE_MEDIA_PREVIOUS => Code::MediaTrackPrevious,
KEYCODE_MEDIA_PLAY => Code::MediaPlay,
KEYCODE_MEDIA_PAUSE => Code::MediaPause,
KEYCODE_MEDIA_FAST_FORWARD => Code::MediaFastForward,
KEYCODE_MEDIA_REWIND => Code::MediaRewind,
KEYCODE_MEDIA_RECORD => Code::MediaRecord,
KEYCODE_VOLUME_UP => Code::AudioVolumeUp,
KEYCODE_VOLUME_DOWN => Code::AudioVolumeDown,
KEYCODE_VOLUME_MUTE => Code::AudioVolumeMute,
KEYCODE_MUTE => Code::MicrophoneMuteToggle,
KEYCODE_POWER => Code::Power,
KEYCODE_SLEEP => Code::Sleep,
KEYCODE_WAKEUP => Code::WakeUp,
KEYCODE_BRIGHTNESS_DOWN => Code::BrightnessDown,
KEYCODE_BRIGHTNESS_UP => Code::BrightnessUp,
KEYCODE_HELP => Code::Help,
KEYCODE_SYSRQ => Code::PrintScreen,
KEYCODE_BREAK => Code::Pause,
KEYCODE_HENKAN => Code::Convert,
KEYCODE_MUHENKAN => Code::NonConvert,
KEYCODE_KATAKANA_HIRAGANA => Code::KanaMode,
KEYCODE_EISU => Code::Lang2,
KEYCODE_KANA => Code::Lang1,
KEYCODE_ZENKAKU_HANKAKU => Code::Lang5,
KEYCODE_YEN => Code::IntlYen,
KEYCODE_RO => Code::IntlRo,
KEYCODE_CALCULATOR => Code::LaunchApp2,
KEYCODE_ENVELOPE => Code::LaunchMail,
KEYCODE_EXPLORER => Code::LaunchApp1,
_ => Code::Unidentified,
}
}
pub fn keycode_to_named_key(keycode: i32) -> NamedKey {
match keycode {
KEYCODE_SHIFT_LEFT | KEYCODE_SHIFT_RIGHT => NamedKey::Shift,
KEYCODE_CTRL_LEFT | KEYCODE_CTRL_RIGHT => NamedKey::Control,
KEYCODE_ALT_LEFT | KEYCODE_ALT_RIGHT | KEYCODE_NUM => NamedKey::Alt,
KEYCODE_META_LEFT | KEYCODE_META_RIGHT => NamedKey::Meta,
KEYCODE_CAPS_LOCK => NamedKey::CapsLock,
KEYCODE_NUM_LOCK => NamedKey::NumLock,
KEYCODE_SCROLL_LOCK => NamedKey::ScrollLock,
KEYCODE_FUNCTION => NamedKey::Fn,
KEYCODE_DPAD_UP => NamedKey::ArrowUp,
KEYCODE_DPAD_DOWN => NamedKey::ArrowDown,
KEYCODE_DPAD_LEFT => NamedKey::ArrowLeft,
KEYCODE_DPAD_RIGHT => NamedKey::ArrowRight,
KEYCODE_PAGE_UP => NamedKey::PageUp,
KEYCODE_PAGE_DOWN => NamedKey::PageDown,
KEYCODE_MOVE_HOME => NamedKey::Home,
KEYCODE_MOVE_END => NamedKey::End,
KEYCODE_HOME => NamedKey::GoHome,
KEYCODE_BACK => NamedKey::GoBack,
KEYCODE_DEL => NamedKey::Backspace,
KEYCODE_FORWARD_DEL => NamedKey::Delete,
KEYCODE_INSERT => NamedKey::Insert,
KEYCODE_ENTER => NamedKey::Enter,
KEYCODE_TAB => NamedKey::Tab,
KEYCODE_ESCAPE => NamedKey::Escape,
KEYCODE_F1 => NamedKey::F1,
KEYCODE_F2 => NamedKey::F2,
KEYCODE_F3 => NamedKey::F3,
KEYCODE_F4 => NamedKey::F4,
KEYCODE_F5 => NamedKey::F5,
KEYCODE_F6 => NamedKey::F6,
KEYCODE_F7 => NamedKey::F7,
KEYCODE_F8 => NamedKey::F8,
KEYCODE_F9 => NamedKey::F9,
KEYCODE_F10 => NamedKey::F10,
KEYCODE_F11 => NamedKey::F11,
KEYCODE_F12 => NamedKey::F12,
KEYCODE_F13 => NamedKey::F13,
KEYCODE_F14 => NamedKey::F14,
KEYCODE_F15 => NamedKey::F15,
KEYCODE_F16 => NamedKey::F16,
KEYCODE_F17 => NamedKey::F17,
KEYCODE_F18 => NamedKey::F18,
KEYCODE_F19 => NamedKey::F19,
KEYCODE_F20 => NamedKey::F20,
KEYCODE_F21 => NamedKey::F21,
KEYCODE_F22 => NamedKey::F22,
KEYCODE_F23 => NamedKey::F23,
KEYCODE_F24 => NamedKey::F24,
KEYCODE_VOLUME_UP => NamedKey::AudioVolumeUp,
KEYCODE_VOLUME_DOWN => NamedKey::AudioVolumeDown,
KEYCODE_VOLUME_MUTE => NamedKey::AudioVolumeMute,
KEYCODE_MEDIA_PLAY_PAUSE => NamedKey::MediaPlayPause,
KEYCODE_MEDIA_STOP => NamedKey::MediaStop,
KEYCODE_MEDIA_NEXT => NamedKey::MediaTrackNext,
KEYCODE_MEDIA_PREVIOUS => NamedKey::MediaTrackPrevious,
KEYCODE_MEDIA_REWIND => NamedKey::MediaRewind,
KEYCODE_MEDIA_FAST_FORWARD => NamedKey::MediaFastForward,
KEYCODE_MEDIA_PLAY => NamedKey::MediaPlay,
KEYCODE_MEDIA_PAUSE => NamedKey::MediaPause,
KEYCODE_MUTE => NamedKey::MicrophoneVolumeMute,
KEYCODE_MEDIA_EJECT => NamedKey::Eject,
KEYCODE_MEDIA_CLOSE => NamedKey::MediaClose,
KEYCODE_MEDIA_RECORD => NamedKey::MediaRecord,
KEYCODE_MEDIA_SKIP_FORWARD => NamedKey::MediaSkipForward,
KEYCODE_MEDIA_SKIP_BACKWARD => NamedKey::MediaSkipBackward,
KEYCODE_MEDIA_STEP_FORWARD => NamedKey::MediaStepForward,
KEYCODE_MEDIA_STEP_BACKWARD => NamedKey::MediaStepBackward,
KEYCODE_POWER => NamedKey::Power,
KEYCODE_SLEEP => NamedKey::Standby,
KEYCODE_WAKEUP => NamedKey::WakeUp,
KEYCODE_BRIGHTNESS_UP => NamedKey::BrightnessUp,
KEYCODE_BRIGHTNESS_DOWN => NamedKey::BrightnessDown,
KEYCODE_TV_POWER => NamedKey::TVPower,
KEYCODE_STB_POWER => NamedKey::STBPower,
KEYCODE_AVR_POWER => NamedKey::AVRPower,
KEYCODE_FORWARD => NamedKey::BrowserForward, KEYCODE_SEARCH => NamedKey::BrowserSearch,
KEYCODE_REFRESH => NamedKey::BrowserRefresh,
KEYCODE_CALCULATOR => NamedKey::LaunchApplication2,
KEYCODE_ENVELOPE => NamedKey::LaunchMail,
KEYCODE_EXPLORER => NamedKey::LaunchWebBrowser,
KEYCODE_CONTACTS => NamedKey::LaunchContacts,
KEYCODE_CALENDAR => NamedKey::LaunchCalendar,
KEYCODE_MUSIC => NamedKey::LaunchMusicPlayer,
KEYCODE_HENKAN => NamedKey::Convert,
KEYCODE_MUHENKAN => NamedKey::NonConvert,
KEYCODE_KATAKANA_HIRAGANA => NamedKey::HiraganaKatakana,
KEYCODE_KANA => NamedKey::KanjiMode,
KEYCODE_ZENKAKU_HANKAKU => NamedKey::ZenkakuHankaku,
KEYCODE_EISU => NamedKey::Eisu,
KEYCODE_ZOOM_IN => NamedKey::ZoomIn,
KEYCODE_ZOOM_OUT => NamedKey::ZoomOut,
KEYCODE_TV_ZOOM_MODE => NamedKey::ZoomToggle,
KEYCODE_CHANNEL_UP => NamedKey::ChannelUp,
KEYCODE_CHANNEL_DOWN => NamedKey::ChannelDown,
KEYCODE_GUIDE => NamedKey::Guide,
KEYCODE_INFO => NamedKey::Info,
KEYCODE_SETTINGS => NamedKey::Settings,
KEYCODE_TV => NamedKey::TV,
KEYCODE_LAST_CHANNEL => NamedKey::MediaLast,
KEYCODE_MEDIA_AUDIO_TRACK => NamedKey::MediaAudioTrack,
KEYCODE_MEDIA_TOP_MENU => NamedKey::MediaTopMenu,
KEYCODE_NAVIGATE_PREVIOUS => NamedKey::NavigatePrevious,
KEYCODE_NAVIGATE_NEXT => NamedKey::NavigateNext,
KEYCODE_NAVIGATE_IN => NamedKey::NavigateIn,
KEYCODE_NAVIGATE_OUT => NamedKey::NavigateOut,
KEYCODE_CAPTIONS => NamedKey::ClosedCaptionToggle,
KEYCODE_TV_TELETEXT => NamedKey::Teletext,
KEYCODE_TV_NUMBER_ENTRY => NamedKey::TVNumberEntry,
KEYCODE_TV_TERRESTRIAL_ANALOG => NamedKey::TVTerrestrialAnalog,
KEYCODE_TV_TERRESTRIAL_DIGITAL => NamedKey::TVTerrestrialDigital,
KEYCODE_TV_SATELLITE => NamedKey::TVSatellite,
KEYCODE_TV_SATELLITE_BS => NamedKey::TVSatelliteBS,
KEYCODE_TV_SATELLITE_CS => NamedKey::TVSatelliteCS,
KEYCODE_TV_SATELLITE_SERVICE => NamedKey::TVSatelliteToggle,
KEYCODE_TV_NETWORK => NamedKey::TVNetwork,
KEYCODE_TV_ANTENNA_CABLE => NamedKey::TVAntennaCable,
KEYCODE_TV_INPUT => NamedKey::TVInput,
KEYCODE_TV_INPUT_HDMI_1 => NamedKey::TVInputHDMI1,
KEYCODE_TV_INPUT_HDMI_2 => NamedKey::TVInputHDMI2,
KEYCODE_TV_INPUT_HDMI_3 => NamedKey::TVInputHDMI3,
KEYCODE_TV_INPUT_HDMI_4 => NamedKey::TVInputHDMI4,
KEYCODE_TV_INPUT_COMPOSITE_1 => NamedKey::TVInputComposite1,
KEYCODE_TV_INPUT_COMPOSITE_2 => NamedKey::TVInputComposite2,
KEYCODE_TV_INPUT_COMPONENT_1 => NamedKey::TVInputComponent1,
KEYCODE_TV_INPUT_COMPONENT_2 => NamedKey::TVInputComponent2,
KEYCODE_TV_INPUT_VGA_1 => NamedKey::TVInputVGA1,
KEYCODE_TV_AUDIO_DESCRIPTION => NamedKey::TVAudioDescription,
KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP => NamedKey::TVAudioDescriptionMixUp,
KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN => NamedKey::TVAudioDescriptionMixDown,
KEYCODE_TV_CONTENTS_MENU => NamedKey::TVContentsMenu,
KEYCODE_TV_MEDIA_CONTEXT_MENU => NamedKey::TVMediaContext,
KEYCODE_TV_TIMER_PROGRAMMING => NamedKey::TVTimer,
KEYCODE_DVR => NamedKey::DVR,
KEYCODE_STB_INPUT => NamedKey::STBInput,
KEYCODE_AVR_INPUT => NamedKey::AVRInput,
KEYCODE_3D_MODE => NamedKey::TV3DMode,
KEYCODE_PROG_RED => NamedKey::ColorF0Red,
KEYCODE_PROG_GREEN => NamedKey::ColorF1Green,
KEYCODE_PROG_YELLOW => NamedKey::ColorF2Yellow,
KEYCODE_PROG_BLUE => NamedKey::ColorF3Blue,
KEYCODE_11 => NamedKey::Key11,
KEYCODE_12 => NamedKey::Key12,
KEYCODE_PRINT => NamedKey::Print,
KEYCODE_APP_SWITCH => NamedKey::AppSwitch,
KEYCODE_CALL => NamedKey::Call,
KEYCODE_ENDCALL => NamedKey::EndCall,
KEYCODE_CAMERA => NamedKey::Camera,
KEYCODE_FOCUS => NamedKey::CameraFocus,
KEYCODE_HEADSETHOOK => NamedKey::HeadsetHook,
KEYCODE_NOTIFICATION => NamedKey::Notification,
KEYCODE_MANNER_MODE => NamedKey::MannerMode,
KEYCODE_PAIRING => NamedKey::Pairing,
_ => NamedKey::Unidentified,
}
}
pub fn keycode_to_location(keycode: i32) -> Location {
match keycode {
KEYCODE_SHIFT_LEFT | KEYCODE_CTRL_LEFT | KEYCODE_ALT_LEFT | KEYCODE_META_LEFT => {
Location::Left
}
KEYCODE_SHIFT_RIGHT | KEYCODE_CTRL_RIGHT | KEYCODE_ALT_RIGHT | KEYCODE_META_RIGHT => {
Location::Right
}
KEYCODE_NUMPAD_0..=KEYCODE_NUMPAD_RIGHT_PAREN => Location::Numpad,
_ => Location::Standard,
}
}