use winit::event::VirtualKeyCode; pub fn convert_keycode(vkey: VirtualKeyCode) -> u8 { match vkey { VirtualKeyCode::A => 0x04, VirtualKeyCode::B => 0x05, VirtualKeyCode::C => 0x06, VirtualKeyCode::D => 0x07, VirtualKeyCode::E => 0x08, VirtualKeyCode::F => 0x09, VirtualKeyCode::G => 0x0a, VirtualKeyCode::H => 0x0b, VirtualKeyCode::I => 0x0c, VirtualKeyCode::J => 0x0d, VirtualKeyCode::K => 0x0e, VirtualKeyCode::L => 0x0f, VirtualKeyCode::M => 0x10, VirtualKeyCode::N => 0x11, VirtualKeyCode::O => 0x12, VirtualKeyCode::P => 0x13, VirtualKeyCode::Q => 0x14, VirtualKeyCode::R => 0x15, VirtualKeyCode::S => 0x16, VirtualKeyCode::T => 0x17, VirtualKeyCode::U => 0x18, VirtualKeyCode::V => 0x19, VirtualKeyCode::W => 0x1a, VirtualKeyCode::X => 0x1b, VirtualKeyCode::Y => 0x1c, VirtualKeyCode::Z => 0x1d, VirtualKeyCode::Key1 => 0x1e, VirtualKeyCode::Key2 => 0x1f, VirtualKeyCode::Key3 => 0x20, VirtualKeyCode::Key4 => 0x21, VirtualKeyCode::Key5 => 0x22, VirtualKeyCode::Key6 => 0x23, VirtualKeyCode::Key7 => 0x24, VirtualKeyCode::Key8 => 0x25, VirtualKeyCode::Key9 => 0x26, VirtualKeyCode::Key0 => 0x27, VirtualKeyCode::Return => 0x28, VirtualKeyCode::Escape => 0x29, VirtualKeyCode::Back => 0x2a, VirtualKeyCode::Tab => 0x2b, VirtualKeyCode::Space => 0x2c, VirtualKeyCode::Minus => 0x2d, VirtualKeyCode::Equals => 0x2e, VirtualKeyCode::LBracket => 0x2f, VirtualKeyCode::RBracket => 0x30, VirtualKeyCode::Backslash => 0x31, // 0x32 is a non-US keyboard key: hash and tilde VirtualKeyCode::Semicolon => 0x33, VirtualKeyCode::Apostrophe => 0x34, VirtualKeyCode::Grave => 0x35, VirtualKeyCode::Comma => 0x36, VirtualKeyCode::Period => 0x37, VirtualKeyCode::Slash => 0x38, VirtualKeyCode::Capital => 0x39, VirtualKeyCode::F1 => 0x3a, VirtualKeyCode::F2 => 0x3b, VirtualKeyCode::F3 => 0x3c, VirtualKeyCode::F4 => 0x3d, VirtualKeyCode::F5 => 0x3e, VirtualKeyCode::F6 => 0x3f, VirtualKeyCode::F7 => 0x40, VirtualKeyCode::F8 => 0x41, VirtualKeyCode::F9 => 0x42, VirtualKeyCode::F10 => 0x43, VirtualKeyCode::F11 => 0x44, VirtualKeyCode::F12 => 0x45, VirtualKeyCode::Sysrq => 0x46, VirtualKeyCode::Scroll => 0x47, VirtualKeyCode::Pause => 0x48, VirtualKeyCode::Insert => 0x49, VirtualKeyCode::Home => 0x4a, VirtualKeyCode::PageUp => 0x4b, VirtualKeyCode::Delete => 0x4c, VirtualKeyCode::End => 0x4d, VirtualKeyCode::PageDown => 0x4e, VirtualKeyCode::Right => 0x4f, VirtualKeyCode::Left => 0x50, VirtualKeyCode::Down => 0x51, VirtualKeyCode::Up => 0x52, VirtualKeyCode::Numlock => 0x53, VirtualKeyCode::NumpadDivide => 0x54, VirtualKeyCode::NumpadMultiply => 0x55, VirtualKeyCode::NumpadSubtract => 0x56, VirtualKeyCode::NumpadAdd => 0x57, VirtualKeyCode::NumpadEnter => 0x58, VirtualKeyCode::Numpad1 => 0x59, VirtualKeyCode::Numpad2 => 0x5a, VirtualKeyCode::Numpad3 => 0x5b, VirtualKeyCode::Numpad4 => 0x5c, VirtualKeyCode::Numpad5 => 0x5d, VirtualKeyCode::Numpad6 => 0x5e, VirtualKeyCode::Numpad7 => 0x5f, VirtualKeyCode::Numpad8 => 0x60, VirtualKeyCode::Numpad9 => 0x61, VirtualKeyCode::Numpad0 => 0x62, VirtualKeyCode::NumpadDecimal => 0x63, // 0x64 is a non-US keyboard key: backslash and bar VirtualKeyCode::Compose => 0x65, // 0x66 is a non-standard key: power VirtualKeyCode::NumpadEquals => 0x67, // 0x68-0x73 is extended function keys // 0x74-0xdf is a bunch of international stuff and keypad stuff VirtualKeyCode::LControl => 0xe0, VirtualKeyCode::LShift => 0xe1, VirtualKeyCode::LAlt => 0xe2, VirtualKeyCode::LWin => 0xe3, VirtualKeyCode::RControl => 0xe4, VirtualKeyCode::RShift => 0xe5, VirtualKeyCode::RAlt => 0xe6, VirtualKeyCode::RWin => 0xe7, _ => 0xff, } }