mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-17 07:58:55 +00:00
(WINRAW) Change legacy virtual keys to scan codes
This commit is contained in:
parent
bdba803909
commit
2c47d94bf5
@ -1067,71 +1067,6 @@ static LRESULT CALLBACK wnd_proc_winraw_common_internal(HWND hwnd,
|
||||
|
||||
switch (message)
|
||||
{
|
||||
case WM_KEYUP: /* Key released */
|
||||
case WM_SYSKEYUP: /* Key released */
|
||||
keydown = false;
|
||||
/* fall-through */
|
||||
case WM_KEYDOWN: /* Key pressed */
|
||||
case WM_SYSKEYDOWN: /* Key pressed */
|
||||
quit = true;
|
||||
{
|
||||
uint16_t mod = 0;
|
||||
unsigned keycode = 0;
|
||||
unsigned keysym = (unsigned)wparam;
|
||||
|
||||
/* fix key binding issues on winraw when
|
||||
* DirectInput is not available */
|
||||
switch (keysym)
|
||||
{
|
||||
/* Mod & Keypad handling done in winraw_callback */
|
||||
case VK_SHIFT:
|
||||
case VK_CONTROL:
|
||||
case VK_MENU:
|
||||
case VK_INSERT:
|
||||
case VK_DELETE:
|
||||
case VK_HOME:
|
||||
case VK_END:
|
||||
case VK_PRIOR:
|
||||
case VK_NEXT:
|
||||
case VK_UP:
|
||||
case VK_DOWN:
|
||||
case VK_LEFT:
|
||||
case VK_RIGHT:
|
||||
case VK_CLEAR:
|
||||
case VK_RETURN:
|
||||
return 0;
|
||||
}
|
||||
|
||||
keycode = input_keymaps_translate_keysym_to_rk(keysym);
|
||||
|
||||
if (GetKeyState(VK_SHIFT) & 0x80)
|
||||
mod |= RETROKMOD_SHIFT;
|
||||
if (GetKeyState(VK_CONTROL) & 0x80)
|
||||
mod |= RETROKMOD_CTRL;
|
||||
if (GetKeyState(VK_MENU) & 0x80)
|
||||
mod |= RETROKMOD_ALT;
|
||||
if (GetKeyState(VK_CAPITAL) & 0x81)
|
||||
mod |= RETROKMOD_CAPSLOCK;
|
||||
if (GetKeyState(VK_SCROLL) & 0x81)
|
||||
mod |= RETROKMOD_SCROLLOCK;
|
||||
if ((GetKeyState(VK_LWIN) | GetKeyState(VK_RWIN)) & 0x80)
|
||||
mod |= RETROKMOD_META;
|
||||
|
||||
|
||||
input_keyboard_event(keydown, keycode,
|
||||
0, mod, RETRO_DEVICE_KEYBOARD);
|
||||
|
||||
if (message != WM_SYSKEYDOWN)
|
||||
return 0;
|
||||
|
||||
if (
|
||||
wparam == VK_F10 ||
|
||||
wparam == VK_MENU ||
|
||||
wparam == VK_RSHIFT
|
||||
)
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case WM_MOUSEMOVE:
|
||||
case WM_POINTERDOWN:
|
||||
case WM_POINTERUP:
|
||||
|
@ -41,7 +41,8 @@ extern "C" {
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t keys[256];
|
||||
uint8_t keys[SC_LAST];
|
||||
bool pause;
|
||||
} winraw_keyboard_t;
|
||||
|
||||
typedef struct
|
||||
@ -440,89 +441,11 @@ static void winraw_update_mouse_state(winraw_input_t *wr,
|
||||
}
|
||||
}
|
||||
|
||||
static void winraw_keyboard_mods(RAWINPUT *ri)
|
||||
{
|
||||
unsigned flags = ri->data.keyboard.Flags;
|
||||
|
||||
switch (ri->data.keyboard.MakeCode)
|
||||
{
|
||||
/* Left Control + Right Control */
|
||||
case 29:
|
||||
input_keyboard_event(
|
||||
(flags & RI_KEY_BREAK) ? 0 : 1,
|
||||
input_keymaps_translate_keysym_to_rk(
|
||||
(flags & RI_KEY_E0) ? VK_RCONTROL : VK_LCONTROL),
|
||||
0, RETROKMOD_CTRL, RETRO_DEVICE_KEYBOARD);
|
||||
break;
|
||||
|
||||
/* Left Shift */
|
||||
case 42:
|
||||
input_keyboard_event(
|
||||
(flags & RI_KEY_BREAK) ? 0 : 1,
|
||||
input_keymaps_translate_keysym_to_rk(VK_LSHIFT),
|
||||
0, RETROKMOD_SHIFT, RETRO_DEVICE_KEYBOARD);
|
||||
break;
|
||||
|
||||
/* Right Shift */
|
||||
case 54:
|
||||
input_keyboard_event(
|
||||
(flags & RI_KEY_BREAK) ? 0 : 1,
|
||||
input_keymaps_translate_keysym_to_rk(VK_RSHIFT),
|
||||
0, RETROKMOD_SHIFT, RETRO_DEVICE_KEYBOARD);
|
||||
break;
|
||||
|
||||
/* Left Alt + Right Alt */
|
||||
case 56:
|
||||
input_keyboard_event(
|
||||
(flags & RI_KEY_BREAK) ? 0 : 1,
|
||||
input_keymaps_translate_keysym_to_rk(
|
||||
(flags & RI_KEY_E0) ? VK_RMENU : VK_LMENU),
|
||||
0, RETROKMOD_ALT, RETRO_DEVICE_KEYBOARD);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void winraw_keyboard_keypad(unsigned *vkey, unsigned flags)
|
||||
{
|
||||
bool event = true;
|
||||
|
||||
/* Keypad key positions regardless of NumLock */
|
||||
switch (*vkey)
|
||||
{
|
||||
case VK_INSERT: *vkey = (flags & RI_KEY_E0) ? VK_INSERT : VK_NUMPAD0; break;
|
||||
case VK_DELETE: *vkey = (flags & RI_KEY_E0) ? VK_DELETE : VK_DECIMAL; break;
|
||||
|
||||
case VK_HOME: *vkey = (flags & RI_KEY_E0) ? VK_HOME : VK_NUMPAD7; break;
|
||||
case VK_END: *vkey = (flags & RI_KEY_E0) ? VK_END : VK_NUMPAD1; break;
|
||||
|
||||
case VK_PRIOR: *vkey = (flags & RI_KEY_E0) ? VK_PRIOR : VK_NUMPAD9; break;
|
||||
case VK_NEXT: *vkey = (flags & RI_KEY_E0) ? VK_NEXT : VK_NUMPAD3; break;
|
||||
|
||||
case VK_UP: *vkey = (flags & RI_KEY_E0) ? VK_UP : VK_NUMPAD8; break;
|
||||
case VK_DOWN: *vkey = (flags & RI_KEY_E0) ? VK_DOWN : VK_NUMPAD2; break;
|
||||
|
||||
case VK_LEFT: *vkey = (flags & RI_KEY_E0) ? VK_LEFT : VK_NUMPAD4; break;
|
||||
case VK_RIGHT: *vkey = (flags & RI_KEY_E0) ? VK_RIGHT : VK_NUMPAD6; break;
|
||||
|
||||
case VK_CLEAR: *vkey = (flags & RI_KEY_E0) ? VK_CLEAR : VK_NUMPAD5; break;
|
||||
case VK_RETURN: *vkey = (flags & RI_KEY_E0) ? 0xE0 : VK_RETURN; break;
|
||||
|
||||
default:
|
||||
event = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (event)
|
||||
input_keyboard_event(flags & RI_KEY_BREAK ? 0 : 1,
|
||||
input_keymaps_translate_keysym_to_rk(*vkey),
|
||||
0, 0, RETRO_DEVICE_KEYBOARD);
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK winraw_callback(
|
||||
HWND wnd, UINT msg, WPARAM wpar, LPARAM lpar)
|
||||
{
|
||||
unsigned i;
|
||||
unsigned vkey, flags;
|
||||
unsigned mcode, flags, kdown;
|
||||
static uint8_t data[1024];
|
||||
RAWINPUT *ri = (RAWINPUT*)data;
|
||||
UINT size = sizeof(data);
|
||||
@ -544,36 +467,42 @@ static LRESULT CALLBACK winraw_callback(
|
||||
switch (ri->header.dwType)
|
||||
{
|
||||
case RIM_TYPEKEYBOARD:
|
||||
vkey = ri->data.keyboard.VKey;
|
||||
mcode = ri->data.keyboard.MakeCode;
|
||||
flags = ri->data.keyboard.Flags;
|
||||
kdown = (flags & RI_KEY_BREAK) ? 0 : 1;
|
||||
|
||||
/* Stop sending forced Left Shift when NumLock is enabled
|
||||
* (VKey 0xFF does not actually exist) */
|
||||
if (vkey == 0xFF)
|
||||
break;
|
||||
/* Extended scancodes */
|
||||
if (flags & RI_KEY_E0)
|
||||
mcode |= 0xE000;
|
||||
else if (flags & RI_KEY_E1)
|
||||
mcode |= 0xE100;
|
||||
|
||||
/* following keys are not handled by windows raw input api */
|
||||
wr->keyboard.keys[VK_LCONTROL] = GetAsyncKeyState(VK_LCONTROL) >> 1 ? 1 : 0;
|
||||
wr->keyboard.keys[VK_RCONTROL] = GetAsyncKeyState(VK_RCONTROL) >> 1 ? 1 : 0;
|
||||
wr->keyboard.keys[VK_LMENU] = GetAsyncKeyState(VK_LMENU) >> 1 ? 1 : 0;
|
||||
wr->keyboard.keys[VK_RMENU] = GetAsyncKeyState(VK_RMENU) >> 1 ? 1 : 0;
|
||||
wr->keyboard.keys[VK_LSHIFT] = GetAsyncKeyState(VK_LSHIFT) >> 1 ? 1 : 0;
|
||||
wr->keyboard.keys[VK_RSHIFT] = GetAsyncKeyState(VK_RSHIFT) >> 1 ? 1 : 0;
|
||||
|
||||
winraw_keyboard_mods(ri);
|
||||
winraw_keyboard_keypad(&vkey, flags);
|
||||
|
||||
switch (ri->data.keyboard.Message)
|
||||
/* Special pause-key handling due to
|
||||
* scancode 0xE11D45 incoming separately */
|
||||
if (wr->keyboard.pause)
|
||||
{
|
||||
case WM_KEYDOWN:
|
||||
case WM_SYSKEYDOWN:
|
||||
wr->keyboard.keys[vkey] = 1;
|
||||
break;
|
||||
case WM_KEYUP:
|
||||
case WM_SYSKEYUP:
|
||||
wr->keyboard.keys[vkey] = 0;
|
||||
break;
|
||||
wr->keyboard.pause = false;
|
||||
if (mcode == SC_NUMLOCK)
|
||||
mcode = SC_PAUSE;
|
||||
}
|
||||
else if (mcode == 0xE11D)
|
||||
wr->keyboard.pause = true;
|
||||
|
||||
/* Ignored scancodes */
|
||||
switch (mcode)
|
||||
{
|
||||
case 0xE11D:
|
||||
case 0xE02A:
|
||||
case 0xE036:
|
||||
case 0xE0AA:
|
||||
case 0xE0B6:
|
||||
return 0;
|
||||
}
|
||||
|
||||
wr->keyboard.keys[mcode] = kdown;
|
||||
input_keyboard_event(kdown,
|
||||
input_keymaps_translate_keysym_to_rk(mcode),
|
||||
0, 0, RETRO_DEVICE_KEYBOARD);
|
||||
break;
|
||||
case RIM_TYPEMOUSE:
|
||||
for (i = 0; i < wr->mouse_cnt; ++i)
|
||||
|
@ -1698,117 +1698,116 @@ const struct rarch_key_map rarch_key_map_psl1ght[] = {
|
||||
|
||||
#if defined(_WIN32) && _WIN32_WINNT >= 0x0501 && !defined(__WINRT__)
|
||||
const struct rarch_key_map rarch_key_map_winraw[] = {
|
||||
{ VK_BACK, RETROK_BACKSPACE },
|
||||
{ VK_TAB, RETROK_TAB },
|
||||
{ VK_CLEAR, RETROK_CLEAR },
|
||||
{ VK_RETURN, RETROK_RETURN },
|
||||
{ VK_PAUSE, RETROK_PAUSE },
|
||||
{ VK_ESCAPE, RETROK_ESCAPE },
|
||||
{ VK_MODECHANGE, RETROK_MODE },
|
||||
{ VK_SPACE, RETROK_SPACE },
|
||||
{ VK_PRIOR, RETROK_PAGEUP },
|
||||
{ VK_NEXT, RETROK_PAGEDOWN },
|
||||
{ VK_END, RETROK_END },
|
||||
{ VK_HOME, RETROK_HOME },
|
||||
{ VK_LEFT, RETROK_LEFT },
|
||||
{ VK_UP, RETROK_UP },
|
||||
{ VK_RIGHT, RETROK_RIGHT },
|
||||
{ VK_DOWN, RETROK_DOWN },
|
||||
{ VK_PRINT, RETROK_PRINT },
|
||||
{ VK_INSERT, RETROK_INSERT },
|
||||
{ VK_DELETE, RETROK_DELETE },
|
||||
{ VK_HELP, RETROK_HELP },
|
||||
{ 0x30, RETROK_0 },
|
||||
{ 0x31, RETROK_1 },
|
||||
{ 0x32, RETROK_2 },
|
||||
{ 0x33, RETROK_3 },
|
||||
{ 0x34, RETROK_4 },
|
||||
{ 0x35, RETROK_5 },
|
||||
{ 0x36, RETROK_6 },
|
||||
{ 0x37, RETROK_7 },
|
||||
{ 0x38, RETROK_8 },
|
||||
{ 0x39, RETROK_9 },
|
||||
{ 0x41, RETROK_a },
|
||||
{ 0x42, RETROK_b },
|
||||
{ 0x43, RETROK_c },
|
||||
{ 0x44, RETROK_d },
|
||||
{ 0x45, RETROK_e },
|
||||
{ 0x46, RETROK_f },
|
||||
{ 0x47, RETROK_g },
|
||||
{ 0x48, RETROK_h },
|
||||
{ 0x49, RETROK_i },
|
||||
{ 0x4A, RETROK_j },
|
||||
{ 0x4B, RETROK_k },
|
||||
{ 0x4C, RETROK_l },
|
||||
{ 0x4D, RETROK_m },
|
||||
{ 0x4E, RETROK_n },
|
||||
{ 0x4F, RETROK_o },
|
||||
{ 0x50, RETROK_p },
|
||||
{ 0x51, RETROK_q },
|
||||
{ 0x52, RETROK_r },
|
||||
{ 0x53, RETROK_s },
|
||||
{ 0x54, RETROK_t },
|
||||
{ 0x55, RETROK_u },
|
||||
{ 0x56, RETROK_v },
|
||||
{ 0x57, RETROK_w },
|
||||
{ 0x58, RETROK_x },
|
||||
{ 0x59, RETROK_y },
|
||||
{ 0x5A, RETROK_z },
|
||||
{ VK_LWIN, RETROK_LSUPER },
|
||||
{ VK_RWIN, RETROK_RSUPER },
|
||||
{ VK_APPS, RETROK_MENU },
|
||||
{ VK_NUMPAD0, RETROK_KP0 },
|
||||
{ VK_NUMPAD1, RETROK_KP1 },
|
||||
{ VK_NUMPAD2, RETROK_KP2 },
|
||||
{ VK_NUMPAD3, RETROK_KP3 },
|
||||
{ VK_NUMPAD4, RETROK_KP4 },
|
||||
{ VK_NUMPAD5, RETROK_KP5 },
|
||||
{ VK_NUMPAD6, RETROK_KP6 },
|
||||
{ VK_NUMPAD7, RETROK_KP7 },
|
||||
{ VK_NUMPAD8, RETROK_KP8 },
|
||||
{ VK_NUMPAD9, RETROK_KP9 },
|
||||
{ VK_MULTIPLY, RETROK_KP_MULTIPLY },
|
||||
{ VK_ADD, RETROK_KP_PLUS },
|
||||
{ VK_SUBTRACT, RETROK_KP_MINUS },
|
||||
{ VK_DECIMAL, RETROK_KP_PERIOD },
|
||||
{ VK_DIVIDE, RETROK_KP_DIVIDE },
|
||||
{ VK_F1, RETROK_F1 },
|
||||
{ VK_F2, RETROK_F2 },
|
||||
{ VK_F3, RETROK_F3 },
|
||||
{ VK_F4, RETROK_F4 },
|
||||
{ VK_F5, RETROK_F5 },
|
||||
{ VK_F6, RETROK_F6 },
|
||||
{ VK_F7, RETROK_F7 },
|
||||
{ VK_F8, RETROK_F8 },
|
||||
{ VK_F9, RETROK_F9 },
|
||||
{ VK_F10, RETROK_F10 },
|
||||
{ VK_F11, RETROK_F11 },
|
||||
{ VK_F12, RETROK_F12 },
|
||||
{ VK_F13, RETROK_F13 },
|
||||
{ VK_F14, RETROK_F14 },
|
||||
{ VK_F15, RETROK_F15 },
|
||||
{ VK_NUMLOCK, RETROK_NUMLOCK },
|
||||
{ VK_SCROLL, RETROK_SCROLLOCK },
|
||||
{ VK_LSHIFT, RETROK_LSHIFT },
|
||||
{ VK_RSHIFT, RETROK_RSHIFT },
|
||||
{ VK_LCONTROL, RETROK_LCTRL },
|
||||
{ VK_RCONTROL, RETROK_RCTRL },
|
||||
{ VK_LMENU, RETROK_LALT },
|
||||
{ VK_RMENU, RETROK_RALT },
|
||||
{ 0xE0, RETROK_KP_ENTER },
|
||||
{ VK_CAPITAL, RETROK_CAPSLOCK },
|
||||
{ VK_OEM_1, RETROK_SEMICOLON },
|
||||
{ VK_OEM_PLUS, RETROK_EQUALS },
|
||||
{ VK_OEM_COMMA, RETROK_COMMA },
|
||||
{ VK_OEM_MINUS, RETROK_MINUS },
|
||||
{ VK_OEM_PERIOD, RETROK_PERIOD },
|
||||
{ VK_OEM_2, RETROK_SLASH },
|
||||
{ VK_OEM_3, RETROK_BACKQUOTE },
|
||||
{ VK_OEM_4, RETROK_LEFTBRACKET },
|
||||
{ VK_OEM_5, RETROK_BACKSLASH },
|
||||
{ VK_OEM_6, RETROK_RIGHTBRACKET },
|
||||
{ VK_OEM_7, RETROK_QUOTE },
|
||||
{ VK_OEM_102, RETROK_OEM_102 },
|
||||
{ SC_BACKSPACE, RETROK_BACKSPACE },
|
||||
{ SC_TAB, RETROK_TAB },
|
||||
{ SC_CLEAR, RETROK_CLEAR },
|
||||
{ SC_RETURN, RETROK_RETURN },
|
||||
{ SC_PAUSE, RETROK_PAUSE },
|
||||
{ SC_ESCAPE, RETROK_ESCAPE },
|
||||
{ SC_SPACE, RETROK_SPACE },
|
||||
{ SC_PAGEUP, RETROK_PAGEUP },
|
||||
{ SC_PAGEDOWN, RETROK_PAGEDOWN },
|
||||
{ SC_END, RETROK_END },
|
||||
{ SC_HOME, RETROK_HOME },
|
||||
{ SC_LEFT, RETROK_LEFT },
|
||||
{ SC_UP, RETROK_UP },
|
||||
{ SC_RIGHT, RETROK_RIGHT },
|
||||
{ SC_DOWN, RETROK_DOWN },
|
||||
{ SC_PRINT, RETROK_PRINT },
|
||||
{ SC_INSERT, RETROK_INSERT },
|
||||
{ SC_DELETE, RETROK_DELETE },
|
||||
{ SC_HELP, RETROK_HELP },
|
||||
{ SC_0, RETROK_0 },
|
||||
{ SC_1, RETROK_1 },
|
||||
{ SC_2, RETROK_2 },
|
||||
{ SC_3, RETROK_3 },
|
||||
{ SC_4, RETROK_4 },
|
||||
{ SC_5, RETROK_5 },
|
||||
{ SC_6, RETROK_6 },
|
||||
{ SC_7, RETROK_7 },
|
||||
{ SC_8, RETROK_8 },
|
||||
{ SC_9, RETROK_9 },
|
||||
{ SC_a, RETROK_a },
|
||||
{ SC_b, RETROK_b },
|
||||
{ SC_c, RETROK_c },
|
||||
{ SC_d, RETROK_d },
|
||||
{ SC_e, RETROK_e },
|
||||
{ SC_f, RETROK_f },
|
||||
{ SC_g, RETROK_g },
|
||||
{ SC_h, RETROK_h },
|
||||
{ SC_i, RETROK_i },
|
||||
{ SC_j, RETROK_j },
|
||||
{ SC_k, RETROK_k },
|
||||
{ SC_l, RETROK_l },
|
||||
{ SC_m, RETROK_m },
|
||||
{ SC_n, RETROK_n },
|
||||
{ SC_o, RETROK_o },
|
||||
{ SC_p, RETROK_p },
|
||||
{ SC_q, RETROK_q },
|
||||
{ SC_r, RETROK_r },
|
||||
{ SC_s, RETROK_s },
|
||||
{ SC_t, RETROK_t },
|
||||
{ SC_u, RETROK_u },
|
||||
{ SC_v, RETROK_v },
|
||||
{ SC_w, RETROK_w },
|
||||
{ SC_x, RETROK_x },
|
||||
{ SC_y, RETROK_y },
|
||||
{ SC_z, RETROK_z },
|
||||
{ SC_LSUPER, RETROK_LSUPER },
|
||||
{ SC_RSUPER, RETROK_RSUPER },
|
||||
{ SC_MENU, RETROK_MENU },
|
||||
{ SC_KP0, RETROK_KP0 },
|
||||
{ SC_KP1, RETROK_KP1 },
|
||||
{ SC_KP2, RETROK_KP2 },
|
||||
{ SC_KP3, RETROK_KP3 },
|
||||
{ SC_KP4, RETROK_KP4 },
|
||||
{ SC_KP5, RETROK_KP5 },
|
||||
{ SC_KP6, RETROK_KP6 },
|
||||
{ SC_KP7, RETROK_KP7 },
|
||||
{ SC_KP8, RETROK_KP8 },
|
||||
{ SC_KP9, RETROK_KP9 },
|
||||
{ SC_KP_MULTIPLY, RETROK_KP_MULTIPLY },
|
||||
{ SC_KP_PLUS, RETROK_KP_PLUS },
|
||||
{ SC_KP_MINUS, RETROK_KP_MINUS },
|
||||
{ SC_KP_PERIOD, RETROK_KP_PERIOD },
|
||||
{ SC_KP_DIVIDE, RETROK_KP_DIVIDE },
|
||||
{ SC_F1, RETROK_F1 },
|
||||
{ SC_F2, RETROK_F2 },
|
||||
{ SC_F3, RETROK_F3 },
|
||||
{ SC_F4, RETROK_F4 },
|
||||
{ SC_F5, RETROK_F5 },
|
||||
{ SC_F6, RETROK_F6 },
|
||||
{ SC_F7, RETROK_F7 },
|
||||
{ SC_F8, RETROK_F8 },
|
||||
{ SC_F9, RETROK_F9 },
|
||||
{ SC_F10, RETROK_F10 },
|
||||
{ SC_F11, RETROK_F11 },
|
||||
{ SC_F12, RETROK_F12 },
|
||||
{ SC_F13, RETROK_F13 },
|
||||
{ SC_F14, RETROK_F14 },
|
||||
{ SC_F15, RETROK_F15 },
|
||||
{ SC_NUMLOCK, RETROK_NUMLOCK },
|
||||
{ SC_SCROLLLOCK, RETROK_SCROLLOCK },
|
||||
{ SC_LSHIFT, RETROK_LSHIFT },
|
||||
{ SC_RSHIFT, RETROK_RSHIFT },
|
||||
{ SC_LCTRL, RETROK_LCTRL },
|
||||
{ SC_RCTRL, RETROK_RCTRL },
|
||||
{ SC_LALT, RETROK_LALT },
|
||||
{ SC_RALT, RETROK_RALT },
|
||||
{ SC_KP_ENTER, RETROK_KP_ENTER },
|
||||
{ SC_CAPSLOCK, RETROK_CAPSLOCK },
|
||||
{ SC_COMMA, RETROK_COMMA },
|
||||
{ SC_PERIOD, RETROK_PERIOD },
|
||||
{ SC_MINUS, RETROK_MINUS },
|
||||
{ SC_EQUALS, RETROK_EQUALS },
|
||||
{ SC_LEFTBRACKET, RETROK_LEFTBRACKET },
|
||||
{ SC_RIGHTBRACKET, RETROK_RIGHTBRACKET },
|
||||
{ SC_SEMICOLON, RETROK_SEMICOLON },
|
||||
{ SC_BACKQUOTE, RETROK_BACKQUOTE },
|
||||
{ SC_BACKSLASH, RETROK_BACKSLASH },
|
||||
{ SC_SLASH, RETROK_SLASH },
|
||||
{ SC_APOSTROPHE, RETROK_QUOTE },
|
||||
{ SC_ANGLEBRACKET, RETROK_OEM_102 },
|
||||
{ 0, RETROK_UNKNOWN }
|
||||
};
|
||||
#endif
|
||||
|
@ -62,6 +62,168 @@ extern const struct rarch_key_map rarch_key_map_switch[];
|
||||
extern const struct rarch_key_map rarch_key_map_vita[];
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && _WIN32_WINNT >= 0x0501 && !defined(__WINRT__)
|
||||
enum winraw_scancodes {
|
||||
SC_ESCAPE = 0x01,
|
||||
SC_1 = 0x02,
|
||||
SC_2 = 0x03,
|
||||
SC_3 = 0x04,
|
||||
SC_4 = 0x05,
|
||||
SC_5 = 0x06,
|
||||
SC_6 = 0x07,
|
||||
SC_7 = 0x08,
|
||||
SC_8 = 0x09,
|
||||
SC_9 = 0x0A,
|
||||
SC_0 = 0x0B,
|
||||
SC_MINUS = 0x0C,
|
||||
SC_EQUALS = 0x0D,
|
||||
SC_BACKSPACE = 0x0E,
|
||||
SC_TAB = 0x0F,
|
||||
SC_q = 0x10,
|
||||
SC_w = 0x11,
|
||||
SC_e = 0x12,
|
||||
SC_r = 0x13,
|
||||
SC_t = 0x14,
|
||||
SC_y = 0x15,
|
||||
SC_u = 0x16,
|
||||
SC_i = 0x17,
|
||||
SC_o = 0x18,
|
||||
SC_p = 0x19,
|
||||
SC_LEFTBRACKET = 0x1A,
|
||||
SC_RIGHTBRACKET = 0x1B,
|
||||
SC_RETURN = 0x1C,
|
||||
SC_LCTRL = 0x1D,
|
||||
SC_a = 0x1E,
|
||||
SC_s = 0x1F,
|
||||
SC_d = 0x20,
|
||||
SC_f = 0x21,
|
||||
SC_g = 0x22,
|
||||
SC_h = 0x23,
|
||||
SC_j = 0x24,
|
||||
SC_k = 0x25,
|
||||
SC_l = 0x26,
|
||||
SC_SEMICOLON = 0x27,
|
||||
SC_APOSTROPHE = 0x28,
|
||||
SC_BACKQUOTE = 0x29,
|
||||
SC_LSHIFT = 0x2A,
|
||||
SC_BACKSLASH = 0x2B,
|
||||
SC_z = 0x2C,
|
||||
SC_x = 0x2D,
|
||||
SC_c = 0x2E,
|
||||
SC_v = 0x2F,
|
||||
SC_b = 0x30,
|
||||
SC_n = 0x31,
|
||||
SC_m = 0x32,
|
||||
SC_COMMA = 0x33,
|
||||
SC_PERIOD = 0x34,
|
||||
SC_SLASH = 0x35,
|
||||
SC_RSHIFT = 0x36,
|
||||
SC_KP_MULTIPLY = 0x37,
|
||||
SC_LALT = 0x38,
|
||||
SC_SPACE = 0x39,
|
||||
SC_CAPSLOCK = 0x3A,
|
||||
SC_F1 = 0x3B,
|
||||
SC_F2 = 0x3C,
|
||||
SC_F3 = 0x3D,
|
||||
SC_F4 = 0x3E,
|
||||
SC_F5 = 0x3F,
|
||||
SC_F6 = 0x40,
|
||||
SC_F7 = 0x41,
|
||||
SC_F8 = 0x42,
|
||||
SC_F9 = 0x43,
|
||||
SC_F10 = 0x44,
|
||||
SC_NUMLOCK = 0x45,
|
||||
SC_SCROLLLOCK = 0x46,
|
||||
SC_KP7 = 0x47,
|
||||
SC_KP8 = 0x48,
|
||||
SC_KP9 = 0x49,
|
||||
SC_KP_MINUS = 0x4A,
|
||||
SC_KP4 = 0x4B,
|
||||
SC_KP5 = 0x4C,
|
||||
SC_KP6 = 0x4D,
|
||||
SC_KP_PLUS = 0x4E,
|
||||
SC_KP1 = 0x4F,
|
||||
SC_KP2 = 0x50,
|
||||
SC_KP3 = 0x51,
|
||||
SC_KP0 = 0x52,
|
||||
SC_KP_PERIOD = 0x53,
|
||||
SC_ALT_PRINT = 0x54,
|
||||
SC_ANGLEBRACKET = 0x56,
|
||||
SC_F11 = 0x57,
|
||||
SC_F12 = 0x58,
|
||||
SC_OEM_1 = 0x5a,
|
||||
SC_OEM_2 = 0x5b,
|
||||
SC_OEM_3 = 0x5c,
|
||||
SC_ERASE_EOF = 0x5d,
|
||||
SC_CLEAR = 0x5d,
|
||||
SC_OEM_4 = 0x5e,
|
||||
SC_OEM_5 = 0x5f,
|
||||
SC_HELP = 0x63,
|
||||
SC_F13 = 0x64,
|
||||
SC_F14 = 0x65,
|
||||
SC_F15 = 0x66,
|
||||
SC_F16 = 0x67,
|
||||
SC_F17 = 0x68,
|
||||
SC_F18 = 0x69,
|
||||
SC_F19 = 0x6a,
|
||||
SC_F20 = 0x6b,
|
||||
SC_F21 = 0x6c,
|
||||
SC_F22 = 0x6d,
|
||||
SC_F23 = 0x6e,
|
||||
SC_OEM_6 = 0x6f,
|
||||
SC_KATAKANA = 0x70,
|
||||
SC_OEM_7 = 0x71,
|
||||
SC_F24 = 0x76,
|
||||
SC_SBCSCHAR = 0x77,
|
||||
SC_CONVERT = 0x79,
|
||||
SC_NONCONVERT = 0x7B,
|
||||
|
||||
SC_MEDIA_PREV = 0xE010,
|
||||
SC_MEDIA_NEXT = 0xE019,
|
||||
SC_KP_ENTER = 0xE01C,
|
||||
SC_RCTRL = 0xE01D,
|
||||
SC_VOLUME_MUTE = 0xE020,
|
||||
SC_LAUNCH_APP2 = 0xE021,
|
||||
SC_MEDIA_PLAY = 0xE022,
|
||||
SC_MEDIA_STOP = 0xE024,
|
||||
SC_VOLUME_DOWN = 0xE02E,
|
||||
SC_VOLUME_UP = 0xE030,
|
||||
SC_BROWSER_HOME = 0xE032,
|
||||
SC_KP_DIVIDE = 0xE035,
|
||||
SC_PRINT = 0xE037,
|
||||
SC_RALT = 0xE038,
|
||||
SC_BREAK = 0xE046,
|
||||
SC_HOME = 0xE047,
|
||||
SC_UP = 0xE048,
|
||||
SC_PAGEUP = 0xE049,
|
||||
SC_LEFT = 0xE04B,
|
||||
SC_RIGHT = 0xE04D,
|
||||
SC_END = 0xE04F,
|
||||
SC_DOWN = 0xE050,
|
||||
SC_PAGEDOWN = 0xE051,
|
||||
SC_INSERT = 0xE052,
|
||||
SC_DELETE = 0xE053,
|
||||
SC_LSUPER = 0xE05B,
|
||||
SC_RSUPER = 0xE05C,
|
||||
SC_MENU = 0xE05D,
|
||||
SC_POWER = 0xE05E,
|
||||
SC_SLEEP = 0xE05F,
|
||||
SC_WAKE = 0xE063,
|
||||
SC_BROWSER_SEARCH = 0xE065,
|
||||
SC_BROWSER_FAVORITES = 0xE066,
|
||||
SC_BROWSER_REFRESH = 0xE067,
|
||||
SC_BROWSER_STOP = 0xE068,
|
||||
SC_BROWSER_FORWARD = 0xE069,
|
||||
SC_BROWSER_BACK = 0xE06A,
|
||||
SC_LAUNCH_APP1 = 0xE06B,
|
||||
SC_LAUNCH_EMAIL = 0xE06C,
|
||||
SC_LAUNCH_MEDIA = 0xE06D,
|
||||
|
||||
SC_PAUSE = 0xFFFE/*0xE11D45*/,
|
||||
SC_LAST = 0xFFFF,
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* input_keymaps_init_keyboard_lut:
|
||||
* @map : Keyboard map.
|
||||
|
Loading…
x
Reference in New Issue
Block a user