clean up windows key mapping to use adb names codes. also fixes a few mistakes with keypad values.

This commit is contained in:
Kelvin Sherlock 2019-04-07 11:21:54 -04:00
parent 5fe0ce52b2
commit 091b020876
1 changed files with 116 additions and 112 deletions

View File

@ -1,133 +1,137 @@
/* this table is used to search for the Windows VK_* in col 1 or 2 */
/* flags bit 8 is or'ed into the VK, so we can distinguish keypad keys */
/* regardless of numlock */
int g_a2_key_to_wsym[][3] = {
{ 0x35, VK_ESCAPE, 0 },
{ 0x7a, VK_F1, 0 },
{ 0x78, VK_F2, 0 },
{ 0x63, VK_F3, 0 },
{ 0x76, VK_F4, 0 },
{ 0x60, VK_F5, 0 },
{ 0x61, VK_F6, 0 },
{ 0x62, VK_F7, 0 },
{ 0x64, VK_F8, 0 },
{ 0x65, VK_F9, 0 },
{ 0x6d, VK_F10, 0 },
{ 0x67, VK_F11, 0 },
{ 0x6f, VK_F12, 0 },
{ 0x69, VK_F13, 0 },
{ 0x6b, VK_F14, 0 },
{ 0x71, VK_F15, 0 },
{ kVK_Escape, VK_ESCAPE, 0 },
{ kVK_F1, VK_F1, 0 },
{ kVK_F2, VK_F2, 0 },
{ kVK_F3, VK_F3, 0 },
{ kVK_F4, VK_F4, 0 },
{ kVK_F5, VK_F5, 0 },
{ kVK_F6, VK_F6, 0 },
{ kVK_F7, VK_F7, 0 },
{ kVK_F8, VK_F8, 0 },
{ kVK_F9, VK_F9, 0 },
{ kVK_F10, VK_F10, 0 },
{ kVK_F11, VK_F11, 0 },
{ kVK_F12, VK_F12, 0 },
{ kVK_F13, VK_F13, 0 },
{ kVK_F14, VK_F14, 0 },
{ kVK_F15, VK_F15, 0 },
{ kVK_Reset, VK_PAUSE, VK_PAUSE+0x100 },
{ kVK_Reset, VK_CANCEL, VK_CANCEL+0x100 },
{ 0x7f, VK_PAUSE, VK_PAUSE+0x100 },
{ 0x7f, VK_CANCEL, VK_CANCEL+0x100 },
{ kVK_ANSI_Grave, VK_OEM_3, 0 }, /* '`' */
{ kVK_ANSI_1, '1', 0 },
{ kVK_ANSI_2, '2', 0 },
{ kVK_ANSI_3, '3', 0 },
{ kVK_ANSI_4, '4', 0 },
{ kVK_ANSI_5, '5', 0 },
{ kVK_ANSI_6, '6', 0 },
{ kVK_ANSI_7, '7', 0 },
{ kVK_ANSI_8, '8', 0 },
{ kVK_ANSI_9, '9', 0 },
{ kVK_ANSI_0, '0', 0 },
{ kVK_ANSI_Minus, VK_OEM_MINUS, 0 }, /* '-' */
{ kVK_ANSI_Equal, VK_OEM_PLUS, 0 }, /* '=' */
{ kVK_Delete, VK_BACK, 0 }, /* backspace */
{ kVK_Insert, VK_INSERT+0x100, 0 }, /* Insert key */
{ kVK_PageUp, VK_PRIOR+0x100, 0 }, /* pageup */
{ kVK_Home, VK_HOME+0x100, 0 }, /* KP_equal is HOME key */
{ 0x32, 0xc0, 0 }, /* '`' */
{ 0x12, '1', 0 },
{ 0x13, '2', 0 },
{ 0x14, '3', 0 },
{ 0x15, '4', 0 },
{ 0x17, '5', 0 },
{ 0x16, '6', 0 },
{ 0x1a, '7', 0 },
{ 0x1c, '8', 0 },
{ 0x19, '9', 0 },
{ 0x1d, '0', 0 },
{ 0x1b, 0xbd, 0 }, /* '-' */
{ 0x18, 0xbb, 0 }, /* '=' */
{ 0x33, VK_BACK, 0 }, /* backspace */
{ 0x72, VK_INSERT+0x100, 0 }, /* Insert key */
{ 0x74, VK_PRIOR+0x100, 0 }, /* pageup */
{ 0x47, VK_NUMLOCK, VK_NUMLOCK+0x100 }, /* clear */
{ 0x51, VK_HOME+0x100, 0 },
{ 0x4b, VK_DIVIDE, VK_DIVIDE+0x100 },
{ 0x43, VK_MULTIPLY, VK_MULTIPLY+0x100 },
{ kVK_Tab, VK_TAB, 0 },
{ kVK_ANSI_Q, 'Q', 0 },
{ kVK_ANSI_W, 'W', 0 },
{ kVK_ANSI_E, 'E', 0 },
{ kVK_ANSI_R, 'R', 0 },
{ kVK_ANSI_T, 'T', 0 },
{ kVK_ANSI_Y, 'Y', 0 },
{ kVK_ANSI_U, 'U', 0 },
{ kVK_ANSI_I, 'I', 0 },
{ kVK_ANSI_O, 'O', 0 },
{ kVK_ANSI_P, 'P', 0 },
{ kVK_ANSI_LeftBracket, VK_OEM_4, 0 }, /* [ */
{ kVK_ANSI_RightBracket, VK_OEM_6, 0 }, /* ] */
{ kVK_ANSI_Backslash, VK_OEM_5, 0 }, /* backslash, bar */
{ kVK_ForwardDelete, VK_DELETE+0x100, 0 },
{ kVK_End, VK_END+0x100, 0 },
{ kVK_PageDown, VK_NEXT+0x100, 0 },
{ 0x30, VK_TAB, 0 },
{ 0x0c, 'Q', 0 },
{ 0x0d, 'W', 0 },
{ 0x0e, 'E', 0 },
{ 0x0f, 'R', 0 },
{ 0x11, 'T', 0 },
{ 0x10, 'Y', 0 },
{ 0x20, 'U', 0 },
{ 0x22, 'I', 0 },
{ 0x1f, 'O', 0 },
{ 0x23, 'P', 0 },
{ 0x21, 0xdb, 0 }, /* [ */
{ 0x1e, 0xdd, 0 }, /* ] */
{ 0x2a, 0xdc, 0 }, /* backslash, bar */
{ 0x75, VK_DELETE+0x100, 0 },
{ 0x77, VK_END+0x100, VK_END },
{ 0x79, VK_NEXT+0x100, 0 },
{ 0x59, VK_NUMPAD7, VK_HOME },
{ 0x5b, VK_NUMPAD8, VK_UP },
{ 0x5c, VK_NUMPAD9, VK_PRIOR },
{ 0x4e, VK_SUBTRACT, VK_SUBTRACT+0x100 },
// { kVK_CapsLock, VK_CAPITAL, 0 }, // Handled specially!
{ kVK_ANSI_A, 'A', 0 },
{ kVK_ANSI_S, 'S', 0 },
{ kVK_ANSI_D, 'D', 0 },
{ kVK_ANSI_F, 'F', 0 },
{ kVK_ANSI_G, 'G', 0 },
{ kVK_ANSI_H, 'H', 0 },
{ kVK_ANSI_J, 'J', 0 },
{ kVK_ANSI_K, 'K', 0 },
{ kVK_ANSI_L, 'L', 0 },
{ kVK_ANSI_Semicolon, VK_OEM_1, 0 }, /* ; */
{ kVK_ANSI_Quote, VK_OEM_7, 0 }, /* single quote */
{ kVK_Return, VK_RETURN, 0 },
// { 0x39, VK_CAPITAL, 0 }, // Handled specially!
{ 0x00, 'A', 0 },
{ 0x01, 'S', 0 },
{ 0x02, 'D', 0 },
{ 0x03, 'F', 0 },
{ 0x05, 'G', 0 },
{ 0x04, 'H', 0 },
{ 0x26, 'J', 0 },
{ 0x28, 'K', 0 },
{ 0x25, 'L', 0 },
{ 0x29, 0xba, 0 }, /* ; */
{ 0x27, 0xde, 0 }, /* single quote */
{ 0x24, VK_RETURN, 0 },
{ 0x56, VK_NUMPAD4, VK_LEFT },
{ 0x57, VK_NUMPAD5, VK_CLEAR },
{ 0x58, VK_NUMPAD6, VK_RIGHT },
{ 0x45, VK_ADD, 0 },
{ kVK_Shift, VK_SHIFT, 0 },
{ kVK_Shift, VK_LSHIFT, 0 },
{ kVK_Shift, VK_RSHIFT, 0 },
{ kVK_ANSI_Z, 'Z', 0 },
{ kVK_ANSI_X, 'X', 0 },
{ kVK_ANSI_C, 'C', 0 },
{ kVK_ANSI_V, 'V', 0 },
{ kVK_ANSI_B, 'B', 0 },
{ kVK_ANSI_N, 'N', 0 },
{ kVK_ANSI_M, 'M', 0 },
{ kVK_ANSI_Comma, VK_OEM_COMMA, 0 }, /* , */
{ kVK_ANSI_Period, VK_OEM_PERIOD, 0 }, /* . */
{ kVK_ANSI_Slash, VK_OEM_2, 0 }, /* / */
{ 0x38, VK_SHIFT, 0 },
{ 0x38, VK_LSHIFT, 0 },
{ 0x38, VK_RSHIFT, 0 },
{ 0x06, 'Z', 0 },
{ 0x07, 'X', 0 },
{ 0x08, 'C', 0 },
{ 0x09, 'V', 0 },
{ 0x0b, 'B', 0 },
{ 0x2d, 'N', 0 },
{ 0x2e, 'M', 0 },
{ 0x2b, 0xbc, 0 }, /* , */
{ 0x2f, 0xbe, 0 }, /* . */
{ 0x2c, 0xbf, 0 }, /* / */
{ 0x3e, VK_UP+0x100, 0 },
{ 0x53, VK_NUMPAD1, VK_END },
{ 0x54, VK_NUMPAD2, VK_DOWN },
{ 0x55, VK_NUMPAD3, VK_NEXT },
{ 0x36, VK_CONTROL, VK_CONTROL+0x100 },
{ 0x36, VK_LCONTROL, VK_LCONTROL+0x100 },
{ 0x36, VK_RCONTROL, VK_RCONTROL+0x100 },
{ 0x3a, VK_SNAPSHOT+0x100, 0 },/* Opt=prntscrn or alt-r */
/* LMENU/RMENU = alt key = command*/
/* LWIN / RWIN = windows key = option */
/* weird menu key = APPS = option */
{ 0x3A, VK_LWIN, VK_LWIN+0x100 },
{ 0x3A, VK_RWIN, VK_RWIN+0x100 },
{ 0x3A, VK_APPS, VK_APPS+0x100 },
{ 0x37, VK_MENU, VK_MENU+0x100 },
{ 0x37, VK_LMENU, VK_LMENU+0x100 },
{ 0x37, VK_RMENU, VK_RMENU+0x100 },
{ kVK_Control, VK_CONTROL, VK_CONTROL+0x100 },
{ kVK_Control, VK_LCONTROL, VK_LCONTROL+0x100 },
{ kVK_Control, VK_RCONTROL, VK_RCONTROL+0x100 },
{ kVK_Option, VK_SNAPSHOT+0x100, 0 },/* Opt=prntscrn or alt-r */
{ kVK_Option, VK_LWIN, VK_LWIN+0x100 },
{ kVK_Option, VK_RWIN, VK_RWIN+0x100 },
{ kVK_Option, VK_APPS, VK_APPS+0x100 },
{ kVK_Command, VK_MENU, VK_MENU+0x100 },
{ kVK_Command, VK_LMENU, VK_LMENU+0x100 },
{ kVK_Command, VK_RMENU, VK_RMENU+0x100 },
#ifdef ACTIVEGS
{ 0x7F, VK_SCROLL,0 }, /* RESET */
{ kVK_Reset, VK_SCROLL,0 }, /* RESET */
#endif
{ 0x31, ' ', 0 },
{ 0x3b, VK_LEFT+0x100, 0 },
{ 0x3d, VK_DOWN+0x100, 0 },
{ 0x3c, VK_RIGHT+0x100, 0 },
{ 0x52, VK_NUMPAD0, VK_INSERT },
{ 0x41, VK_DECIMAL, VK_DELETE },
{ 0x4c, VK_RETURN+0x100, 0 },
{ kVK_Space, ' ', 0 },
{ kVK_LeftArrow, VK_LEFT+0x100, 0 },
{ kVK_DownArrow, VK_DOWN+0x100, 0 },
{ kVK_RightArrow, VK_RIGHT+0x100, 0 },
{ kVK_UpArrow, VK_UP+0x100, 0 },
{ kVK_ANSI_Keypad1, VK_NUMPAD1, VK_END },
{ kVK_ANSI_Keypad2, VK_NUMPAD2, VK_DOWN },
{ kVK_ANSI_Keypad3, VK_NUMPAD3, VK_NEXT },
{ kVK_ANSI_Keypad4, VK_NUMPAD4, VK_LEFT },
{ kVK_ANSI_Keypad5, VK_NUMPAD5, VK_CLEAR },
{ kVK_ANSI_Keypad6, VK_NUMPAD6, VK_RIGHT },
{ kVK_ANSI_Keypad7, VK_NUMPAD7, VK_HOME },
{ kVK_ANSI_Keypad8, VK_NUMPAD8, VK_UP },
{ kVK_ANSI_Keypad9, VK_NUMPAD9, VK_PRIOR },
{ kVK_ANSI_Keypad0, VK_NUMPAD0, VK_INSERT },
{ kVK_ANSI_KeypadDecimal, VK_DECIMAL, VK_DECIMAL },
{ kVK_ANSI_KeypadEnter, VK_RETURN+0x100, 0 },
{ kVK_ANSI_KeypadClear, VK_NUMLOCK, VK_NUMLOCK+0x100 }, /* clear */
{ kVK_ANSI_KeypadMinus, VK_SUBTRACT, VK_SUBTRACT+0x100 },
{ kVK_ANSI_KeypadPlus, VK_ADD, VK_ADD+0x100 },
{ kVK_ANSI_KeypadDivide, VK_DIVIDE, VK_DIVIDE+0x100 },
{ kVK_ANSI_KeypadMultiply, VK_MULTIPLY, VK_MULTIPLY+0x100 },
{ -1, -1, -1 }
};