// Conversion between system key codes and strings // // in windows // VK_RETURN = "Key::KEY_RETURN" // // in linux // XK_Return = "Key::KEY_RETURN" #include "key.h" #include "misc.h" namespace D2K {namespace Key { DSKeyEntry g_ds_table[] = { {Key::KEY_NONE, Key::DSKEY_NONE}, {Key::KEY_VOID, Key::DSKEY_VOID}, {Key::KEY_LBUTTON, Key::DSKEY_LBUTTON}, {Key::KEY_RBUTTON, Key::DSKEY_RBUTTON}, {Key::KEY_CANCEL, Key::DSKEY_CANCEL}, {Key::KEY_MBUTTON, Key::DSKEY_MBUTTON}, {Key::KEY_XBUTTON1, Key::DSKEY_XBUTTON1}, {Key::KEY_XBUTTON2, Key::DSKEY_XBUTTON2}, {Key::KEY_BACK, Key::DSKEY_BACK}, {Key::KEY_TAB, Key::DSKEY_TAB}, {Key::KEY_CLEAR, Key::DSKEY_CLEAR}, {Key::KEY_RETURN, Key::DSKEY_RETURN}, {Key::KEY_SHIFT, Key::DSKEY_SHIFT}, {Key::KEY_CONTROL, Key::DSKEY_CONTROL}, {Key::KEY_MENU, Key::DSKEY_MENU}, {Key::KEY_PAUSE, Key::DSKEY_PAUSE}, {Key::KEY_CAPITAL, Key::DSKEY_CAPITAL}, {Key::KEY_KANA, Key::DSKEY_KANA}, {Key::KEY_HANGEUL, Key::DSKEY_HANGEUL}, {Key::KEY_HANGUL, Key::DSKEY_HANGUL}, {Key::KEY_JUNJA, Key::DSKEY_JUNJA}, {Key::KEY_FINAL, Key::DSKEY_FINAL}, {Key::KEY_HANJA, Key::DSKEY_HANJA}, {Key::KEY_KANJI, Key::DSKEY_KANJI}, {Key::KEY_ESCAPE, Key::DSKEY_ESCAPE}, {Key::KEY_CONVERT, Key::DSKEY_CONVERT}, {Key::KEY_NONCONVERT, Key::DSKEY_NONCONVERT}, {Key::KEY_ACCEPT, Key::DSKEY_ACCEPT}, {Key::KEY_MODECHANGE, Key::DSKEY_MODECHANGE}, {Key::KEY_SPACE, Key::DSKEY_SPACE}, {Key::KEY_PRIOR, Key::DSKEY_PRIOR}, {Key::KEY_NEXT, Key::DSKEY_NEXT}, {Key::KEY_END, Key::DSKEY_END}, {Key::KEY_HOME, Key::DSKEY_HOME}, {Key::KEY_LEFT, Key::DSKEY_LEFT}, {Key::KEY_UP, Key::DSKEY_UP}, {Key::KEY_RIGHT, Key::DSKEY_RIGHT}, {Key::KEY_DOWN, Key::DSKEY_DOWN}, {Key::KEY_SELECT, Key::DSKEY_SELECT}, {Key::KEY_PRINT, Key::DSKEY_PRINT}, {Key::KEY_EXEC, Key::DSKEY_EXEC}, {Key::KEY_SNAPSHOT, Key::DSKEY_SNAPSHOT}, {Key::KEY_INSERT, Key::DSKEY_INSERT}, {Key::KEY_DELETE, Key::DSKEY_DELETE}, {Key::KEY_HELP, Key::DSKEY_HELP}, {Key::KEY_0, Key::DSKEY_0}, {Key::KEY_1, Key::DSKEY_1}, {Key::KEY_2, Key::DSKEY_2}, {Key::KEY_3, Key::DSKEY_3}, {Key::KEY_4, Key::DSKEY_4}, {Key::KEY_5, Key::DSKEY_5}, {Key::KEY_6, Key::DSKEY_6}, {Key::KEY_7, Key::DSKEY_7}, {Key::KEY_8, Key::DSKEY_8}, {Key::KEY_9, Key::DSKEY_9}, {Key::KEY_A, Key::DSKEY_A}, {Key::KEY_B, Key::DSKEY_B}, {Key::KEY_C, Key::DSKEY_C}, {Key::KEY_D, Key::DSKEY_D}, {Key::KEY_E, Key::DSKEY_E}, {Key::KEY_F, Key::DSKEY_F}, {Key::KEY_G, Key::DSKEY_G}, {Key::KEY_H, Key::DSKEY_H}, {Key::KEY_I, Key::DSKEY_I}, {Key::KEY_J, Key::DSKEY_J}, {Key::KEY_K, Key::DSKEY_K}, {Key::KEY_L, Key::DSKEY_L}, {Key::KEY_M, Key::DSKEY_M}, {Key::KEY_N, Key::DSKEY_N}, {Key::KEY_O, Key::DSKEY_O}, {Key::KEY_P, Key::DSKEY_P}, {Key::KEY_Q, Key::DSKEY_Q}, {Key::KEY_R, Key::DSKEY_R}, {Key::KEY_S, Key::DSKEY_S}, {Key::KEY_T, Key::DSKEY_T}, {Key::KEY_U, Key::DSKEY_U}, {Key::KEY_V, Key::DSKEY_V}, {Key::KEY_W, Key::DSKEY_W}, {Key::KEY_X, Key::DSKEY_X}, {Key::KEY_Y, Key::DSKEY_Y}, {Key::KEY_Z, Key::DSKEY_Z}, {Key::KEY_LWIN, Key::DSKEY_LWIN}, {Key::KEY_RWIN, Key::DSKEY_RWIN}, {Key::KEY_APPS, Key::DSKEY_APPS}, {Key::KEY_SLEEP, Key::DSKEY_SLEEP}, {Key::KEY_NUMPAD0, Key::DSKEY_NUMPAD0}, {Key::KEY_NUMPAD1, Key::DSKEY_NUMPAD1}, {Key::KEY_NUMPAD2, Key::DSKEY_NUMPAD2}, {Key::KEY_NUMPAD3, Key::DSKEY_NUMPAD3}, {Key::KEY_NUMPAD4, Key::DSKEY_NUMPAD4}, {Key::KEY_NUMPAD5, Key::DSKEY_NUMPAD5}, {Key::KEY_NUMPAD6, Key::DSKEY_NUMPAD6}, {Key::KEY_NUMPAD7, Key::DSKEY_NUMPAD7}, {Key::KEY_NUMPAD8, Key::DSKEY_NUMPAD8}, {Key::KEY_NUMPAD9, Key::DSKEY_NUMPAD9}, {Key::KEY_MULTIPLY, Key::DSKEY_MULTIPLY}, {Key::KEY_ADD, Key::DSKEY_ADD}, {Key::KEY_SEPARATOR, Key::DSKEY_SEPARATOR}, {Key::KEY_SUBTRACT, Key::DSKEY_SUBTRACT}, {Key::KEY_DECIMAL, Key::DSKEY_DECIMAL}, {Key::KEY_DIVIDE, Key::DSKEY_DIVIDE}, {Key::KEY_F1, Key::DSKEY_F1}, {Key::KEY_F2, Key::DSKEY_F2}, {Key::KEY_F3, Key::DSKEY_F3}, {Key::KEY_F4, Key::DSKEY_F4}, {Key::KEY_F5, Key::DSKEY_F5}, {Key::KEY_F6, Key::DSKEY_F6}, {Key::KEY_F7, Key::DSKEY_F7}, {Key::KEY_F8, Key::DSKEY_F8}, {Key::KEY_F9, Key::DSKEY_F9}, {Key::KEY_F10, Key::DSKEY_F10}, {Key::KEY_F11, Key::DSKEY_F11}, {Key::KEY_F12, Key::DSKEY_F12}, {Key::KEY_F13, Key::DSKEY_F13}, {Key::KEY_F14, Key::DSKEY_F14}, {Key::KEY_F15, Key::DSKEY_F15}, {Key::KEY_F16, Key::DSKEY_F16}, {Key::KEY_F17, Key::DSKEY_F17}, {Key::KEY_F18, Key::DSKEY_F18}, {Key::KEY_F19, Key::DSKEY_F19}, {Key::KEY_F20, Key::DSKEY_F20}, {Key::KEY_F21, Key::DSKEY_F21}, {Key::KEY_F22, Key::DSKEY_F22}, {Key::KEY_F23, Key::DSKEY_F23}, {Key::KEY_F24, Key::DSKEY_F24}, {Key::KEY_NUMLOCK, Key::DSKEY_NUMLOCK}, {Key::KEY_SCROLL, Key::DSKEY_SCROLL}, {Key::KEY_LSHIFT, Key::DSKEY_LSHIFT}, {Key::KEY_RSHIFT, Key::DSKEY_RSHIFT}, {Key::KEY_LCONTROL, Key::DSKEY_LCONTROL}, {Key::KEY_RCONTROL, Key::DSKEY_RCONTROL}, {Key::KEY_LMENU, Key::DSKEY_LMENU}, {Key::KEY_RMENU, Key::DSKEY_RMENU}, {Key::KEY_BROWSER_BACK, Key::DSKEY_BROWSER_BACK}, {Key::KEY_BROWSER_FORWARD, Key::DSKEY_BROWSER_FORWARD}, {Key::KEY_BROWSER_REFRESH, Key::DSKEY_BROWSER_REFRESH}, {Key::KEY_BROWSER_STOP, Key::DSKEY_BROWSER_STOP}, {Key::KEY_BROWSER_SEARCH, Key::DSKEY_BROWSER_SEARCH}, {Key::KEY_BROWSER_FAVORITES, Key::DSKEY_BROWSER_FAVORITES}, {Key::KEY_BROWSER_HOME, Key::DSKEY_BROWSER_HOME}, {Key::KEY_VOLUME_MUTE, Key::DSKEY_VOLUME_MUTE}, {Key::KEY_VOLUME_DOWN, Key::DSKEY_VOLUME_DOWN}, {Key::KEY_VOLUME_UP, Key::DSKEY_VOLUME_UP}, {Key::KEY_MEDIA_NEXT_TRACK, Key::DSKEY_MEDIA_NEXT_TRACK}, {Key::KEY_MEDIA_PREV_TRACK, Key::DSKEY_MEDIA_PREV_TRACK}, {Key::KEY_MEDIA_STOP, Key::DSKEY_MEDIA_STOP}, {Key::KEY_MEDIA_PLAY_PAUSE, Key::DSKEY_MEDIA_PLAY_PAUSE}, {Key::KEY_LAUNCH_MAIL, Key::DSKEY_LAUNCH_MAIL}, {Key::KEY_LAUNCH_MEDIA_SELECT, Key::DSKEY_LAUNCH_MEDIA_SELECT}, {Key::KEY_LAUNCH_APP1, Key::DSKEY_LAUNCH_APP1}, {Key::KEY_LAUNCH_APP2, Key::DSKEY_LAUNCH_APP2}, {Key::KEY_OEM_1, Key::DSKEY_OEM_1}, {Key::KEY_OEM_PLUS, Key::DSKEY_OEM_PLUS}, {Key::KEY_OEM_COMMA, Key::DSKEY_OEM_COMMA}, {Key::KEY_OEM_MINUS, Key::DSKEY_OEM_MINUS}, {Key::KEY_OEM_PERIOD, Key::DSKEY_OEM_PERIOD}, //{Key::KEY_OEM_2, Key::DSKEY_OEM_2}, // KEY_SLASH {Key::KEY_OEM_3, Key::DSKEY_OEM_3}, {Key::KEY_OEM_4, Key::DSKEY_OEM_4}, //{Key::KEY_OEM_5, Key::DSKEY_OEM_5}, // KEY_BACKSLASH {Key::KEY_OEM_6, Key::DSKEY_OEM_6}, {Key::KEY_OEM_7, Key::DSKEY_OEM_7}, {Key::KEY_OEM_8, Key::DSKEY_OEM_8}, {Key::KEY_OEM_102, Key::DSKEY_OEM_102}, {Key::KEY_PROCESSKEY, Key::DSKEY_PROCESSKEY}, {Key::KEY_PACKET, Key::DSKEY_PACKET}, {Key::KEY_ATTN, Key::DSKEY_ATTN}, {Key::KEY_CRSEL, Key::DSKEY_CRSEL}, {Key::KEY_EXSEL, Key::DSKEY_EXSEL}, {Key::KEY_EREOF, Key::DSKEY_EREOF}, {Key::KEY_PLAY, Key::DSKEY_PLAY}, {Key::KEY_ZOOM, Key::DSKEY_ZOOM}, {Key::KEY_NONAME, Key::DSKEY_NONAME}, {Key::KEY_PA1, Key::DSKEY_PA1}, {Key::KEY_OEM_CLEAR, Key::DSKEY_OEM_CLEAR}, {Key::KEY_SLASH, Key::DSKEY_SLASH}, {Key::KEY_BACKSLASH, Key::DSKEY_BACKSLASH}, {Key::JOY, JOY}, {Key::JOY + 1, Key::JOY + 1}, {Key::JOY + 2, Key::JOY + 2}, {Key::JOY + 3, Key::JOY + 3}, {Key::JOY + 4, Key::JOY + 4}, {Key::JOY + 5, Key::JOY + 5}, {Key::JOY + 6, Key::JOY + 6}, {Key::JOY + 7, Key::JOY + 7}, {Key::JOY + 8, Key::JOY + 8}, {Key::JOY + 9, Key::JOY + 9}, {Key::JOY + 10, Key::JOY + 10}, {Key::JOY + 11, Key::JOY + 11}, {Key::JOY + 12, Key::JOY + 12}, {Key::JOY + 13, Key::JOY + 13}, {Key::JOY + 14, Key::JOY + 14}, {Key::JOY + 15, Key::JOY + 15}, {Key::JOY + 16, Key::JOY + 16}, {Key::JOY + 17, Key::JOY + 17}, {Key::JOY + 18, Key::JOY + 18}, {Key::JOY + 19, Key::JOY + 19}, {Key::JOY + 20, Key::JOY + 20}, {Key::JOY + 21, Key::JOY + 21}, {Key::JOY + 22, Key::JOY + 22}, {Key::JOY + 23, Key::JOY + 23}, {Key::JOY + 24, Key::JOY + 24}, {Key::JOY + 25, Key::JOY + 25}, {Key::JOY + 26, Key::JOY + 26}, {Key::JOY + 27, Key::JOY + 27}, {Key::JOY + 28, Key::JOY + 28}, {Key::JOY + 29, Key::JOY + 29}, {Key::JOY + 30, Key::JOY + 30}, {Key::JOY + 31, Key::JOY + 31}, {Key::JOY_HAT_UP, Key::JOY_HAT_UP}, {Key::JOY_HAT_DOWN, Key::JOY_HAT_DOWN}, {Key::JOY_HAT_LEFT, Key::JOY_HAT_LEFT}, {Key::JOY_HAT_RIGHT, Key::JOY_HAT_RIGHT}, {Key::JOY_AXIS_Y_MINUS, Key::JOY_AXIS_Y_MINUS}, {Key::JOY_AXIS_Y_PLUS, Key::JOY_AXIS_Y_PLUS}, {Key::JOY_AXIS_X_MINUS, Key::JOY_AXIS_X_MINUS}, {Key::JOY_AXIS_X_PLUS, Key::JOY_AXIS_X_PLUS}, {Key::JOY_AXIS_RX_MINUS, Key::JOY_AXIS_RX_MINUS}, {Key::JOY_AXIS_RX_PLUS, Key::JOY_AXIS_RX_PLUS}, {Key::JOY_AXIS_Z_MINUS, Key::JOY_AXIS_Z_MINUS}, {Key::JOY_AXIS_Z_PLUS, Key::JOY_AXIS_Z_PLUS}, {Key::JOY_AXIS_RZ_MINUS, Key::JOY_AXIS_RZ_MINUS}, {Key::JOY_AXIS_RZ_PLUS, Key::JOY_AXIS_RZ_PLUS}, {Key::JOY_AXIS_RY_MINUS, Key::JOY_AXIS_RY_MINUS}, {Key::JOY_AXIS_RY_PLUS, Key::JOY_AXIS_RY_PLUS}, {Key::JOY_AXIS_SL1_MINUS, Key::JOY_AXIS_SL1_MINUS}, {Key::JOY_AXIS_SL1_PLUS, Key::JOY_AXIS_SL1_PLUS}, {Key::JOY_AXIS_SL0_MINUS, Key::JOY_AXIS_SL0_MINUS}, {Key::JOY_AXIS_SL0_PLUS, Key::JOY_AXIS_SL0_PLUS}, {Key::JOY_AXIS_WHL_MINUS, Key::JOY_AXIS_WHL_MINUS}, {Key::JOY_AXIS_WHL_PLUS, Key::JOY_AXIS_WHL_PLUS}, {0xffffffff, 0xffffffff}, }; uint32_t ConvertDSToPCValue(uint32_t ds_value) { for(DSKeyEntry* entry = g_ds_table; entry->pc_value != Key::ENTRY_MAX; entry++) { if(entry->ds_value == ds_value) return entry->pc_value; } return Key::KEY_NONE; } uint32_t ConvertPCToDSValue(uint32_t pc_value) { for(DSKeyEntry* entry = g_ds_table; entry->pc_value != Key::ENTRY_MAX; entry++) { if(entry->pc_value == pc_value) return entry->ds_value; } return Key::KEY_NONE; } KeyEntry g_table[] = { {Key::KEY_NONE, "KEY_NONE"}, {Key::KEY_VOID, "KEY_VOID"}, {Key::KEY_LBUTTON, "KEY_LBUTTON"}, {Key::KEY_RBUTTON, "KEY_RBUTTON"}, {Key::KEY_CANCEL, "KEY_CANCEL"}, {Key::KEY_MBUTTON, "KEY_MBUTTON"}, {Key::KEY_XBUTTON1, "KEY_XBUTTON1"}, {Key::KEY_XBUTTON2, "KEY_XBUTTON2"}, {Key::KEY_BACK, "KEY_BACK"}, {Key::KEY_TAB, "KEY_TAB"}, {Key::KEY_CLEAR, "KEY_CLEAR"}, {Key::KEY_RETURN, "KEY_RETURN"}, {Key::KEY_SHIFT, "KEY_SHIFT"}, {Key::KEY_CONTROL, "KEY_CONTROL"}, {Key::KEY_MENU, "KEY_MENU"}, {Key::KEY_PAUSE, "KEY_PAUSE"}, {Key::KEY_CAPITAL, "KEY_CAPITAL"}, {Key::KEY_KANA, "KEY_KANA"}, {Key::KEY_HANGEUL, "KEY_HANGEUL"}, {Key::KEY_HANGUL, "KEY_HANGUL"}, {Key::KEY_JUNJA, "KEY_JUNJA"}, {Key::KEY_FINAL, "KEY_FINAL"}, {Key::KEY_HANJA, "KEY_HANJA"}, {Key::KEY_KANJI, "KEY_KANJI"}, {Key::KEY_ESCAPE, "KEY_ESCAPE"}, {Key::KEY_CONVERT, "KEY_CONVERT"}, {Key::KEY_NONCONVERT, "KEY_NONCONVERT"}, {Key::KEY_ACCEPT, "KEY_ACCEPT"}, {Key::KEY_MODECHANGE, "KEY_MODECHANGE"}, {Key::KEY_SPACE, "KEY_SPACE"}, {Key::KEY_PRIOR, "KEY_PRIOR"}, {Key::KEY_NEXT, "KEY_NEXT"}, {Key::KEY_END, "KEY_END"}, {Key::KEY_HOME, "KEY_HOME"}, {Key::KEY_LEFT, "KEY_LEFT"}, {Key::KEY_UP, "KEY_UP"}, {Key::KEY_RIGHT, "KEY_RIGHT"}, {Key::KEY_DOWN, "KEY_DOWN"}, {Key::KEY_SELECT, "KEY_SELECT"}, {Key::KEY_PRINT, "KEY_PRINT"}, {Key::KEY_EXEC, "KEY_EXEC"}, {Key::KEY_SNAPSHOT, "KEY_SNAPSHOT"}, {Key::KEY_INSERT, "KEY_INSERT"}, {Key::KEY_DELETE, "KEY_DELETE"}, {Key::KEY_HELP, "KEY_HELP"}, {Key::KEY_0, "KEY_0"}, {Key::KEY_1, "KEY_1"}, {Key::KEY_2, "KEY_2"}, {Key::KEY_3, "KEY_3"}, {Key::KEY_4, "KEY_4"}, {Key::KEY_5, "KEY_5"}, {Key::KEY_6, "KEY_6"}, {Key::KEY_7, "KEY_7"}, {Key::KEY_8, "KEY_8"}, {Key::KEY_9, "KEY_9"}, {Key::KEY_A, "KEY_A"}, {Key::KEY_B, "KEY_B"}, {Key::KEY_C, "KEY_C"}, {Key::KEY_D, "KEY_D"}, {Key::KEY_E, "KEY_E"}, {Key::KEY_F, "KEY_F"}, {Key::KEY_G, "KEY_G"}, {Key::KEY_H, "KEY_H"}, {Key::KEY_I, "KEY_I"}, {Key::KEY_J, "KEY_J"}, {Key::KEY_K, "KEY_K"}, {Key::KEY_L, "KEY_L"}, {Key::KEY_M, "KEY_M"}, {Key::KEY_N, "KEY_N"}, {Key::KEY_O, "KEY_O"}, {Key::KEY_P, "KEY_P"}, {Key::KEY_Q, "KEY_Q"}, {Key::KEY_R, "KEY_R"}, {Key::KEY_S, "KEY_S"}, {Key::KEY_T, "KEY_T"}, {Key::KEY_U, "KEY_U"}, {Key::KEY_V, "KEY_V"}, {Key::KEY_W, "KEY_W"}, {Key::KEY_X, "KEY_X"}, {Key::KEY_Y, "KEY_Y"}, {Key::KEY_Z, "KEY_Z"}, {Key::KEY_LWIN, "KEY_LWIN"}, {Key::KEY_RWIN, "KEY_RWIN"}, {Key::KEY_APPS, "KEY_APPS"}, {Key::KEY_SLEEP, "KEY_SLEEP"}, {Key::KEY_NUMPAD0, "KEY_NUMPAD0"}, {Key::KEY_NUMPAD1, "KEY_NUMPAD1"}, {Key::KEY_NUMPAD2, "KEY_NUMPAD2"}, {Key::KEY_NUMPAD3, "KEY_NUMPAD3"}, {Key::KEY_NUMPAD4, "KEY_NUMPAD4"}, {Key::KEY_NUMPAD5, "KEY_NUMPAD5"}, {Key::KEY_NUMPAD6, "KEY_NUMPAD6"}, {Key::KEY_NUMPAD7, "KEY_NUMPAD7"}, {Key::KEY_NUMPAD8, "KEY_NUMPAD8"}, {Key::KEY_NUMPAD9, "KEY_NUMPAD9"}, {Key::KEY_MULTIPLY, "KEY_MULTIPLY"}, {Key::KEY_ADD, "KEY_ADD"}, {Key::KEY_SEPARATOR, "KEY_SEPARATOR"}, {Key::KEY_SUBTRACT, "KEY_SUBTRACT"}, {Key::KEY_DECIMAL, "KEY_DECIMAL"}, {Key::KEY_DIVIDE, "KEY_DIVIDE"}, {Key::KEY_F1, "KEY_F1"}, {Key::KEY_F2, "KEY_F2"}, {Key::KEY_F3, "KEY_F3"}, {Key::KEY_F4, "KEY_F4"}, {Key::KEY_F5, "KEY_F5"}, {Key::KEY_F6, "KEY_F6"}, {Key::KEY_F7, "KEY_F7"}, {Key::KEY_F8, "KEY_F8"}, {Key::KEY_F9, "KEY_F9"}, {Key::KEY_F10, "KEY_F10"}, {Key::KEY_F11, "KEY_F11"}, {Key::KEY_F12, "KEY_F12"}, {Key::KEY_F13, "KEY_F13"}, {Key::KEY_F14, "KEY_F14"}, {Key::KEY_F15, "KEY_F15"}, {Key::KEY_F16, "KEY_F16"}, {Key::KEY_F17, "KEY_F17"}, {Key::KEY_F18, "KEY_F18"}, {Key::KEY_F19, "KEY_F19"}, {Key::KEY_F20, "KEY_F20"}, {Key::KEY_F21, "KEY_F21"}, {Key::KEY_F22, "KEY_F22"}, {Key::KEY_F23, "KEY_F23"}, {Key::KEY_F24, "KEY_F24"}, {Key::KEY_NUMLOCK, "KEY_NUMLOCK"}, {Key::KEY_SCROLL, "KEY_SCROLL"}, {Key::KEY_LSHIFT, "KEY_LSHIFT"}, {Key::KEY_RSHIFT, "KEY_RSHIFT"}, {Key::KEY_LCONTROL, "KEY_LCONTROL"}, {Key::KEY_RCONTROL, "KEY_RCONTROL"}, {Key::KEY_LMENU, "KEY_LMENU"}, {Key::KEY_RMENU, "KEY_RMENU"}, {Key::KEY_BROWSER_BACK, "KEY_BROWSER_BACK"}, {Key::KEY_BROWSER_FORWARD, "KEY_BROWSER_FORWARD"}, {Key::KEY_BROWSER_REFRESH, "KEY_BROWSER_REFRESH"}, {Key::KEY_BROWSER_STOP, "KEY_BROWSER_STOP"}, {Key::KEY_BROWSER_SEARCH, "KEY_BROWSER_SEARCH"}, {Key::KEY_BROWSER_FAVORITES, "KEY_BROWSER_FAVORITES"}, {Key::KEY_BROWSER_HOME, "KEY_BROWSER_HOME"}, {Key::KEY_VOLUME_MUTE, "KEY_VOLUME_MUTE"}, {Key::KEY_VOLUME_DOWN, "KEY_VOLUME_DOWN"}, {Key::KEY_VOLUME_UP, "KEY_VOLUME_UP"}, {Key::KEY_MEDIA_NEXT_TRACK, "KEY_MEDIA_NEXT_TRACK"}, {Key::KEY_MEDIA_PREV_TRACK, "KEY_MEDIA_PREV_TRACK"}, {Key::KEY_MEDIA_STOP, "KEY_MEDIA_STOP"}, {Key::KEY_MEDIA_PLAY_PAUSE, "KEY_MEDIA_PLAY_PAUSE"}, {Key::KEY_LAUNCH_MAIL, "KEY_LAUNCH_MAIL"}, {Key::KEY_LAUNCH_MEDIA_SELECT, "KEY_LAUNCH_MEDIA_SELECT"}, {Key::KEY_LAUNCH_APP1, "KEY_LAUNCH_APP1"}, {Key::KEY_LAUNCH_APP2, "KEY_LAUNCH_APP2"}, {Key::KEY_OEM_1, "KEY_OEM_1"}, {Key::KEY_OEM_PLUS, "KEY_OEM_PLUS"}, {Key::KEY_OEM_COMMA, "KEY_OEM_COMMA"}, {Key::KEY_OEM_MINUS, "KEY_OEM_MINUS"}, {Key::KEY_OEM_PERIOD, "KEY_OEM_PERIOD"}, //{Key::KEY_OEM_2, "KEY_OEM_2"}, // KEY_SLASH {Key::KEY_OEM_3, "KEY_OEM_3"}, {Key::KEY_OEM_4, "KEY_OEM_4"}, //{Key::KEY_OEM_5, "KEY_OEM_5"}, // KEY_BACKSLASH {Key::KEY_OEM_6, "KEY_OEM_6"}, {Key::KEY_OEM_7, "KEY_OEM_7"}, {Key::KEY_OEM_8, "KEY_OEM_8"}, {Key::KEY_OEM_102, "KEY_OEM_102"}, {Key::KEY_PROCESSKEY, "KEY_PROCESSKEY"}, {Key::KEY_PACKET, "KEY_PACKET"}, {Key::KEY_ATTN, "KEY_ATTN"}, {Key::KEY_CRSEL, "KEY_CRSEL"}, {Key::KEY_EXSEL, "KEY_EXSEL"}, {Key::KEY_EREOF, "KEY_EREOF"}, {Key::KEY_PLAY, "KEY_PLAY"}, {Key::KEY_ZOOM, "KEY_ZOOM"}, {Key::KEY_NONAME, "KEY_NONAME"}, {Key::KEY_PA1, "KEY_PA1"}, {Key::KEY_OEM_CLEAR, "KEY_OEM_CLEAR"}, {Key::KEY_SLASH, "KEY_SLASH"}, {Key::KEY_BACKSLASH, "KEY_BACKSLASH"}, {Key::JOY, "JOY_00"}, {Key::JOY + 1, "JOY_01"}, {Key::JOY + 2, "JOY_02"}, {Key::JOY + 3, "JOY_03"}, {Key::JOY + 4, "JOY_04"}, {Key::JOY + 5, "JOY_05"}, {Key::JOY + 6, "JOY_06"}, {Key::JOY + 7, "JOY_07"}, {Key::JOY + 8, "JOY_08"}, {Key::JOY + 9, "JOY_09"}, {Key::JOY + 10, "JOY_10"}, {Key::JOY + 11, "JOY_11"}, {Key::JOY + 12, "JOY_12"}, {Key::JOY + 13, "JOY_13"}, {Key::JOY + 14, "JOY_14"}, {Key::JOY + 15, "JOY_15"}, {Key::JOY + 16, "JOY_16"}, {Key::JOY + 17, "JOY_17"}, {Key::JOY + 18, "JOY_18"}, {Key::JOY + 19, "JOY_19"}, {Key::JOY + 20, "JOY_20"}, {Key::JOY + 21, "JOY_21"}, {Key::JOY + 22, "JOY_22"}, {Key::JOY + 23, "JOY_23"}, {Key::JOY + 24, "JOY_24"}, {Key::JOY + 25, "JOY_25"}, {Key::JOY + 26, "JOY_26"}, {Key::JOY + 27, "JOY_27"}, {Key::JOY + 28, "JOY_28"}, {Key::JOY + 29, "JOY_29"}, {Key::JOY + 30, "JOY_30"}, {Key::JOY + 31, "JOY_31"}, {Key::JOY_HAT_UP, "JOY_HAT_UP"}, {Key::JOY_HAT_DOWN, "JOY_HAT_DOWN"}, {Key::JOY_HAT_LEFT, "JOY_HAT_LEFT"}, {Key::JOY_HAT_RIGHT, "JOY_HAT_RIGHT"}, {Key::JOY_AXIS_Y_MINUS, "JOY_AXIS_Y_MINUS"}, {Key::JOY_AXIS_Y_PLUS, "JOY_AXIS_Y_PLUS"}, {Key::JOY_AXIS_X_MINUS, "JOY_AXIS_X_MINUS"}, {Key::JOY_AXIS_X_PLUS, "JOY_AXIS_X_PLUS"}, {Key::JOY_AXIS_RX_MINUS, "JOY_AXIS_RX_MINUS"}, {Key::JOY_AXIS_RX_PLUS, "JOY_AXIS_RX_PLUS"}, {Key::JOY_AXIS_Z_MINUS, "JOY_AXIS_Z_MINUS"}, {Key::JOY_AXIS_Z_PLUS, "JOY_AXIS_Z_PLUS"}, {Key::JOY_AXIS_RZ_MINUS, "JOY_AXIS_RZ_MINUS"}, {Key::JOY_AXIS_RZ_PLUS, "JOY_AXIS_RZ_PLUS"}, {Key::JOY_AXIS_RY_MINUS, "JOY_AXIS_RY_MINUS"}, {Key::JOY_AXIS_RY_PLUS, "JOY_AXIS_RY_PLUS"}, {Key::JOY_AXIS_SL1_MINUS, "JOY_AXIS_SL1_MINUS"}, {Key::JOY_AXIS_SL1_PLUS, "JOY_AXIS_SL1_PLUS"}, {Key::JOY_AXIS_SL0_MINUS, "JOY_AXIS_SL0_MINUS"}, {Key::JOY_AXIS_SL0_PLUS, "JOY_AXIS_SL0_PLUS"}, {Key::JOY_AXIS_WHL_MINUS, "JOY_AXIS_WHL_MINUS"}, {Key::JOY_AXIS_WHL_PLUS, "JOY_AXIS_WHL_PLUS"}, {0xffffffff, "End Of Entries"}, }; uint32_t GetNumber(const char* key) { for(KeyEntry* entry = g_table; entry->value != Key::ENTRY_MAX; entry++) { if(!strcmp(entry->text, key)) return entry->value; } return Key::KEY_NONE; } const char* GetString(uint32_t key) { for(KeyEntry* entry = g_table; entry->value != Key::ENTRY_MAX; entry++) { if(entry->value == key) return entry->text; } return g_table[Key::KEY_NONE].text; } }} // namespace D2K::Input