pub fn virtual_key_to_make1code(value: VIRTUAL_KEY) -> Option<Make1Code> {
let result = match value {
k if k == keys::VK_BROWSER_BACK => Make1Code( 0xE06A ),
k if k == keys::VK_BROWSER_FAVORITES => Make1Code( 0xE066 ),
k if k == keys::VK_BROWSER_FORWARD => Make1Code( 0xE069 ),
k if k == keys::VK_BROWSER_HOME => Make1Code( 0xE032 ),
k if k == keys::VK_BROWSER_REFRESH => Make1Code( 0xE067 ),
k if k == keys::VK_BROWSER_SEARCH => Make1Code( 0xE065 ),
k if k == keys::VK_BROWSER_STOP => Make1Code( 0xE068 ),
k if k == keys::VK_LAUNCH_MAIL => Make1Code( 0xE06C ),
k if k == keys::VK_LAUNCH_MEDIA_SELECT => Make1Code( 0xE06D ),
k if k == keys::VK_VOLUME_MUTE => Make1Code( 0xE020 ),
k if k == keys::VK_MEDIA_PLAY_PAUSE => Make1Code( 0xE022 ),
k if k == keys::VK_MEDIA_NEXT_TRACK => Make1Code( 0xE019 ),
k if k == keys::VK_MEDIA_PREV_TRACK => Make1Code( 0xE010 ),
k if k == keys::VK_MEDIA_STOP => Make1Code( 0xE024 ),
k if k == keys::VK_VOLUME_DOWN => Make1Code( 0xE02E ),
k if k == keys::VK_VOLUME_UP => Make1Code( 0xE030 ),
k if k == keys::VK_SLEEP => Make1Code( 0xE05F ),
k if k == keys::VK_0 => Make1Code( 0x0B ),
k if k == keys::VK_1 => Make1Code( 0x02 ),
k if k == keys::VK_2 => Make1Code( 0x03 ),
k if k == keys::VK_3 => Make1Code( 0x04 ),
k if k == keys::VK_4 => Make1Code( 0x05 ),
k if k == keys::VK_5 => Make1Code( 0x06 ),
k if k == keys::VK_6 => Make1Code( 0x07 ),
k if k == keys::VK_7 => Make1Code( 0x08 ),
k if k == keys::VK_8 => Make1Code( 0x09 ),
k if k == keys::VK_9 => Make1Code( 0x0A ),
k if k == keys::VK_A => Make1Code( 0x1E ),
k if k == keys::VK_APPS => Make1Code( 0xE05D ),
k if k == keys::VK_B => Make1Code( 0x30 ),
k if k == keys::VK_OEM_5 => Make1Code( 0x2B ),
k if k == keys::VK_C => Make1Code( 0x2E ),
k if k == keys::VK_CANCEL => Make1Code( 0xE046 ),
k if k == keys::VK_CAPITAL => Make1Code( 0x3A ),
k if k == keys::VK_CLEAR => Make1Code( 0x4C ),
k if k == keys::VK_OEM_COMMA => Make1Code( 0x33 ),
k if k == keys::VK_D => Make1Code( 0x20 ),
k if k == keys::VK_OEM_MINUS => Make1Code( 0x0C ),
k if k == keys::VK_BACK => Make1Code( 0x0E ),
k if k == keys::VK_DELETE => Make1Code( 0x53 ),
k if k == keys::VK_DOWN => Make1Code( 0x50 ),
k if k == keys::VK_E => Make1Code( 0x12 ),
k if k == keys::VK_END => Make1Code( 0x4F ),
k if k == keys::VK_OEM_PLUS => Make1Code( 0x0D ),
k if k == keys::VK_ESCAPE => Make1Code( 0x01 ),
k if k == keys::VK_F => Make1Code( 0x21 ),
k if k == keys::VK_F1 => Make1Code( 0x3B ),
k if k == keys::VK_F10 => Make1Code( 0x44 ),
k if k == keys::VK_F11 => Make1Code( 0x57 ),
k if k == keys::VK_F12 => Make1Code( 0x58 ),
k if k == keys::VK_F13 => Make1Code( 0x64 ),
k if k == keys::VK_F14 => Make1Code( 0x65 ),
k if k == keys::VK_F15 => Make1Code( 0x66 ),
k if k == keys::VK_F16 => Make1Code( 0x67 ),
k if k == keys::VK_F17 => Make1Code( 0x68 ),
k if k == keys::VK_F18 => Make1Code( 0x69 ),
k if k == keys::VK_F19 => Make1Code( 0x6A ),
k if k == keys::VK_F2 => Make1Code( 0x3C ),
k if k == keys::VK_F20 => Make1Code( 0x6B ),
k if k == keys::VK_F21 => Make1Code( 0x6C ),
k if k == keys::VK_F22 => Make1Code( 0x6D ),
k if k == keys::VK_F23 => Make1Code( 0x6E ),
k if k == keys::VK_F24 => Make1Code( 0x76 ),
k if k == keys::VK_F3 => Make1Code( 0x3D ),
k if k == keys::VK_F4 => Make1Code( 0x3E ),
k if k == keys::VK_F5 => Make1Code( 0x3F ),
k if k == keys::VK_F6 => Make1Code( 0x40 ),
k if k == keys::VK_F7 => Make1Code( 0x41 ),
k if k == keys::VK_F8 => Make1Code( 0x42 ),
k if k == keys::VK_F9 => Make1Code( 0x43 ),
k if k == keys::VK_OEM_2 => Make1Code( 0x35 ),
k if k == keys::VK_G => Make1Code( 0x22 ),
k if k == keys::VK_OEM_3 => Make1Code( 0x29 ),
k if k == keys::VK_H => Make1Code( 0x23 ),
k if k == keys::VK_HELP => Make1Code( 0x63 ),
k if k == keys::VK_HOME => Make1Code( 0x47 ),
k if k == keys::VK_I => Make1Code( 0x17 ),
k if k == keys::VK_INSERT => Make1Code( 0x52 ),
k if k == keys::VK_J => Make1Code( 0x24 ),
k if k == keys::VK_K => Make1Code( 0x25 ),
k if k == keys::VK_L => Make1Code( 0x26 ),
k if k == keys::VK_LMENU => Make1Code( 0x38 ),
k if k == keys::VK_MENU => Make1Code( 0x38 ),
k if k == keys::VK_OEM_7 => Make1Code( 0x28 ),
k if k == keys::VK_LEFT => Make1Code( 0x4B ),
k if k == keys::VK_OEM_4 => Make1Code( 0x1A ),
k if k == keys::VK_CONTROL => Make1Code( 0x1D ),
k if k == keys::VK_LCONTROL => Make1Code( 0x1D ),
k if k == keys::VK_LWIN => Make1Code( 0xE05B ),
k if k == keys::VK_LSHIFT => Make1Code( 0x2A ),
k if k == keys::VK_SHIFT => Make1Code( 0x2A ),
k if k == keys::VK_M => Make1Code( 0x32 ),
k if k == keys::VK_N => Make1Code( 0x31 ),
k if k == keys::VK_OEM_102 => Make1Code( 0x56 ),
k if k == keys::VK_O => Make1Code( 0x18 ),
k if k == keys::VK_P => Make1Code( 0x19 ),
k if k == keys::VK_NEXT => Make1Code( 0x51 ),
k if k == keys::VK_PRIOR => Make1Code( 0x49 ),
k if k == keys::VK_PAUSE => Make1Code( 0xE11D ),
k if k == keys::VK_OEM_PERIOD => Make1Code( 0x34 ),
k if k == keys::VK_SNAPSHOT => Make1Code( 0x54 ),
k if k == keys::VK_Q => Make1Code( 0x10 ),
k if k == keys::VK_R => Make1Code( 0x13 ),
k if k == keys::VK_RETURN => Make1Code( 0x1C ),
k if k == keys::VK_RMENU => Make1Code( 0xE038 ),
k if k == keys::VK_RIGHT => Make1Code( 0x4D ),
k if k == keys::VK_OEM_6 => Make1Code( 0x1B ),
k if k == keys::VK_RCONTROL => Make1Code( 0xE01D ),
k if k == keys::VK_RWIN => Make1Code( 0xE05C ),
k if k == keys::VK_RSHIFT => Make1Code( 0x36 ),
k if k == keys::VK_S => Make1Code( 0x1F ),
k if k == keys::VK_SCROLL => Make1Code( 0x46 ),
k if k == keys::VK_OEM_1 => Make1Code( 0x27 ),
k if k == keys::VK_SPACE => Make1Code( 0x39 ),
k if k == keys::VK_T => Make1Code( 0x14 ),
k if k == keys::VK_TAB => Make1Code( 0x0F ),
k if k == keys::VK_U => Make1Code( 0x16 ),
k if k == keys::VK_UP => Make1Code( 0x48 ),
k if k == keys::VK_V => Make1Code( 0x2F ),
k if k == keys::VK_W => Make1Code( 0x11 ),
k if k == keys::VK_X => Make1Code( 0x2D ),
k if k == keys::VK_Y => Make1Code( 0x15 ),
k if k == keys::VK_Z => Make1Code( 0x2C ),
k if k == keys::VK_NUMPAD0 => Make1Code( 0x52 ),
k if k == keys::VK_NUMPAD1 => Make1Code( 0x4F ),
k if k == keys::VK_NUMPAD2 => Make1Code( 0x50 ),
k if k == keys::VK_NUMPAD3 => Make1Code( 0x51 ),
k if k == keys::VK_NUMPAD4 => Make1Code( 0x4B ),
k if k == keys::VK_NUMPAD5 => Make1Code( 0x4C ),
k if k == keys::VK_NUMPAD6 => Make1Code( 0x4D ),
k if k == keys::VK_NUMPAD7 => Make1Code( 0x47 ),
k if k == keys::VK_NUMPAD8 => Make1Code( 0x48 ),
k if k == keys::VK_NUMPAD9 => Make1Code( 0x49 ),
k if k == keys::VK_SUBTRACT => Make1Code( 0x4A ),
k if k == keys::VK_DIVIDE => Make1Code( 0xE035 ),
k if k == keys::VK_NUMLOCK => Make1Code( 0x45 ),
k if k == keys::VK_DECIMAL => Make1Code( 0x53 ),
k if k == keys::VK_ADD => Make1Code( 0x4E ),
k if k == keys::VK_MULTIPLY => Make1Code( 0x37 ),
k if k == keys::VK_ABNT_C1 => Make1Code( 0x73 ),
k if k == keys::VK_ABNT_C2 => Make1Code( 0x7E ),
k if k == keys::VK_DBE_FLUSHSTRING => Make1Code( 0x5D ),
k if k == keys::VK_DBE_KATAKANA => Make1Code( 0x5B ),
k if k == keys::VK_DBE_NOCODEINPUT => Make1Code( 0x62 ),
k if k == keys::VK_DBE_ROMAN => Make1Code( 0x5E ),
k if k == keys::VK_DBE_SBCSCHAR => Make1Code( 0x5F ),
k if k == keys::VK_EREOF => Make1Code( 0x5D ),
k if k == keys::VK_OEM_AUTO => Make1Code( 0x5F ),
k if k == keys::VK_OEM_BACKTAB => Make1Code( 0x5E ),
k if k == keys::VK_OEM_FINISH => Make1Code( 0x5B ),
k if k == keys::VK_OEM_JUMP => Make1Code( 0x5C ),
k if k == keys::VK_OEM_PA1 => Make1Code( 0x7B ),
k if k == keys::VK_OEM_PA3 => Make1Code( 0x6F ),
k if k == keys::VK_OEM_RESET => Make1Code( 0x71 ),
k if k == keys::VK_OEM_WSCTRL => Make1Code( 0x5A ),
k if k == keys::VK_ZOOM => Make1Code( 0x62 ),
k if k == keys::VK_LAUNCH_APP1 => Make1Code( 0xE06B ),
k if k == keys::VK_LAUNCH_APP2 => Make1Code( 0xE021 ),
_ => return None,
};
Some(result)
}
impl crate::convert::Convert<VIRTUAL_KEY, Make1Code> for crate::convert::Converter {
fn convert(value: VIRTUAL_KEY) -> Option<Make1Code> {
virtual_key_to_make1code(value)
}
}