dsi2key/common/key.cpp
Derrick Wirth 1a41167a7d 1. Removed all WINKEY_ codes in source/windows/keyboardWindow.cpp\h and replaced with KEY::DSKEY_ codes located in common/key.h
2. Heavily changed configWindow, not finished
3. Some alterations to how enum_keys.cpp\h works
4. Added SINGLE_INPUT_SETTING udp packet
5. Some linux ifdef's
6. Probably others, this is old and should have been commited into a couple commits
2017-05-27 22:14:13 -04:00

544 lines
17 KiB
C++

// 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