From a89d052a55e1f2f50ed7bfb01a750cadce2a20e9 Mon Sep 17 00:00:00 2001 From: jtroo Date: Sun, 10 Nov 2024 00:21:51 -0800 Subject: [PATCH] simplify mapping to transmute --- parser/src/keys/mappings.rs | 1361 +---------------------------------- 1 file changed, 2 insertions(+), 1359 deletions(-) diff --git a/parser/src/keys/mappings.rs b/parser/src/keys/mappings.rs index 15aa7cc98..43c41beb4 100644 --- a/parser/src/keys/mappings.rs +++ b/parser/src/keys/mappings.rs @@ -3,1363 +3,13 @@ use super::OsCode; impl From for OsCode { fn from(item: KeyCode) -> Self { - match item { - KeyCode::Escape => OsCode::KEY_ESC, - KeyCode::Kb1 => OsCode::KEY_1, - KeyCode::Kb2 => OsCode::KEY_2, - KeyCode::Kb3 => OsCode::KEY_3, - KeyCode::Kb4 => OsCode::KEY_4, - KeyCode::Kb5 => OsCode::KEY_5, - KeyCode::Kb6 => OsCode::KEY_6, - KeyCode::Kb7 => OsCode::KEY_7, - KeyCode::Kb8 => OsCode::KEY_8, - KeyCode::Kb9 => OsCode::KEY_9, - KeyCode::Kb0 => OsCode::KEY_0, - KeyCode::Minus => OsCode::KEY_MINUS, - KeyCode::Equal => OsCode::KEY_EQUAL, - KeyCode::BSpace => OsCode::KEY_BACKSPACE, - KeyCode::Tab => OsCode::KEY_TAB, - KeyCode::Q => OsCode::KEY_Q, - KeyCode::W => OsCode::KEY_W, - KeyCode::E => OsCode::KEY_E, - KeyCode::R => OsCode::KEY_R, - KeyCode::T => OsCode::KEY_T, - KeyCode::Y => OsCode::KEY_Y, - KeyCode::U => OsCode::KEY_U, - KeyCode::I => OsCode::KEY_I, - KeyCode::O => OsCode::KEY_O, - KeyCode::P => OsCode::KEY_P, - KeyCode::LBracket => OsCode::KEY_LEFTBRACE, - KeyCode::RBracket => OsCode::KEY_RIGHTBRACE, - KeyCode::Enter => OsCode::KEY_ENTER, - KeyCode::LCtrl => OsCode::KEY_LEFTCTRL, - KeyCode::A => OsCode::KEY_A, - KeyCode::S => OsCode::KEY_S, - KeyCode::D => OsCode::KEY_D, - KeyCode::F => OsCode::KEY_F, - KeyCode::G => OsCode::KEY_G, - KeyCode::H => OsCode::KEY_H, - KeyCode::J => OsCode::KEY_J, - KeyCode::K => OsCode::KEY_K, - KeyCode::L => OsCode::KEY_L, - KeyCode::SColon => OsCode::KEY_SEMICOLON, - KeyCode::Quote => OsCode::KEY_APOSTROPHE, - KeyCode::Grave => OsCode::KEY_GRAVE, - KeyCode::LShift => OsCode::KEY_LEFTSHIFT, - KeyCode::Bslash => OsCode::KEY_BACKSLASH, - KeyCode::Z => OsCode::KEY_Z, - KeyCode::X => OsCode::KEY_X, - KeyCode::C => OsCode::KEY_C, - KeyCode::V => OsCode::KEY_V, - KeyCode::B => OsCode::KEY_B, - KeyCode::N => OsCode::KEY_N, - KeyCode::M => OsCode::KEY_M, - KeyCode::Comma => OsCode::KEY_COMMA, - KeyCode::Dot => OsCode::KEY_DOT, - KeyCode::Slash => OsCode::KEY_SLASH, - KeyCode::RShift => OsCode::KEY_RIGHTSHIFT, - KeyCode::KpAsterisk => OsCode::KEY_KPASTERISK, - KeyCode::LAlt => OsCode::KEY_LEFTALT, - KeyCode::Space => OsCode::KEY_SPACE, - KeyCode::CapsLock => OsCode::KEY_CAPSLOCK, - KeyCode::F1 => OsCode::KEY_F1, - KeyCode::F2 => OsCode::KEY_F2, - KeyCode::F3 => OsCode::KEY_F3, - KeyCode::F4 => OsCode::KEY_F4, - KeyCode::F5 => OsCode::KEY_F5, - KeyCode::F6 => OsCode::KEY_F6, - KeyCode::F7 => OsCode::KEY_F7, - KeyCode::F8 => OsCode::KEY_F8, - KeyCode::F9 => OsCode::KEY_F9, - KeyCode::F10 => OsCode::KEY_F10, - KeyCode::NumLock => OsCode::KEY_NUMLOCK, - KeyCode::Clear => OsCode::KEY_CLEAR, - KeyCode::ScrollLock => OsCode::KEY_SCROLLLOCK, - KeyCode::Kp7 => OsCode::KEY_KP7, - KeyCode::Kp8 => OsCode::KEY_KP8, - KeyCode::Kp9 => OsCode::KEY_KP9, - KeyCode::KpMinus => OsCode::KEY_KPMINUS, - KeyCode::Kp4 => OsCode::KEY_KP4, - KeyCode::Kp5 => OsCode::KEY_KP5, - KeyCode::Kp6 => OsCode::KEY_KP6, - KeyCode::KpPlus => OsCode::KEY_KPPLUS, - KeyCode::Kp1 => OsCode::KEY_KP1, - KeyCode::Kp2 => OsCode::KEY_KP2, - KeyCode::Kp3 => OsCode::KEY_KP3, - KeyCode::Kp0 => OsCode::KEY_KP0, - KeyCode::KpDot => OsCode::KEY_KPDOT, - KeyCode::F11 => OsCode::KEY_F11, - KeyCode::F12 => OsCode::KEY_F12, - KeyCode::KpEnter => OsCode::KEY_KPENTER, - KeyCode::RCtrl => OsCode::KEY_RIGHTCTRL, - KeyCode::KpSlash => OsCode::KEY_KPSLASH, - KeyCode::SysReq => OsCode::KEY_SYSRQ, - KeyCode::RAlt => OsCode::KEY_RIGHTALT, - KeyCode::Home => OsCode::KEY_HOME, - KeyCode::Up => OsCode::KEY_UP, - KeyCode::PgUp => OsCode::KEY_PAGEUP, - KeyCode::Left => OsCode::KEY_LEFT, - KeyCode::Right => OsCode::KEY_RIGHT, - KeyCode::End => OsCode::KEY_END, - KeyCode::Down => OsCode::KEY_DOWN, - KeyCode::PgDown => OsCode::KEY_PAGEDOWN, - KeyCode::Insert => OsCode::KEY_INSERT, - KeyCode::Delete => OsCode::KEY_DELETE, - KeyCode::Mute => OsCode::KEY_MUTE, - KeyCode::VolDown => OsCode::KEY_VOLUMEDOWN, - KeyCode::VolUp => OsCode::KEY_VOLUMEUP, - KeyCode::Power => OsCode::KEY_POWER, - KeyCode::KpEqual => OsCode::KEY_KPEQUAL, - KeyCode::Pause => OsCode::KEY_PAUSE, - KeyCode::KpComma => OsCode::KEY_KPCOMMA, - KeyCode::LGui => OsCode::KEY_LEFTMETA, - KeyCode::RGui => OsCode::KEY_RIGHTMETA, - KeyCode::Stop => OsCode::KEY_STOP, - KeyCode::Again => OsCode::KEY_AGAIN, - KeyCode::Undo => OsCode::KEY_UNDO, - KeyCode::Copy => OsCode::KEY_COPY, - KeyCode::Paste => OsCode::KEY_PASTE, - KeyCode::Find => OsCode::KEY_FIND, - KeyCode::Cut => OsCode::KEY_CUT, - KeyCode::Help => OsCode::KEY_HELP, - KeyCode::Menu => OsCode::KEY_MENU, - KeyCode::MediaCalc => OsCode::KEY_CALC, - KeyCode::MediaSleep => OsCode::KEY_SLEEP, - KeyCode::MediaWWW => OsCode::KEY_WWW, - KeyCode::MediaCoffee => OsCode::KEY_COFFEE, - KeyCode::MediaBack => OsCode::KEY_BACK, - KeyCode::MediaForward => OsCode::KEY_FORWARD, - KeyCode::MediaEjectCD => OsCode::KEY_EJECTCD, - KeyCode::MediaNextSong => OsCode::KEY_NEXTSONG, - KeyCode::MediaPlayPause => OsCode::KEY_PLAYPAUSE, - KeyCode::MediaPreviousSong => OsCode::KEY_PREVIOUSSONG, - KeyCode::MediaStopCD => OsCode::KEY_STOPCD, - KeyCode::MediaRefresh => OsCode::KEY_REFRESH, - KeyCode::MediaEdit => OsCode::KEY_EDIT, - KeyCode::MediaScrollUp => OsCode::KEY_SCROLLUP, - KeyCode::MediaScrollDown => OsCode::KEY_SCROLLDOWN, - KeyCode::F13 => OsCode::KEY_F13, - KeyCode::F14 => OsCode::KEY_F14, - KeyCode::F15 => OsCode::KEY_F15, - KeyCode::F16 => OsCode::KEY_F16, - KeyCode::F17 => OsCode::KEY_F17, - KeyCode::F18 => OsCode::KEY_F18, - KeyCode::F19 => OsCode::KEY_F19, - KeyCode::F20 => OsCode::KEY_F20, - KeyCode::F21 => OsCode::KEY_F21, - KeyCode::F22 => OsCode::KEY_F22, - KeyCode::F23 => OsCode::KEY_F23, - KeyCode::F24 => OsCode::KEY_F24, - KeyCode::Wakeup => OsCode::KEY_WAKEUP, - KeyCode::BrightnessUp => OsCode::KEY_BRIGHTNESSUP, - KeyCode::BrightnessDown => OsCode::KEY_BRIGHTNESSDOWN, - KeyCode::KbdIllumUp => OsCode::KEY_KBDILLUMUP, - KeyCode::KbdIllumDown => OsCode::KEY_KBDILLUMDOWN, - KeyCode::Lang1 => OsCode::KEY_HANGEUL, - KeyCode::Lang2 => OsCode::KEY_HANJA, - KeyCode::NonUsBslash => OsCode::KEY_102ND, - KeyCode::PScreen => OsCode::KEY_PRINT, - KeyCode::Application => OsCode::KEY_COMPOSE, - KeyCode::AltErase => OsCode::KEY_ALTERASE, - KeyCode::Cancel => OsCode::KEY_CANCEL, - KeyCode::MediaMute => OsCode::KEY_MICMUTE, - KeyCode::Intl1 => OsCode::KEY_RO, - KeyCode::Intl3 => OsCode::KEY_YEN, - KeyCode::K0xAA => OsCode::KEY_MEDIA, - KeyCode::K0xAB => OsCode::KEY_EMAIL, - KeyCode::K0xAC => OsCode::KEY_PLAYER, - KeyCode::K0xAD => OsCode::KEY_HOMEPAGE, - KeyCode::K0xAE => OsCode::KEY_MAIL, - KeyCode::K0xAF => OsCode::KEY_MUHENKAN, - KeyCode::K0xB0 => OsCode::KEY_HENKAN, - KeyCode::K0xB1 => OsCode::KEY_KATAKANA, - KeyCode::K0xB2 => OsCode::KEY_KATAKANAHIRAGANA, - KeyCode::K0xB3 => OsCode::KEY_HIRAGANA, - _ => haphazard_kc_to_osc_mappings(item), - } + unsafe { std::mem::transmute(item) } } } impl From for KeyCode { fn from(item: OsCode) -> KeyCode { - match item { - OsCode::KEY_ESC => KeyCode::Escape, - OsCode::KEY_1 => KeyCode::Kb1, - OsCode::KEY_2 => KeyCode::Kb2, - OsCode::KEY_3 => KeyCode::Kb3, - OsCode::KEY_4 => KeyCode::Kb4, - OsCode::KEY_5 => KeyCode::Kb5, - OsCode::KEY_6 => KeyCode::Kb6, - OsCode::KEY_7 => KeyCode::Kb7, - OsCode::KEY_8 => KeyCode::Kb8, - OsCode::KEY_9 => KeyCode::Kb9, - OsCode::KEY_0 => KeyCode::Kb0, - OsCode::KEY_MINUS => KeyCode::Minus, - OsCode::KEY_EQUAL => KeyCode::Equal, - OsCode::KEY_BACKSPACE => KeyCode::BSpace, - OsCode::KEY_TAB => KeyCode::Tab, - OsCode::KEY_Q => KeyCode::Q, - OsCode::KEY_W => KeyCode::W, - OsCode::KEY_E => KeyCode::E, - OsCode::KEY_R => KeyCode::R, - OsCode::KEY_T => KeyCode::T, - OsCode::KEY_Y => KeyCode::Y, - OsCode::KEY_U => KeyCode::U, - OsCode::KEY_I => KeyCode::I, - OsCode::KEY_O => KeyCode::O, - OsCode::KEY_P => KeyCode::P, - OsCode::KEY_LEFTBRACE => KeyCode::LBracket, - OsCode::KEY_RIGHTBRACE => KeyCode::RBracket, - OsCode::KEY_ENTER => KeyCode::Enter, - OsCode::KEY_LEFTCTRL => KeyCode::LCtrl, - OsCode::KEY_A => KeyCode::A, - OsCode::KEY_S => KeyCode::S, - OsCode::KEY_D => KeyCode::D, - OsCode::KEY_F => KeyCode::F, - OsCode::KEY_G => KeyCode::G, - OsCode::KEY_H => KeyCode::H, - OsCode::KEY_J => KeyCode::J, - OsCode::KEY_K => KeyCode::K, - OsCode::KEY_L => KeyCode::L, - OsCode::KEY_SEMICOLON => KeyCode::SColon, - OsCode::KEY_APOSTROPHE => KeyCode::Quote, - OsCode::KEY_GRAVE => KeyCode::Grave, - OsCode::KEY_LEFTSHIFT => KeyCode::LShift, - OsCode::KEY_BACKSLASH => KeyCode::Bslash, - OsCode::KEY_Z => KeyCode::Z, - OsCode::KEY_X => KeyCode::X, - OsCode::KEY_C => KeyCode::C, - OsCode::KEY_V => KeyCode::V, - OsCode::KEY_B => KeyCode::B, - OsCode::KEY_N => KeyCode::N, - OsCode::KEY_M => KeyCode::M, - OsCode::KEY_COMMA => KeyCode::Comma, - OsCode::KEY_DOT => KeyCode::Dot, - OsCode::KEY_SLASH => KeyCode::Slash, - OsCode::KEY_RIGHTSHIFT => KeyCode::RShift, - OsCode::KEY_KPASTERISK => KeyCode::KpAsterisk, - OsCode::KEY_LEFTALT => KeyCode::LAlt, - OsCode::KEY_SPACE => KeyCode::Space, - OsCode::KEY_CAPSLOCK => KeyCode::CapsLock, - OsCode::KEY_F1 => KeyCode::F1, - OsCode::KEY_F2 => KeyCode::F2, - OsCode::KEY_F3 => KeyCode::F3, - OsCode::KEY_F4 => KeyCode::F4, - OsCode::KEY_F5 => KeyCode::F5, - OsCode::KEY_F6 => KeyCode::F6, - OsCode::KEY_F7 => KeyCode::F7, - OsCode::KEY_F8 => KeyCode::F8, - OsCode::KEY_F9 => KeyCode::F9, - OsCode::KEY_F10 => KeyCode::F10, - OsCode::KEY_NUMLOCK => KeyCode::NumLock, - OsCode::KEY_CLEAR => KeyCode::Clear, - OsCode::KEY_SCROLLLOCK => KeyCode::ScrollLock, - OsCode::KEY_KP7 => KeyCode::Kp7, - OsCode::KEY_KP8 => KeyCode::Kp8, - OsCode::KEY_KP9 => KeyCode::Kp9, - OsCode::KEY_KPMINUS => KeyCode::KpMinus, - OsCode::KEY_KP4 => KeyCode::Kp4, - OsCode::KEY_KP5 => KeyCode::Kp5, - OsCode::KEY_KP6 => KeyCode::Kp6, - OsCode::KEY_KPPLUS => KeyCode::KpPlus, - OsCode::KEY_KP1 => KeyCode::Kp1, - OsCode::KEY_KP2 => KeyCode::Kp2, - OsCode::KEY_KP3 => KeyCode::Kp3, - OsCode::KEY_KP0 => KeyCode::Kp0, - OsCode::KEY_KPDOT => KeyCode::KpDot, - OsCode::KEY_F11 => KeyCode::F11, - OsCode::KEY_F12 => KeyCode::F12, - OsCode::KEY_KPENTER => KeyCode::KpEnter, - OsCode::KEY_RIGHTCTRL => KeyCode::RCtrl, - OsCode::KEY_KPSLASH => KeyCode::KpSlash, - OsCode::KEY_SYSRQ => KeyCode::SysReq, - OsCode::KEY_RIGHTALT => KeyCode::RAlt, - OsCode::KEY_HOME => KeyCode::Home, - OsCode::KEY_UP => KeyCode::Up, - OsCode::KEY_PAGEUP => KeyCode::PgUp, - OsCode::KEY_LEFT => KeyCode::Left, - OsCode::KEY_RIGHT => KeyCode::Right, - OsCode::KEY_END => KeyCode::End, - OsCode::KEY_DOWN => KeyCode::Down, - OsCode::KEY_PAGEDOWN => KeyCode::PgDown, - OsCode::KEY_INSERT => KeyCode::Insert, - OsCode::KEY_DELETE => KeyCode::Delete, - OsCode::KEY_MUTE => KeyCode::Mute, - OsCode::KEY_VOLUMEDOWN => KeyCode::VolDown, - OsCode::KEY_VOLUMEUP => KeyCode::VolUp, - OsCode::KEY_POWER => KeyCode::Power, - OsCode::KEY_KPEQUAL => KeyCode::KpEqual, - OsCode::KEY_PAUSE => KeyCode::Pause, - OsCode::KEY_KPCOMMA => KeyCode::KpComma, - OsCode::KEY_LEFTMETA => KeyCode::LGui, - OsCode::KEY_RIGHTMETA => KeyCode::RGui, - OsCode::KEY_STOP => KeyCode::Stop, - OsCode::KEY_AGAIN => KeyCode::Again, - OsCode::KEY_UNDO => KeyCode::Undo, - OsCode::KEY_COPY => KeyCode::Copy, - OsCode::KEY_PASTE => KeyCode::Paste, - OsCode::KEY_FIND => KeyCode::Find, - OsCode::KEY_CUT => KeyCode::Cut, - OsCode::KEY_HELP => KeyCode::Help, - OsCode::KEY_MENU => KeyCode::Menu, - OsCode::KEY_CALC => KeyCode::MediaCalc, - OsCode::KEY_SLEEP => KeyCode::MediaSleep, - OsCode::KEY_WWW => KeyCode::MediaWWW, - OsCode::KEY_COFFEE => KeyCode::MediaCoffee, - OsCode::KEY_BACK => KeyCode::MediaBack, - OsCode::KEY_FORWARD => KeyCode::MediaForward, - OsCode::KEY_EJECTCD => KeyCode::MediaEjectCD, - OsCode::KEY_NEXTSONG => KeyCode::MediaNextSong, - OsCode::KEY_PLAYPAUSE => KeyCode::MediaPlayPause, - OsCode::KEY_PREVIOUSSONG => KeyCode::MediaPreviousSong, - OsCode::KEY_STOPCD => KeyCode::MediaStopCD, - OsCode::KEY_REFRESH => KeyCode::MediaRefresh, - OsCode::KEY_EDIT => KeyCode::MediaEdit, - OsCode::KEY_SCROLLUP => KeyCode::MediaScrollUp, - OsCode::KEY_SCROLLDOWN => KeyCode::MediaScrollDown, - OsCode::KEY_F13 => KeyCode::F13, - OsCode::KEY_F14 => KeyCode::F14, - OsCode::KEY_F15 => KeyCode::F15, - OsCode::KEY_F16 => KeyCode::F16, - OsCode::KEY_F17 => KeyCode::F17, - OsCode::KEY_F18 => KeyCode::F18, - OsCode::KEY_F19 => KeyCode::F19, - OsCode::KEY_F20 => KeyCode::F20, - OsCode::KEY_F21 => KeyCode::F21, - OsCode::KEY_F22 => KeyCode::F22, - OsCode::KEY_F23 => KeyCode::F23, - OsCode::KEY_F24 => KeyCode::F24, - OsCode::KEY_WAKEUP => KeyCode::Wakeup, - OsCode::KEY_BRIGHTNESSUP => KeyCode::BrightnessUp, - OsCode::KEY_BRIGHTNESSDOWN => KeyCode::BrightnessDown, - OsCode::KEY_KBDILLUMUP => KeyCode::KbdIllumUp, - OsCode::KEY_KBDILLUMDOWN => KeyCode::KbdIllumDown, - OsCode::KEY_HANGEUL => KeyCode::Lang1, - OsCode::KEY_HANJA => KeyCode::Lang2, - OsCode::KEY_102ND => KeyCode::NonUsBslash, - OsCode::KEY_PRINT => KeyCode::PScreen, - OsCode::KEY_COMPOSE => KeyCode::Application, - OsCode::KEY_ALTERASE => KeyCode::AltErase, - OsCode::KEY_CANCEL => KeyCode::Cancel, - OsCode::KEY_MICMUTE => KeyCode::MediaMute, - OsCode::KEY_RO => KeyCode::Intl1, - OsCode::KEY_YEN => KeyCode::Intl3, - OsCode::KEY_MEDIA => KeyCode::K0xAA, - OsCode::KEY_EMAIL => KeyCode::K0xAB, - OsCode::KEY_PLAYER => KeyCode::K0xAC, - OsCode::KEY_HOMEPAGE => KeyCode::K0xAD, - OsCode::KEY_MAIL => KeyCode::K0xAE, - OsCode::KEY_MUHENKAN => KeyCode::K0xAF, - OsCode::KEY_HENKAN => KeyCode::K0xB0, - OsCode::KEY_KATAKANA => KeyCode::K0xB1, - OsCode::KEY_KATAKANAHIRAGANA => KeyCode::K0xB2, - OsCode::KEY_HIRAGANA => KeyCode::K0xB3, - _ => haphazard_osc_to_kc_mappings(item), - } - } -} - -fn haphazard_osc_to_kc_mappings(osc: OsCode) -> KeyCode { - match osc { - OsCode::KEY_252 => KeyCode::K252, - OsCode::KEY_253 => KeyCode::K253, - OsCode::KEY_254 => KeyCode::K254, - OsCode::KEY_255 => KeyCode::K255, - OsCode::BTN_0 => KeyCode::K256, - OsCode::BTN_1 => KeyCode::K257, - OsCode::BTN_2 => KeyCode::K258, - OsCode::BTN_3 => KeyCode::K259, - OsCode::BTN_4 => KeyCode::K260, - OsCode::BTN_5 => KeyCode::K261, - OsCode::BTN_6 => KeyCode::K262, - OsCode::BTN_7 => KeyCode::K263, - OsCode::BTN_8 => KeyCode::K264, - OsCode::BTN_9 => KeyCode::K265, - OsCode::KEY_266 => KeyCode::K266, - OsCode::KEY_267 => KeyCode::K267, - OsCode::KEY_268 => KeyCode::K268, - OsCode::KEY_269 => KeyCode::K269, - OsCode::KEY_270 => KeyCode::K270, - OsCode::KEY_271 => KeyCode::K271, - OsCode::BTN_LEFT => KeyCode::K272, - OsCode::BTN_RIGHT => KeyCode::K273, - OsCode::BTN_MIDDLE => KeyCode::K274, - OsCode::BTN_SIDE => KeyCode::K275, - OsCode::BTN_EXTRA => KeyCode::K276, - OsCode::BTN_FORWARD => KeyCode::K277, - OsCode::BTN_BACK => KeyCode::K278, - OsCode::BTN_TASK => KeyCode::K279, - OsCode::KEY_280 => KeyCode::K280, - OsCode::KEY_281 => KeyCode::K281, - OsCode::KEY_282 => KeyCode::K282, - OsCode::KEY_283 => KeyCode::K283, - OsCode::KEY_284 => KeyCode::K284, - OsCode::KEY_285 => KeyCode::K285, - OsCode::KEY_286 => KeyCode::K286, - OsCode::KEY_287 => KeyCode::K287, - OsCode::BTN_TRIGGER => KeyCode::K288, - OsCode::BTN_THUMB => KeyCode::K289, - OsCode::BTN_THUMB2 => KeyCode::K290, - OsCode::BTN_TOP => KeyCode::K291, - OsCode::BTN_TOP2 => KeyCode::K292, - OsCode::BTN_PINKIE => KeyCode::K293, - OsCode::BTN_BASE => KeyCode::K294, - OsCode::BTN_BASE2 => KeyCode::K295, - OsCode::BTN_BASE3 => KeyCode::K296, - OsCode::BTN_BASE4 => KeyCode::K297, - OsCode::BTN_BASE5 => KeyCode::K298, - OsCode::BTN_BASE6 => KeyCode::K299, - OsCode::KEY_300 => KeyCode::K300, - OsCode::KEY_301 => KeyCode::K301, - OsCode::KEY_302 => KeyCode::K302, - OsCode::BTN_DEAD => KeyCode::K303, - OsCode::BTN_SOUTH => KeyCode::K304, - OsCode::BTN_EAST => KeyCode::K305, - OsCode::BTN_C => KeyCode::K306, - OsCode::BTN_NORTH => KeyCode::K307, - OsCode::BTN_WEST => KeyCode::K308, - OsCode::BTN_Z => KeyCode::K309, - OsCode::BTN_TL => KeyCode::K310, - OsCode::BTN_TR => KeyCode::K311, - OsCode::BTN_TL2 => KeyCode::K312, - OsCode::BTN_TR2 => KeyCode::K313, - OsCode::BTN_SELECT => KeyCode::K314, - OsCode::BTN_START => KeyCode::K315, - OsCode::BTN_MODE => KeyCode::K316, - OsCode::BTN_THUMBL => KeyCode::K317, - OsCode::BTN_THUMBR => KeyCode::K318, - OsCode::KEY_319 => KeyCode::K319, - OsCode::BTN_TOOL_PEN => KeyCode::K320, - OsCode::BTN_TOOL_RUBBER => KeyCode::K321, - OsCode::BTN_TOOL_BRUSH => KeyCode::K322, - OsCode::BTN_TOOL_PENCIL => KeyCode::K323, - OsCode::BTN_TOOL_AIRBRUSH => KeyCode::K324, - OsCode::BTN_TOOL_FINGER => KeyCode::K325, - OsCode::BTN_TOOL_MOUSE => KeyCode::K326, - OsCode::BTN_TOOL_LENS => KeyCode::K327, - OsCode::BTN_TOOL_QUINTTAP => KeyCode::K328, - OsCode::BTN_STYLUS3 => KeyCode::K329, - OsCode::BTN_TOUCH => KeyCode::K330, - OsCode::BTN_STYLUS => KeyCode::K331, - OsCode::BTN_STYLUS2 => KeyCode::K332, - OsCode::BTN_TOOL_DOUBLETAP => KeyCode::K333, - OsCode::BTN_TOOL_TRIPLETAP => KeyCode::K334, - OsCode::BTN_TOOL_QUADTAP => KeyCode::K335, - OsCode::BTN_GEAR_DOWN => KeyCode::K336, - OsCode::BTN_GEAR_UP => KeyCode::K337, - OsCode::KEY_338 => KeyCode::K338, - OsCode::KEY_339 => KeyCode::K339, - OsCode::KEY_340 => KeyCode::K340, - OsCode::KEY_341 => KeyCode::K341, - OsCode::KEY_342 => KeyCode::K342, - OsCode::KEY_343 => KeyCode::K343, - OsCode::KEY_344 => KeyCode::K344, - OsCode::KEY_345 => KeyCode::K345, - OsCode::KEY_346 => KeyCode::K346, - OsCode::KEY_347 => KeyCode::K347, - OsCode::KEY_348 => KeyCode::K348, - OsCode::KEY_349 => KeyCode::K349, - OsCode::KEY_350 => KeyCode::K350, - OsCode::KEY_351 => KeyCode::K351, - OsCode::KEY_OK => KeyCode::K352, - OsCode::KEY_SELECT => KeyCode::K353, - OsCode::KEY_GOTO => KeyCode::K354, - OsCode::KEY_POWER2 => KeyCode::K356, - OsCode::KEY_OPTION => KeyCode::K357, - OsCode::KEY_INFO => KeyCode::K358, - OsCode::KEY_TIME => KeyCode::K359, - OsCode::KEY_VENDOR => KeyCode::K360, - OsCode::KEY_ARCHIVE => KeyCode::K361, - OsCode::KEY_PROGRAM => KeyCode::K362, - OsCode::KEY_CHANNEL => KeyCode::K363, - OsCode::KEY_FAVORITES => KeyCode::K364, - OsCode::KEY_EPG => KeyCode::K365, - OsCode::KEY_PVR => KeyCode::K366, - OsCode::KEY_MHP => KeyCode::K367, - OsCode::KEY_LANGUAGE => KeyCode::K368, - OsCode::KEY_TITLE => KeyCode::K369, - OsCode::KEY_SUBTITLE => KeyCode::K370, - OsCode::KEY_ANGLE => KeyCode::K371, - OsCode::KEY_FULL_SCREEN => KeyCode::K372, - OsCode::KEY_MODE => KeyCode::K373, - OsCode::KEY_KEYBOARD => KeyCode::K374, - OsCode::KEY_ASPECT_RATIO => KeyCode::K375, - OsCode::KEY_PC => KeyCode::K376, - OsCode::KEY_TV => KeyCode::K377, - OsCode::KEY_TV2 => KeyCode::K378, - OsCode::KEY_VCR => KeyCode::K379, - OsCode::KEY_VCR2 => KeyCode::K380, - OsCode::KEY_SAT => KeyCode::K381, - OsCode::KEY_SAT2 => KeyCode::K382, - OsCode::KEY_CD => KeyCode::K383, - OsCode::KEY_TAPE => KeyCode::K384, - OsCode::KEY_RADIO => KeyCode::K385, - OsCode::KEY_TUNER => KeyCode::K386, - OsCode::KEY_PLAYER => KeyCode::K387, - OsCode::KEY_TEXT => KeyCode::K388, - OsCode::KEY_DVD => KeyCode::K389, - OsCode::KEY_AUX => KeyCode::K390, - OsCode::KEY_MP3 => KeyCode::K391, - OsCode::KEY_AUDIO => KeyCode::K392, - OsCode::KEY_VIDEO => KeyCode::K393, - OsCode::KEY_DIRECTORY => KeyCode::K394, - OsCode::KEY_LIST => KeyCode::K395, - OsCode::KEY_MEMO => KeyCode::K396, - OsCode::KEY_CALENDAR => KeyCode::K397, - OsCode::KEY_RED => KeyCode::K398, - OsCode::KEY_GREEN => KeyCode::K399, - OsCode::KEY_YELLOW => KeyCode::K400, - OsCode::KEY_BLUE => KeyCode::K401, - OsCode::KEY_CHANNELUP => KeyCode::K402, - OsCode::KEY_CHANNELDOWN => KeyCode::K403, - OsCode::KEY_FIRST => KeyCode::K404, - OsCode::KEY_LAST => KeyCode::K405, - OsCode::KEY_AB => KeyCode::K406, - OsCode::KEY_NEXT => KeyCode::K407, - OsCode::KEY_RESTART => KeyCode::K408, - OsCode::KEY_SLOW => KeyCode::K409, - OsCode::KEY_SHUFFLE => KeyCode::K410, - OsCode::KEY_BREAK => KeyCode::K411, - OsCode::KEY_PREVIOUS => KeyCode::K412, - OsCode::KEY_DIGITS => KeyCode::K413, - OsCode::KEY_TEEN => KeyCode::K414, - OsCode::KEY_TWEN => KeyCode::K415, - OsCode::KEY_VIDEOPHONE => KeyCode::K416, - OsCode::KEY_GAMES => KeyCode::K417, - OsCode::KEY_ZOOMIN => KeyCode::K418, - OsCode::KEY_ZOOMOUT => KeyCode::K419, - OsCode::KEY_ZOOMRESET => KeyCode::K420, - OsCode::KEY_WORDPROCESSOR => KeyCode::K421, - OsCode::KEY_EDITOR => KeyCode::K422, - OsCode::KEY_SPREADSHEET => KeyCode::K423, - OsCode::KEY_GRAPHICSEDITOR => KeyCode::K424, - OsCode::KEY_PRESENTATION => KeyCode::K425, - OsCode::KEY_DATABASE => KeyCode::K426, - OsCode::KEY_NEWS => KeyCode::K427, - OsCode::KEY_VOICEMAIL => KeyCode::K428, - OsCode::KEY_ADDRESSBOOK => KeyCode::K429, - OsCode::KEY_MESSENGER => KeyCode::K430, - OsCode::KEY_DISPLAYTOGGLE => KeyCode::K431, - OsCode::KEY_SPELLCHECK => KeyCode::K432, - OsCode::KEY_LOGOFF => KeyCode::K433, - OsCode::KEY_DOLLAR => KeyCode::K434, - OsCode::KEY_EURO => KeyCode::K435, - OsCode::KEY_FRAMEBACK => KeyCode::K436, - OsCode::KEY_FRAMEFORWARD => KeyCode::K437, - OsCode::KEY_CONTEXT_MENU => KeyCode::K438, - OsCode::KEY_MEDIA_REPEAT => KeyCode::K439, - OsCode::KEY_10CHANNELSUP => KeyCode::K440, - OsCode::KEY_10CHANNELSDOWN => KeyCode::K441, - OsCode::KEY_IMAGES => KeyCode::K442, - OsCode::KEY_443 => KeyCode::K443, - OsCode::KEY_444 => KeyCode::K444, - OsCode::KEY_445 => KeyCode::K445, - OsCode::KEY_446 => KeyCode::K446, - OsCode::KEY_447 => KeyCode::K447, - OsCode::KEY_DEL_EOL => KeyCode::K448, - OsCode::KEY_DEL_EOS => KeyCode::K449, - OsCode::KEY_INS_LINE => KeyCode::K450, - OsCode::KEY_DEL_LINE => KeyCode::K451, - OsCode::KEY_452 => KeyCode::K452, - OsCode::KEY_453 => KeyCode::K453, - OsCode::KEY_454 => KeyCode::K454, - OsCode::KEY_455 => KeyCode::K455, - OsCode::KEY_456 => KeyCode::K456, - OsCode::KEY_457 => KeyCode::K457, - OsCode::KEY_458 => KeyCode::K458, - OsCode::KEY_459 => KeyCode::K459, - OsCode::KEY_460 => KeyCode::K460, - OsCode::KEY_461 => KeyCode::K461, - OsCode::KEY_462 => KeyCode::K462, - OsCode::KEY_463 => KeyCode::K463, - OsCode::KEY_FN => KeyCode::K464, - OsCode::KEY_FN_ESC => KeyCode::K465, - OsCode::KEY_FN_F1 => KeyCode::K466, - OsCode::KEY_FN_F2 => KeyCode::K467, - OsCode::KEY_FN_F3 => KeyCode::K468, - OsCode::KEY_FN_F4 => KeyCode::K469, - OsCode::KEY_FN_F5 => KeyCode::K470, - OsCode::KEY_FN_F6 => KeyCode::K471, - OsCode::KEY_FN_F7 => KeyCode::K472, - OsCode::KEY_FN_F8 => KeyCode::K473, - OsCode::KEY_FN_F9 => KeyCode::K474, - OsCode::KEY_FN_F10 => KeyCode::K475, - OsCode::KEY_FN_F11 => KeyCode::K476, - OsCode::KEY_FN_F12 => KeyCode::K477, - OsCode::KEY_FN_1 => KeyCode::K478, - OsCode::KEY_FN_2 => KeyCode::K479, - OsCode::KEY_FN_D => KeyCode::K480, - OsCode::KEY_FN_E => KeyCode::K481, - OsCode::KEY_FN_F => KeyCode::K482, - OsCode::KEY_FN_S => KeyCode::K483, - OsCode::KEY_FN_B => KeyCode::K484, - OsCode::KEY_485 => KeyCode::K485, - OsCode::KEY_486 => KeyCode::K486, - OsCode::KEY_487 => KeyCode::K487, - OsCode::KEY_488 => KeyCode::K488, - OsCode::KEY_489 => KeyCode::K489, - OsCode::KEY_490 => KeyCode::K490, - OsCode::KEY_491 => KeyCode::K491, - OsCode::KEY_492 => KeyCode::K492, - OsCode::KEY_493 => KeyCode::K493, - OsCode::KEY_494 => KeyCode::K494, - OsCode::KEY_495 => KeyCode::K495, - OsCode::KEY_496 => KeyCode::K496, - OsCode::KEY_BRL_DOT1 => KeyCode::K497, - OsCode::KEY_BRL_DOT2 => KeyCode::K498, - OsCode::KEY_BRL_DOT3 => KeyCode::K499, - OsCode::KEY_BRL_DOT4 => KeyCode::K500, - OsCode::KEY_BRL_DOT5 => KeyCode::K501, - OsCode::KEY_BRL_DOT6 => KeyCode::K502, - OsCode::KEY_BRL_DOT7 => KeyCode::K503, - OsCode::KEY_BRL_DOT8 => KeyCode::K504, - OsCode::KEY_BRL_DOT9 => KeyCode::K505, - OsCode::KEY_BRL_DOT10 => KeyCode::K506, - OsCode::KEY_507 => KeyCode::K507, - OsCode::KEY_508 => KeyCode::K508, - OsCode::KEY_509 => KeyCode::K509, - OsCode::KEY_510 => KeyCode::K510, - OsCode::KEY_511 => KeyCode::K511, - OsCode::KEY_NUMERIC_0 => KeyCode::K512, - OsCode::KEY_NUMERIC_1 => KeyCode::K513, - OsCode::KEY_NUMERIC_2 => KeyCode::K514, - OsCode::KEY_NUMERIC_3 => KeyCode::K515, - OsCode::KEY_NUMERIC_4 => KeyCode::K516, - OsCode::KEY_NUMERIC_5 => KeyCode::K517, - OsCode::KEY_NUMERIC_6 => KeyCode::K518, - OsCode::KEY_NUMERIC_7 => KeyCode::K519, - OsCode::KEY_NUMERIC_8 => KeyCode::K520, - OsCode::KEY_NUMERIC_9 => KeyCode::K521, - OsCode::KEY_NUMERIC_STAR => KeyCode::K522, - OsCode::KEY_NUMERIC_POUND => KeyCode::K523, - OsCode::KEY_NUMERIC_A => KeyCode::K524, - OsCode::KEY_NUMERIC_B => KeyCode::K525, - OsCode::KEY_NUMERIC_C => KeyCode::K526, - OsCode::KEY_NUMERIC_D => KeyCode::K527, - OsCode::KEY_CAMERA_FOCUS => KeyCode::K528, - OsCode::KEY_WPS_BUTTON => KeyCode::K529, - OsCode::KEY_TOUCHPAD_TOGGLE => KeyCode::K530, - OsCode::KEY_TOUCHPAD_ON => KeyCode::K531, - OsCode::KEY_TOUCHPAD_OFF => KeyCode::K532, - OsCode::KEY_CAMERA_ZOOMIN => KeyCode::K533, - OsCode::KEY_CAMERA_ZOOMOUT => KeyCode::K534, - OsCode::KEY_CAMERA_UP => KeyCode::K535, - OsCode::KEY_CAMERA_DOWN => KeyCode::K536, - OsCode::KEY_CAMERA_LEFT => KeyCode::K537, - OsCode::KEY_CAMERA_RIGHT => KeyCode::K538, - OsCode::KEY_ATTENDANT_ON => KeyCode::K539, - OsCode::KEY_ATTENDANT_OFF => KeyCode::K540, - OsCode::KEY_ATTENDANT_TOGGLE => KeyCode::K541, - OsCode::KEY_LIGHTS_TOGGLE => KeyCode::K542, - OsCode::KEY_543 => KeyCode::K543, - OsCode::BTN_DPAD_UP => KeyCode::K544, - OsCode::BTN_DPAD_DOWN => KeyCode::K545, - OsCode::BTN_DPAD_LEFT => KeyCode::K546, - OsCode::BTN_DPAD_RIGHT => KeyCode::K547, - OsCode::KEY_548 => KeyCode::K548, - OsCode::KEY_549 => KeyCode::K549, - OsCode::KEY_550 => KeyCode::K550, - OsCode::KEY_551 => KeyCode::K551, - OsCode::KEY_552 => KeyCode::K552, - OsCode::KEY_553 => KeyCode::K553, - OsCode::KEY_554 => KeyCode::K554, - OsCode::KEY_555 => KeyCode::K555, - OsCode::KEY_556 => KeyCode::K556, - OsCode::KEY_557 => KeyCode::K557, - OsCode::KEY_558 => KeyCode::K558, - OsCode::KEY_559 => KeyCode::K559, - OsCode::KEY_ALS_TOGGLE => KeyCode::K560, - OsCode::KEY_ROTATE_LOCK_TOGGLE => KeyCode::K561, - OsCode::KEY_562 => KeyCode::K562, - OsCode::KEY_563 => KeyCode::K563, - OsCode::KEY_564 => KeyCode::K564, - OsCode::KEY_565 => KeyCode::K565, - OsCode::KEY_566 => KeyCode::K566, - OsCode::KEY_567 => KeyCode::K567, - OsCode::KEY_568 => KeyCode::K568, - OsCode::KEY_569 => KeyCode::K569, - OsCode::KEY_570 => KeyCode::K570, - OsCode::KEY_571 => KeyCode::K571, - OsCode::KEY_572 => KeyCode::K572, - OsCode::KEY_573 => KeyCode::K573, - OsCode::KEY_574 => KeyCode::K574, - OsCode::KEY_575 => KeyCode::K575, - OsCode::KEY_BUTTONCONFIG => KeyCode::K576, - OsCode::KEY_TASKMANAGER => KeyCode::K577, - OsCode::KEY_JOURNAL => KeyCode::K578, - OsCode::KEY_CONTROLPANEL => KeyCode::K579, - OsCode::KEY_APPSELECT => KeyCode::K580, - OsCode::KEY_SCREENSAVER => KeyCode::K581, - OsCode::KEY_VOICECOMMAND => KeyCode::K582, - OsCode::KEY_ASSISTANT => KeyCode::K583, - OsCode::KEY_KBD_LAYOUT_NEXT => KeyCode::K584, - OsCode::KEY_585 => KeyCode::K585, - OsCode::KEY_586 => KeyCode::K586, - OsCode::KEY_587 => KeyCode::K587, - OsCode::KEY_588 => KeyCode::K588, - OsCode::KEY_589 => KeyCode::K589, - OsCode::KEY_590 => KeyCode::K590, - OsCode::KEY_591 => KeyCode::K591, - OsCode::KEY_BRIGHTNESS_MIN => KeyCode::K592, - OsCode::KEY_BRIGHTNESS_MAX => KeyCode::K593, - OsCode::KEY_594 => KeyCode::K594, - OsCode::KEY_595 => KeyCode::K595, - OsCode::KEY_596 => KeyCode::K596, - OsCode::KEY_597 => KeyCode::K597, - OsCode::KEY_598 => KeyCode::K598, - OsCode::KEY_599 => KeyCode::K599, - OsCode::KEY_600 => KeyCode::K600, - OsCode::KEY_601 => KeyCode::K601, - OsCode::KEY_602 => KeyCode::K602, - OsCode::KEY_603 => KeyCode::K603, - OsCode::KEY_604 => KeyCode::K604, - OsCode::KEY_605 => KeyCode::K605, - OsCode::KEY_606 => KeyCode::K606, - OsCode::KEY_607 => KeyCode::K607, - OsCode::KEY_KBDINPUTASSIST_PREV => KeyCode::K608, - OsCode::KEY_KBDINPUTASSIST_NEXT => KeyCode::K609, - OsCode::KEY_KBDINPUTASSIST_PREVGROUP => KeyCode::K610, - OsCode::KEY_KBDINPUTASSIST_NEXTGROUP => KeyCode::K611, - OsCode::KEY_KBDINPUTASSIST_ACCEPT => KeyCode::K612, - OsCode::KEY_KBDINPUTASSIST_CANCEL => KeyCode::K613, - OsCode::KEY_RIGHT_UP => KeyCode::K614, - OsCode::KEY_RIGHT_DOWN => KeyCode::K615, - OsCode::KEY_LEFT_UP => KeyCode::K616, - OsCode::KEY_LEFT_DOWN => KeyCode::K617, - OsCode::KEY_ROOT_MENU => KeyCode::K618, - OsCode::KEY_MEDIA_TOP_MENU => KeyCode::K619, - OsCode::KEY_NUMERIC_11 => KeyCode::K620, - OsCode::KEY_NUMERIC_12 => KeyCode::K621, - OsCode::KEY_AUDIO_DESC => KeyCode::K622, - OsCode::KEY_3D_MODE => KeyCode::K623, - OsCode::KEY_NEXT_FAVORITE => KeyCode::K624, - OsCode::KEY_STOP_RECORD => KeyCode::K625, - OsCode::KEY_PAUSE_RECORD => KeyCode::K626, - OsCode::KEY_VOD => KeyCode::K627, - OsCode::KEY_UNMUTE => KeyCode::K628, - OsCode::KEY_FASTREVERSE => KeyCode::K629, - OsCode::KEY_SLOWREVERSE => KeyCode::K630, - OsCode::KEY_DATA => KeyCode::K631, - OsCode::KEY_ONSCREEN_KEYBOARD => KeyCode::K632, - OsCode::KEY_633 => KeyCode::K633, - OsCode::KEY_634 => KeyCode::K634, - OsCode::KEY_635 => KeyCode::K635, - OsCode::KEY_636 => KeyCode::K636, - OsCode::KEY_637 => KeyCode::K637, - OsCode::KEY_638 => KeyCode::K638, - OsCode::KEY_639 => KeyCode::K639, - OsCode::KEY_640 => KeyCode::K640, - OsCode::KEY_641 => KeyCode::K641, - OsCode::KEY_642 => KeyCode::K642, - OsCode::KEY_643 => KeyCode::K643, - OsCode::KEY_644 => KeyCode::K644, - OsCode::KEY_645 => KeyCode::K645, - OsCode::KEY_646 => KeyCode::K646, - OsCode::KEY_647 => KeyCode::K647, - OsCode::KEY_648 => KeyCode::K648, - OsCode::KEY_649 => KeyCode::K649, - OsCode::KEY_650 => KeyCode::K650, - OsCode::KEY_651 => KeyCode::K651, - OsCode::KEY_652 => KeyCode::K652, - OsCode::KEY_653 => KeyCode::K653, - OsCode::KEY_654 => KeyCode::K654, - OsCode::KEY_655 => KeyCode::K655, - OsCode::KEY_656 => KeyCode::K656, - OsCode::KEY_657 => KeyCode::K657, - OsCode::KEY_658 => KeyCode::K658, - OsCode::KEY_659 => KeyCode::K659, - OsCode::KEY_660 => KeyCode::K660, - OsCode::KEY_661 => KeyCode::K661, - OsCode::KEY_662 => KeyCode::K662, - OsCode::KEY_663 => KeyCode::K663, - OsCode::KEY_664 => KeyCode::K664, - OsCode::KEY_665 => KeyCode::K665, - OsCode::KEY_666 => KeyCode::K666, - OsCode::KEY_667 => KeyCode::K667, - OsCode::KEY_668 => KeyCode::K668, - OsCode::KEY_669 => KeyCode::K669, - OsCode::KEY_670 => KeyCode::K670, - OsCode::KEY_671 => KeyCode::K671, - OsCode::KEY_672 => KeyCode::K672, - OsCode::KEY_673 => KeyCode::K673, - OsCode::KEY_674 => KeyCode::K674, - OsCode::KEY_675 => KeyCode::K675, - OsCode::KEY_676 => KeyCode::K676, - OsCode::KEY_677 => KeyCode::K677, - OsCode::KEY_678 => KeyCode::K678, - OsCode::KEY_679 => KeyCode::K679, - OsCode::KEY_680 => KeyCode::K680, - OsCode::KEY_681 => KeyCode::K681, - OsCode::KEY_682 => KeyCode::K682, - OsCode::KEY_683 => KeyCode::K683, - OsCode::KEY_684 => KeyCode::K684, - OsCode::KEY_685 => KeyCode::K685, - OsCode::KEY_686 => KeyCode::K686, - OsCode::KEY_687 => KeyCode::K687, - OsCode::KEY_688 => KeyCode::K688, - OsCode::KEY_689 => KeyCode::K689, - OsCode::KEY_690 => KeyCode::K690, - OsCode::KEY_691 => KeyCode::K691, - OsCode::KEY_692 => KeyCode::K692, - OsCode::KEY_693 => KeyCode::K693, - OsCode::KEY_694 => KeyCode::K694, - OsCode::KEY_695 => KeyCode::K695, - OsCode::KEY_696 => KeyCode::K696, - OsCode::KEY_697 => KeyCode::K697, - OsCode::KEY_698 => KeyCode::K698, - OsCode::KEY_699 => KeyCode::K699, - OsCode::KEY_700 => KeyCode::K700, - OsCode::KEY_701 => KeyCode::K701, - OsCode::KEY_702 => KeyCode::K702, - OsCode::KEY_703 => KeyCode::K703, - OsCode::BTN_TRIGGER_HAPPY1 => KeyCode::K704, - OsCode::BTN_TRIGGER_HAPPY2 => KeyCode::K705, - OsCode::BTN_TRIGGER_HAPPY3 => KeyCode::K706, - OsCode::BTN_TRIGGER_HAPPY4 => KeyCode::K707, - OsCode::BTN_TRIGGER_HAPPY5 => KeyCode::K708, - OsCode::BTN_TRIGGER_HAPPY6 => KeyCode::K709, - OsCode::BTN_TRIGGER_HAPPY7 => KeyCode::K710, - OsCode::BTN_TRIGGER_HAPPY8 => KeyCode::K711, - OsCode::BTN_TRIGGER_HAPPY9 => KeyCode::K712, - OsCode::BTN_TRIGGER_HAPPY10 => KeyCode::K713, - OsCode::BTN_TRIGGER_HAPPY11 => KeyCode::K714, - OsCode::BTN_TRIGGER_HAPPY12 => KeyCode::K715, - OsCode::BTN_TRIGGER_HAPPY13 => KeyCode::K716, - OsCode::BTN_TRIGGER_HAPPY14 => KeyCode::K717, - OsCode::BTN_TRIGGER_HAPPY15 => KeyCode::K718, - OsCode::BTN_TRIGGER_HAPPY16 => KeyCode::K719, - OsCode::BTN_TRIGGER_HAPPY17 => KeyCode::K720, - OsCode::BTN_TRIGGER_HAPPY18 => KeyCode::K721, - OsCode::BTN_TRIGGER_HAPPY19 => KeyCode::K722, - OsCode::BTN_TRIGGER_HAPPY20 => KeyCode::K723, - OsCode::BTN_TRIGGER_HAPPY21 => KeyCode::K724, - OsCode::BTN_TRIGGER_HAPPY22 => KeyCode::K725, - OsCode::BTN_TRIGGER_HAPPY23 => KeyCode::K726, - OsCode::BTN_TRIGGER_HAPPY24 => KeyCode::K727, - OsCode::BTN_TRIGGER_HAPPY25 => KeyCode::K728, - OsCode::BTN_TRIGGER_HAPPY26 => KeyCode::K729, - OsCode::BTN_TRIGGER_HAPPY27 => KeyCode::K730, - OsCode::BTN_TRIGGER_HAPPY28 => KeyCode::K731, - OsCode::BTN_TRIGGER_HAPPY29 => KeyCode::K732, - OsCode::BTN_TRIGGER_HAPPY30 => KeyCode::K733, - OsCode::BTN_TRIGGER_HAPPY31 => KeyCode::K734, - OsCode::BTN_TRIGGER_HAPPY32 => KeyCode::K735, - OsCode::BTN_TRIGGER_HAPPY33 => KeyCode::K736, - OsCode::BTN_TRIGGER_HAPPY34 => KeyCode::K737, - OsCode::BTN_TRIGGER_HAPPY35 => KeyCode::K738, - OsCode::BTN_TRIGGER_HAPPY36 => KeyCode::K739, - OsCode::BTN_TRIGGER_HAPPY37 => KeyCode::K740, - OsCode::BTN_TRIGGER_HAPPY38 => KeyCode::K741, - OsCode::BTN_TRIGGER_HAPPY39 => KeyCode::K742, - OsCode::BTN_TRIGGER_HAPPY40 => KeyCode::K743, - OsCode::MouseWheelUp => KeyCode::MWU, - OsCode::MouseWheelDown => KeyCode::MWD, - OsCode::MouseWheelLeft => KeyCode::MWL, - OsCode::MouseWheelRight => KeyCode::MWR, - OsCode::BTN_MAX => KeyCode::K744, - _ => KeyCode::No, - } -} - -fn haphazard_kc_to_osc_mappings(kc: KeyCode) -> OsCode { - match kc { - KeyCode::K252 => OsCode::KEY_252, - KeyCode::K253 => OsCode::KEY_253, - KeyCode::K254 => OsCode::KEY_254, - KeyCode::K255 => OsCode::KEY_255, - KeyCode::K256 => OsCode::BTN_0, - KeyCode::K257 => OsCode::BTN_1, - KeyCode::K258 => OsCode::BTN_2, - KeyCode::K259 => OsCode::BTN_3, - KeyCode::K260 => OsCode::BTN_4, - KeyCode::K261 => OsCode::BTN_5, - KeyCode::K262 => OsCode::BTN_6, - KeyCode::K263 => OsCode::BTN_7, - KeyCode::K264 => OsCode::BTN_8, - KeyCode::K265 => OsCode::BTN_9, - KeyCode::K266 => OsCode::KEY_266, - KeyCode::K267 => OsCode::KEY_267, - KeyCode::K268 => OsCode::KEY_268, - KeyCode::K269 => OsCode::KEY_269, - KeyCode::K270 => OsCode::KEY_270, - KeyCode::K271 => OsCode::KEY_271, - KeyCode::K272 => OsCode::BTN_LEFT, - KeyCode::K273 => OsCode::BTN_RIGHT, - KeyCode::K274 => OsCode::BTN_MIDDLE, - KeyCode::K275 => OsCode::BTN_SIDE, - KeyCode::K276 => OsCode::BTN_EXTRA, - KeyCode::K277 => OsCode::BTN_FORWARD, - KeyCode::K278 => OsCode::BTN_BACK, - KeyCode::K279 => OsCode::BTN_TASK, - KeyCode::K280 => OsCode::KEY_280, - KeyCode::K281 => OsCode::KEY_281, - KeyCode::K282 => OsCode::KEY_282, - KeyCode::K283 => OsCode::KEY_283, - KeyCode::K284 => OsCode::KEY_284, - KeyCode::K285 => OsCode::KEY_285, - KeyCode::K286 => OsCode::KEY_286, - KeyCode::K287 => OsCode::KEY_287, - KeyCode::K288 => OsCode::BTN_TRIGGER, - KeyCode::K289 => OsCode::BTN_THUMB, - KeyCode::K290 => OsCode::BTN_THUMB2, - KeyCode::K291 => OsCode::BTN_TOP, - KeyCode::K292 => OsCode::BTN_TOP2, - KeyCode::K293 => OsCode::BTN_PINKIE, - KeyCode::K294 => OsCode::BTN_BASE, - KeyCode::K295 => OsCode::BTN_BASE2, - KeyCode::K296 => OsCode::BTN_BASE3, - KeyCode::K297 => OsCode::BTN_BASE4, - KeyCode::K298 => OsCode::BTN_BASE5, - KeyCode::K299 => OsCode::BTN_BASE6, - KeyCode::K300 => OsCode::KEY_300, - KeyCode::K301 => OsCode::KEY_301, - KeyCode::K302 => OsCode::KEY_302, - KeyCode::K303 => OsCode::BTN_DEAD, - KeyCode::K304 => OsCode::BTN_SOUTH, - KeyCode::K305 => OsCode::BTN_EAST, - KeyCode::K306 => OsCode::BTN_C, - KeyCode::K307 => OsCode::BTN_NORTH, - KeyCode::K308 => OsCode::BTN_WEST, - KeyCode::K309 => OsCode::BTN_Z, - KeyCode::K310 => OsCode::BTN_TL, - KeyCode::K311 => OsCode::BTN_TR, - KeyCode::K312 => OsCode::BTN_TL2, - KeyCode::K313 => OsCode::BTN_TR2, - KeyCode::K314 => OsCode::BTN_SELECT, - KeyCode::K315 => OsCode::BTN_START, - KeyCode::K316 => OsCode::BTN_MODE, - KeyCode::K317 => OsCode::BTN_THUMBL, - KeyCode::K318 => OsCode::BTN_THUMBR, - KeyCode::K319 => OsCode::KEY_319, - KeyCode::K320 => OsCode::BTN_TOOL_PEN, - KeyCode::K321 => OsCode::BTN_TOOL_RUBBER, - KeyCode::K322 => OsCode::BTN_TOOL_BRUSH, - KeyCode::K323 => OsCode::BTN_TOOL_PENCIL, - KeyCode::K324 => OsCode::BTN_TOOL_AIRBRUSH, - KeyCode::K325 => OsCode::BTN_TOOL_FINGER, - KeyCode::K326 => OsCode::BTN_TOOL_MOUSE, - KeyCode::K327 => OsCode::BTN_TOOL_LENS, - KeyCode::K328 => OsCode::BTN_TOOL_QUINTTAP, - KeyCode::K329 => OsCode::BTN_STYLUS3, - KeyCode::K330 => OsCode::BTN_TOUCH, - KeyCode::K331 => OsCode::BTN_STYLUS, - KeyCode::K332 => OsCode::BTN_STYLUS2, - KeyCode::K333 => OsCode::BTN_TOOL_DOUBLETAP, - KeyCode::K334 => OsCode::BTN_TOOL_TRIPLETAP, - KeyCode::K335 => OsCode::BTN_TOOL_QUADTAP, - KeyCode::K336 => OsCode::BTN_GEAR_DOWN, - KeyCode::K337 => OsCode::BTN_GEAR_UP, - KeyCode::K338 => OsCode::KEY_338, - KeyCode::K339 => OsCode::KEY_339, - KeyCode::K340 => OsCode::KEY_340, - KeyCode::K341 => OsCode::KEY_341, - KeyCode::K342 => OsCode::KEY_342, - KeyCode::K343 => OsCode::KEY_343, - KeyCode::K344 => OsCode::KEY_344, - KeyCode::K345 => OsCode::KEY_345, - KeyCode::K346 => OsCode::KEY_346, - KeyCode::K347 => OsCode::KEY_347, - KeyCode::K348 => OsCode::KEY_348, - KeyCode::K349 => OsCode::KEY_349, - KeyCode::K350 => OsCode::KEY_350, - KeyCode::K351 => OsCode::KEY_351, - KeyCode::K352 => OsCode::KEY_OK, - KeyCode::K353 => OsCode::KEY_SELECT, - KeyCode::K354 => OsCode::KEY_GOTO, - KeyCode::K356 => OsCode::KEY_POWER2, - KeyCode::K357 => OsCode::KEY_OPTION, - KeyCode::K358 => OsCode::KEY_INFO, - KeyCode::K359 => OsCode::KEY_TIME, - KeyCode::K360 => OsCode::KEY_VENDOR, - KeyCode::K361 => OsCode::KEY_ARCHIVE, - KeyCode::K362 => OsCode::KEY_PROGRAM, - KeyCode::K363 => OsCode::KEY_CHANNEL, - KeyCode::K364 => OsCode::KEY_FAVORITES, - KeyCode::K365 => OsCode::KEY_EPG, - KeyCode::K366 => OsCode::KEY_PVR, - KeyCode::K367 => OsCode::KEY_MHP, - KeyCode::K368 => OsCode::KEY_LANGUAGE, - KeyCode::K369 => OsCode::KEY_TITLE, - KeyCode::K370 => OsCode::KEY_SUBTITLE, - KeyCode::K371 => OsCode::KEY_ANGLE, - KeyCode::K372 => OsCode::KEY_FULL_SCREEN, - KeyCode::K373 => OsCode::KEY_MODE, - KeyCode::K374 => OsCode::KEY_KEYBOARD, - KeyCode::K375 => OsCode::KEY_ASPECT_RATIO, - KeyCode::K376 => OsCode::KEY_PC, - KeyCode::K377 => OsCode::KEY_TV, - KeyCode::K378 => OsCode::KEY_TV2, - KeyCode::K379 => OsCode::KEY_VCR, - KeyCode::K380 => OsCode::KEY_VCR2, - KeyCode::K381 => OsCode::KEY_SAT, - KeyCode::K382 => OsCode::KEY_SAT2, - KeyCode::K383 => OsCode::KEY_CD, - KeyCode::K384 => OsCode::KEY_TAPE, - KeyCode::K385 => OsCode::KEY_RADIO, - KeyCode::K386 => OsCode::KEY_TUNER, - KeyCode::K387 => OsCode::KEY_PLAYER, - KeyCode::K388 => OsCode::KEY_TEXT, - KeyCode::K389 => OsCode::KEY_DVD, - KeyCode::K390 => OsCode::KEY_AUX, - KeyCode::K391 => OsCode::KEY_MP3, - KeyCode::K392 => OsCode::KEY_AUDIO, - KeyCode::K393 => OsCode::KEY_VIDEO, - KeyCode::K394 => OsCode::KEY_DIRECTORY, - KeyCode::K395 => OsCode::KEY_LIST, - KeyCode::K396 => OsCode::KEY_MEMO, - KeyCode::K397 => OsCode::KEY_CALENDAR, - KeyCode::K398 => OsCode::KEY_RED, - KeyCode::K399 => OsCode::KEY_GREEN, - KeyCode::K400 => OsCode::KEY_YELLOW, - KeyCode::K401 => OsCode::KEY_BLUE, - KeyCode::K402 => OsCode::KEY_CHANNELUP, - KeyCode::K403 => OsCode::KEY_CHANNELDOWN, - KeyCode::K404 => OsCode::KEY_FIRST, - KeyCode::K405 => OsCode::KEY_LAST, - KeyCode::K406 => OsCode::KEY_AB, - KeyCode::K407 => OsCode::KEY_NEXT, - KeyCode::K408 => OsCode::KEY_RESTART, - KeyCode::K409 => OsCode::KEY_SLOW, - KeyCode::K410 => OsCode::KEY_SHUFFLE, - KeyCode::K411 => OsCode::KEY_BREAK, - KeyCode::K412 => OsCode::KEY_PREVIOUS, - KeyCode::K413 => OsCode::KEY_DIGITS, - KeyCode::K414 => OsCode::KEY_TEEN, - KeyCode::K415 => OsCode::KEY_TWEN, - KeyCode::K416 => OsCode::KEY_VIDEOPHONE, - KeyCode::K417 => OsCode::KEY_GAMES, - KeyCode::K418 => OsCode::KEY_ZOOMIN, - KeyCode::K419 => OsCode::KEY_ZOOMOUT, - KeyCode::K420 => OsCode::KEY_ZOOMRESET, - KeyCode::K421 => OsCode::KEY_WORDPROCESSOR, - KeyCode::K422 => OsCode::KEY_EDITOR, - KeyCode::K423 => OsCode::KEY_SPREADSHEET, - KeyCode::K424 => OsCode::KEY_GRAPHICSEDITOR, - KeyCode::K425 => OsCode::KEY_PRESENTATION, - KeyCode::K426 => OsCode::KEY_DATABASE, - KeyCode::K427 => OsCode::KEY_NEWS, - KeyCode::K428 => OsCode::KEY_VOICEMAIL, - KeyCode::K429 => OsCode::KEY_ADDRESSBOOK, - KeyCode::K430 => OsCode::KEY_MESSENGER, - KeyCode::K431 => OsCode::KEY_DISPLAYTOGGLE, - KeyCode::K432 => OsCode::KEY_SPELLCHECK, - KeyCode::K433 => OsCode::KEY_LOGOFF, - KeyCode::K434 => OsCode::KEY_DOLLAR, - KeyCode::K435 => OsCode::KEY_EURO, - KeyCode::K436 => OsCode::KEY_FRAMEBACK, - KeyCode::K437 => OsCode::KEY_FRAMEFORWARD, - KeyCode::K438 => OsCode::KEY_CONTEXT_MENU, - KeyCode::K439 => OsCode::KEY_MEDIA_REPEAT, - KeyCode::K440 => OsCode::KEY_10CHANNELSUP, - KeyCode::K441 => OsCode::KEY_10CHANNELSDOWN, - KeyCode::K442 => OsCode::KEY_IMAGES, - KeyCode::K443 => OsCode::KEY_443, - KeyCode::K444 => OsCode::KEY_444, - KeyCode::K445 => OsCode::KEY_445, - KeyCode::K446 => OsCode::KEY_446, - KeyCode::K447 => OsCode::KEY_447, - KeyCode::K448 => OsCode::KEY_DEL_EOL, - KeyCode::K449 => OsCode::KEY_DEL_EOS, - KeyCode::K450 => OsCode::KEY_INS_LINE, - KeyCode::K451 => OsCode::KEY_DEL_LINE, - KeyCode::K452 => OsCode::KEY_452, - KeyCode::K453 => OsCode::KEY_453, - KeyCode::K454 => OsCode::KEY_454, - KeyCode::K455 => OsCode::KEY_455, - KeyCode::K456 => OsCode::KEY_456, - KeyCode::K457 => OsCode::KEY_457, - KeyCode::K458 => OsCode::KEY_458, - KeyCode::K459 => OsCode::KEY_459, - KeyCode::K460 => OsCode::KEY_460, - KeyCode::K461 => OsCode::KEY_461, - KeyCode::K462 => OsCode::KEY_462, - KeyCode::K463 => OsCode::KEY_463, - KeyCode::K464 => OsCode::KEY_FN, - KeyCode::K465 => OsCode::KEY_FN_ESC, - KeyCode::K466 => OsCode::KEY_FN_F1, - KeyCode::K467 => OsCode::KEY_FN_F2, - KeyCode::K468 => OsCode::KEY_FN_F3, - KeyCode::K469 => OsCode::KEY_FN_F4, - KeyCode::K470 => OsCode::KEY_FN_F5, - KeyCode::K471 => OsCode::KEY_FN_F6, - KeyCode::K472 => OsCode::KEY_FN_F7, - KeyCode::K473 => OsCode::KEY_FN_F8, - KeyCode::K474 => OsCode::KEY_FN_F9, - KeyCode::K475 => OsCode::KEY_FN_F10, - KeyCode::K476 => OsCode::KEY_FN_F11, - KeyCode::K477 => OsCode::KEY_FN_F12, - KeyCode::K478 => OsCode::KEY_FN_1, - KeyCode::K479 => OsCode::KEY_FN_2, - KeyCode::K480 => OsCode::KEY_FN_D, - KeyCode::K481 => OsCode::KEY_FN_E, - KeyCode::K482 => OsCode::KEY_FN_F, - KeyCode::K483 => OsCode::KEY_FN_S, - KeyCode::K484 => OsCode::KEY_FN_B, - KeyCode::K485 => OsCode::KEY_485, - KeyCode::K486 => OsCode::KEY_486, - KeyCode::K487 => OsCode::KEY_487, - KeyCode::K488 => OsCode::KEY_488, - KeyCode::K489 => OsCode::KEY_489, - KeyCode::K490 => OsCode::KEY_490, - KeyCode::K491 => OsCode::KEY_491, - KeyCode::K492 => OsCode::KEY_492, - KeyCode::K493 => OsCode::KEY_493, - KeyCode::K494 => OsCode::KEY_494, - KeyCode::K495 => OsCode::KEY_495, - KeyCode::K496 => OsCode::KEY_496, - KeyCode::K497 => OsCode::KEY_BRL_DOT1, - KeyCode::K498 => OsCode::KEY_BRL_DOT2, - KeyCode::K499 => OsCode::KEY_BRL_DOT3, - KeyCode::K500 => OsCode::KEY_BRL_DOT4, - KeyCode::K501 => OsCode::KEY_BRL_DOT5, - KeyCode::K502 => OsCode::KEY_BRL_DOT6, - KeyCode::K503 => OsCode::KEY_BRL_DOT7, - KeyCode::K504 => OsCode::KEY_BRL_DOT8, - KeyCode::K505 => OsCode::KEY_BRL_DOT9, - KeyCode::K506 => OsCode::KEY_BRL_DOT10, - KeyCode::K507 => OsCode::KEY_507, - KeyCode::K508 => OsCode::KEY_508, - KeyCode::K509 => OsCode::KEY_509, - KeyCode::K510 => OsCode::KEY_510, - KeyCode::K511 => OsCode::KEY_511, - KeyCode::K512 => OsCode::KEY_NUMERIC_0, - KeyCode::K513 => OsCode::KEY_NUMERIC_1, - KeyCode::K514 => OsCode::KEY_NUMERIC_2, - KeyCode::K515 => OsCode::KEY_NUMERIC_3, - KeyCode::K516 => OsCode::KEY_NUMERIC_4, - KeyCode::K517 => OsCode::KEY_NUMERIC_5, - KeyCode::K518 => OsCode::KEY_NUMERIC_6, - KeyCode::K519 => OsCode::KEY_NUMERIC_7, - KeyCode::K520 => OsCode::KEY_NUMERIC_8, - KeyCode::K521 => OsCode::KEY_NUMERIC_9, - KeyCode::K522 => OsCode::KEY_NUMERIC_STAR, - KeyCode::K523 => OsCode::KEY_NUMERIC_POUND, - KeyCode::K524 => OsCode::KEY_NUMERIC_A, - KeyCode::K525 => OsCode::KEY_NUMERIC_B, - KeyCode::K526 => OsCode::KEY_NUMERIC_C, - KeyCode::K527 => OsCode::KEY_NUMERIC_D, - KeyCode::K528 => OsCode::KEY_CAMERA_FOCUS, - KeyCode::K529 => OsCode::KEY_WPS_BUTTON, - KeyCode::K530 => OsCode::KEY_TOUCHPAD_TOGGLE, - KeyCode::K531 => OsCode::KEY_TOUCHPAD_ON, - KeyCode::K532 => OsCode::KEY_TOUCHPAD_OFF, - KeyCode::K533 => OsCode::KEY_CAMERA_ZOOMIN, - KeyCode::K534 => OsCode::KEY_CAMERA_ZOOMOUT, - KeyCode::K535 => OsCode::KEY_CAMERA_UP, - KeyCode::K536 => OsCode::KEY_CAMERA_DOWN, - KeyCode::K537 => OsCode::KEY_CAMERA_LEFT, - KeyCode::K538 => OsCode::KEY_CAMERA_RIGHT, - KeyCode::K539 => OsCode::KEY_ATTENDANT_ON, - KeyCode::K540 => OsCode::KEY_ATTENDANT_OFF, - KeyCode::K541 => OsCode::KEY_ATTENDANT_TOGGLE, - KeyCode::K542 => OsCode::KEY_LIGHTS_TOGGLE, - KeyCode::K543 => OsCode::KEY_543, - KeyCode::K544 => OsCode::BTN_DPAD_UP, - KeyCode::K545 => OsCode::BTN_DPAD_DOWN, - KeyCode::K546 => OsCode::BTN_DPAD_LEFT, - KeyCode::K547 => OsCode::BTN_DPAD_RIGHT, - KeyCode::K548 => OsCode::KEY_548, - KeyCode::K549 => OsCode::KEY_549, - KeyCode::K550 => OsCode::KEY_550, - KeyCode::K551 => OsCode::KEY_551, - KeyCode::K552 => OsCode::KEY_552, - KeyCode::K553 => OsCode::KEY_553, - KeyCode::K554 => OsCode::KEY_554, - KeyCode::K555 => OsCode::KEY_555, - KeyCode::K556 => OsCode::KEY_556, - KeyCode::K557 => OsCode::KEY_557, - KeyCode::K558 => OsCode::KEY_558, - KeyCode::K559 => OsCode::KEY_559, - KeyCode::K560 => OsCode::KEY_ALS_TOGGLE, - KeyCode::K561 => OsCode::KEY_ROTATE_LOCK_TOGGLE, - KeyCode::K562 => OsCode::KEY_562, - KeyCode::K563 => OsCode::KEY_563, - KeyCode::K564 => OsCode::KEY_564, - KeyCode::K565 => OsCode::KEY_565, - KeyCode::K566 => OsCode::KEY_566, - KeyCode::K567 => OsCode::KEY_567, - KeyCode::K568 => OsCode::KEY_568, - KeyCode::K569 => OsCode::KEY_569, - KeyCode::K570 => OsCode::KEY_570, - KeyCode::K571 => OsCode::KEY_571, - KeyCode::K572 => OsCode::KEY_572, - KeyCode::K573 => OsCode::KEY_573, - KeyCode::K574 => OsCode::KEY_574, - KeyCode::K575 => OsCode::KEY_575, - KeyCode::K576 => OsCode::KEY_BUTTONCONFIG, - KeyCode::K577 => OsCode::KEY_TASKMANAGER, - KeyCode::K578 => OsCode::KEY_JOURNAL, - KeyCode::K579 => OsCode::KEY_CONTROLPANEL, - KeyCode::K580 => OsCode::KEY_APPSELECT, - KeyCode::K581 => OsCode::KEY_SCREENSAVER, - KeyCode::K582 => OsCode::KEY_VOICECOMMAND, - KeyCode::K583 => OsCode::KEY_ASSISTANT, - KeyCode::K584 => OsCode::KEY_KBD_LAYOUT_NEXT, - KeyCode::K585 => OsCode::KEY_585, - KeyCode::K586 => OsCode::KEY_586, - KeyCode::K587 => OsCode::KEY_587, - KeyCode::K588 => OsCode::KEY_588, - KeyCode::K589 => OsCode::KEY_589, - KeyCode::K590 => OsCode::KEY_590, - KeyCode::K591 => OsCode::KEY_591, - KeyCode::K592 => OsCode::KEY_BRIGHTNESS_MIN, - KeyCode::K593 => OsCode::KEY_BRIGHTNESS_MAX, - KeyCode::K594 => OsCode::KEY_594, - KeyCode::K595 => OsCode::KEY_595, - KeyCode::K596 => OsCode::KEY_596, - KeyCode::K597 => OsCode::KEY_597, - KeyCode::K598 => OsCode::KEY_598, - KeyCode::K599 => OsCode::KEY_599, - KeyCode::K600 => OsCode::KEY_600, - KeyCode::K601 => OsCode::KEY_601, - KeyCode::K602 => OsCode::KEY_602, - KeyCode::K603 => OsCode::KEY_603, - KeyCode::K604 => OsCode::KEY_604, - KeyCode::K605 => OsCode::KEY_605, - KeyCode::K606 => OsCode::KEY_606, - KeyCode::K607 => OsCode::KEY_607, - KeyCode::K608 => OsCode::KEY_KBDINPUTASSIST_PREV, - KeyCode::K609 => OsCode::KEY_KBDINPUTASSIST_NEXT, - KeyCode::K610 => OsCode::KEY_KBDINPUTASSIST_PREVGROUP, - KeyCode::K611 => OsCode::KEY_KBDINPUTASSIST_NEXTGROUP, - KeyCode::K612 => OsCode::KEY_KBDINPUTASSIST_ACCEPT, - KeyCode::K613 => OsCode::KEY_KBDINPUTASSIST_CANCEL, - KeyCode::K614 => OsCode::KEY_RIGHT_UP, - KeyCode::K615 => OsCode::KEY_RIGHT_DOWN, - KeyCode::K616 => OsCode::KEY_LEFT_UP, - KeyCode::K617 => OsCode::KEY_LEFT_DOWN, - KeyCode::K618 => OsCode::KEY_ROOT_MENU, - KeyCode::K619 => OsCode::KEY_MEDIA_TOP_MENU, - KeyCode::K620 => OsCode::KEY_NUMERIC_11, - KeyCode::K621 => OsCode::KEY_NUMERIC_12, - KeyCode::K622 => OsCode::KEY_AUDIO_DESC, - KeyCode::K623 => OsCode::KEY_3D_MODE, - KeyCode::K624 => OsCode::KEY_NEXT_FAVORITE, - KeyCode::K625 => OsCode::KEY_STOP_RECORD, - KeyCode::K626 => OsCode::KEY_PAUSE_RECORD, - KeyCode::K627 => OsCode::KEY_VOD, - KeyCode::K628 => OsCode::KEY_UNMUTE, - KeyCode::K629 => OsCode::KEY_FASTREVERSE, - KeyCode::K630 => OsCode::KEY_SLOWREVERSE, - KeyCode::K631 => OsCode::KEY_DATA, - KeyCode::K632 => OsCode::KEY_ONSCREEN_KEYBOARD, - KeyCode::K633 => OsCode::KEY_633, - KeyCode::K634 => OsCode::KEY_634, - KeyCode::K635 => OsCode::KEY_635, - KeyCode::K636 => OsCode::KEY_636, - KeyCode::K637 => OsCode::KEY_637, - KeyCode::K638 => OsCode::KEY_638, - KeyCode::K639 => OsCode::KEY_639, - KeyCode::K640 => OsCode::KEY_640, - KeyCode::K641 => OsCode::KEY_641, - KeyCode::K642 => OsCode::KEY_642, - KeyCode::K643 => OsCode::KEY_643, - KeyCode::K644 => OsCode::KEY_644, - KeyCode::K645 => OsCode::KEY_645, - KeyCode::K646 => OsCode::KEY_646, - KeyCode::K647 => OsCode::KEY_647, - KeyCode::K648 => OsCode::KEY_648, - KeyCode::K649 => OsCode::KEY_649, - KeyCode::K650 => OsCode::KEY_650, - KeyCode::K651 => OsCode::KEY_651, - KeyCode::K652 => OsCode::KEY_652, - KeyCode::K653 => OsCode::KEY_653, - KeyCode::K654 => OsCode::KEY_654, - KeyCode::K655 => OsCode::KEY_655, - KeyCode::K656 => OsCode::KEY_656, - KeyCode::K657 => OsCode::KEY_657, - KeyCode::K658 => OsCode::KEY_658, - KeyCode::K659 => OsCode::KEY_659, - KeyCode::K660 => OsCode::KEY_660, - KeyCode::K661 => OsCode::KEY_661, - KeyCode::K662 => OsCode::KEY_662, - KeyCode::K663 => OsCode::KEY_663, - KeyCode::K664 => OsCode::KEY_664, - KeyCode::K665 => OsCode::KEY_665, - KeyCode::K666 => OsCode::KEY_666, - KeyCode::K667 => OsCode::KEY_667, - KeyCode::K668 => OsCode::KEY_668, - KeyCode::K669 => OsCode::KEY_669, - KeyCode::K670 => OsCode::KEY_670, - KeyCode::K671 => OsCode::KEY_671, - KeyCode::K672 => OsCode::KEY_672, - KeyCode::K673 => OsCode::KEY_673, - KeyCode::K674 => OsCode::KEY_674, - KeyCode::K675 => OsCode::KEY_675, - KeyCode::K676 => OsCode::KEY_676, - KeyCode::K677 => OsCode::KEY_677, - KeyCode::K678 => OsCode::KEY_678, - KeyCode::K679 => OsCode::KEY_679, - KeyCode::K680 => OsCode::KEY_680, - KeyCode::K681 => OsCode::KEY_681, - KeyCode::K682 => OsCode::KEY_682, - KeyCode::K683 => OsCode::KEY_683, - KeyCode::K684 => OsCode::KEY_684, - KeyCode::K685 => OsCode::KEY_685, - KeyCode::K686 => OsCode::KEY_686, - KeyCode::K687 => OsCode::KEY_687, - KeyCode::K688 => OsCode::KEY_688, - KeyCode::K689 => OsCode::KEY_689, - KeyCode::K690 => OsCode::KEY_690, - KeyCode::K691 => OsCode::KEY_691, - KeyCode::K692 => OsCode::KEY_692, - KeyCode::K693 => OsCode::KEY_693, - KeyCode::K694 => OsCode::KEY_694, - KeyCode::K695 => OsCode::KEY_695, - KeyCode::K696 => OsCode::KEY_696, - KeyCode::K697 => OsCode::KEY_697, - KeyCode::K698 => OsCode::KEY_698, - KeyCode::K699 => OsCode::KEY_699, - KeyCode::K700 => OsCode::KEY_700, - KeyCode::K701 => OsCode::KEY_701, - KeyCode::K702 => OsCode::KEY_702, - KeyCode::K703 => OsCode::KEY_703, - KeyCode::K704 => OsCode::BTN_TRIGGER_HAPPY1, - KeyCode::K705 => OsCode::BTN_TRIGGER_HAPPY2, - KeyCode::K706 => OsCode::BTN_TRIGGER_HAPPY3, - KeyCode::K707 => OsCode::BTN_TRIGGER_HAPPY4, - KeyCode::K708 => OsCode::BTN_TRIGGER_HAPPY5, - KeyCode::K709 => OsCode::BTN_TRIGGER_HAPPY6, - KeyCode::K710 => OsCode::BTN_TRIGGER_HAPPY7, - KeyCode::K711 => OsCode::BTN_TRIGGER_HAPPY8, - KeyCode::K712 => OsCode::BTN_TRIGGER_HAPPY9, - KeyCode::K713 => OsCode::BTN_TRIGGER_HAPPY10, - KeyCode::K714 => OsCode::BTN_TRIGGER_HAPPY11, - KeyCode::K715 => OsCode::BTN_TRIGGER_HAPPY12, - KeyCode::K716 => OsCode::BTN_TRIGGER_HAPPY13, - KeyCode::K717 => OsCode::BTN_TRIGGER_HAPPY14, - KeyCode::K718 => OsCode::BTN_TRIGGER_HAPPY15, - KeyCode::K719 => OsCode::BTN_TRIGGER_HAPPY16, - KeyCode::K720 => OsCode::BTN_TRIGGER_HAPPY17, - KeyCode::K721 => OsCode::BTN_TRIGGER_HAPPY18, - KeyCode::K722 => OsCode::BTN_TRIGGER_HAPPY19, - KeyCode::K723 => OsCode::BTN_TRIGGER_HAPPY20, - KeyCode::K724 => OsCode::BTN_TRIGGER_HAPPY21, - KeyCode::K725 => OsCode::BTN_TRIGGER_HAPPY22, - KeyCode::K726 => OsCode::BTN_TRIGGER_HAPPY23, - KeyCode::K727 => OsCode::BTN_TRIGGER_HAPPY24, - KeyCode::K728 => OsCode::BTN_TRIGGER_HAPPY25, - KeyCode::K729 => OsCode::BTN_TRIGGER_HAPPY26, - KeyCode::K730 => OsCode::BTN_TRIGGER_HAPPY27, - KeyCode::K731 => OsCode::BTN_TRIGGER_HAPPY28, - KeyCode::K732 => OsCode::BTN_TRIGGER_HAPPY29, - KeyCode::K733 => OsCode::BTN_TRIGGER_HAPPY30, - KeyCode::K734 => OsCode::BTN_TRIGGER_HAPPY31, - KeyCode::K735 => OsCode::BTN_TRIGGER_HAPPY32, - KeyCode::K736 => OsCode::BTN_TRIGGER_HAPPY33, - KeyCode::K737 => OsCode::BTN_TRIGGER_HAPPY34, - KeyCode::K738 => OsCode::BTN_TRIGGER_HAPPY35, - KeyCode::K739 => OsCode::BTN_TRIGGER_HAPPY36, - KeyCode::K740 => OsCode::BTN_TRIGGER_HAPPY37, - KeyCode::K741 => OsCode::BTN_TRIGGER_HAPPY38, - KeyCode::K742 => OsCode::BTN_TRIGGER_HAPPY39, - KeyCode::K743 => OsCode::BTN_TRIGGER_HAPPY40, - KeyCode::K744 => OsCode::BTN_MAX, - KeyCode::MWU => OsCode::MouseWheelUp, - KeyCode::MWD => OsCode::MouseWheelDown, - KeyCode::MWL => OsCode::MouseWheelLeft, - KeyCode::MWR => OsCode::MouseWheelRight, - _ => OsCode::KEY_UNKNOWN, + unsafe { std::mem::transmute(item) } } } @@ -2112,10 +762,6 @@ fn roundtrip_oscode_keycode() { BTN_TRIGGER_HAPPY39, BTN_TRIGGER_HAPPY40, BTN_MAX, - // Mouse wheel events are not a part of EV_KEY, so they technically - // shouldn't be there, but they're still there, because this way - // it's easier to implement allowing to add them to defsrc without - // making tons of changes all over the codebase. MouseWheelUp, MouseWheelDown, MouseWheelLeft, @@ -2143,9 +789,6 @@ fn roundtrip_oscode_keycode() { for osc in oscs.iter().copied() { let roundtrip = OsCode::from(KeyCode::from(osc)); - if roundtrip == KEY_UNKNOWN { - continue; - } assert_eq!(osc, roundtrip); } }