|
@@ -20,12 +20,12 @@
|
|
|
*/
|
|
|
#include "SDL_internal.h"
|
|
|
|
|
|
-/* Windows scancode to SDL scancode mapping table */
|
|
|
-/* derived from Microsoft scan code document, http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc */
|
|
|
+/*
|
|
|
+ * Windows scancode to SDL scancode mapping table
|
|
|
+ * https://learn.microsoft.com/windows/win32/inputdev/about-keyboard-input#scan-codes */
|
|
|
|
|
|
/* *INDENT-OFF* */ /* clang-format off */
|
|
|
-static const SDL_Scancode windows_scancode_table[] =
|
|
|
-{
|
|
|
+static const SDL_Scancode windows_scancode_table[] = {
|
|
|
/*0x00*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x01*/ SDL_SCANCODE_ESCAPE,
|
|
|
/*0x02*/ SDL_SCANCODE_1,
|
|
@@ -81,7 +81,7 @@ static const SDL_Scancode windows_scancode_table[] =
|
|
|
/*0x34*/ SDL_SCANCODE_PERIOD,
|
|
|
/*0x35*/ SDL_SCANCODE_SLASH,
|
|
|
/*0x36*/ SDL_SCANCODE_RSHIFT,
|
|
|
- /*0x37*/ SDL_SCANCODE_PRINTSCREEN,
|
|
|
+ /*0x37*/ SDL_SCANCODE_KP_MULTIPLY,
|
|
|
/*0x38*/ SDL_SCANCODE_LALT,
|
|
|
/*0x39*/ SDL_SCANCODE_SPACE,
|
|
|
/*0x3a*/ SDL_SCANCODE_CAPSLOCK,
|
|
@@ -97,29 +97,29 @@ static const SDL_Scancode windows_scancode_table[] =
|
|
|
/*0x44*/ SDL_SCANCODE_F10,
|
|
|
/*0x45*/ SDL_SCANCODE_NUMLOCKCLEAR,
|
|
|
/*0x46*/ SDL_SCANCODE_SCROLLLOCK,
|
|
|
- /*0x47*/ SDL_SCANCODE_HOME,
|
|
|
- /*0x48*/ SDL_SCANCODE_UP,
|
|
|
- /*0x49*/ SDL_SCANCODE_PAGEUP,
|
|
|
+ /*0x47*/ SDL_SCANCODE_KP_7,
|
|
|
+ /*0x48*/ SDL_SCANCODE_KP_8,
|
|
|
+ /*0x49*/ SDL_SCANCODE_KP_9,
|
|
|
/*0x4a*/ SDL_SCANCODE_KP_MINUS,
|
|
|
- /*0x4b*/ SDL_SCANCODE_LEFT,
|
|
|
+ /*0x4b*/ SDL_SCANCODE_KP_4,
|
|
|
/*0x4c*/ SDL_SCANCODE_KP_5,
|
|
|
- /*0x4d*/ SDL_SCANCODE_RIGHT,
|
|
|
+ /*0x4d*/ SDL_SCANCODE_KP_6,
|
|
|
/*0x4e*/ SDL_SCANCODE_KP_PLUS,
|
|
|
- /*0x4f*/ SDL_SCANCODE_END,
|
|
|
- /*0x50*/ SDL_SCANCODE_DOWN,
|
|
|
- /*0x51*/ SDL_SCANCODE_PAGEDOWN,
|
|
|
- /*0x52*/ SDL_SCANCODE_INSERT,
|
|
|
- /*0x53*/ SDL_SCANCODE_DELETE,
|
|
|
+ /*0x4f*/ SDL_SCANCODE_KP_1,
|
|
|
+ /*0x50*/ SDL_SCANCODE_KP_2,
|
|
|
+ /*0x51*/ SDL_SCANCODE_KP_3,
|
|
|
+ /*0x52*/ SDL_SCANCODE_KP_0,
|
|
|
+ /*0x53*/ SDL_SCANCODE_KP_PERIOD,
|
|
|
/*0x54*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x55*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x56*/ SDL_SCANCODE_NONUSBACKSLASH,
|
|
|
/*0x57*/ SDL_SCANCODE_F11,
|
|
|
/*0x58*/ SDL_SCANCODE_F12,
|
|
|
- /*0x59*/ SDL_SCANCODE_PAUSE,
|
|
|
+ /*0x59*/ SDL_SCANCODE_KP_EQUALS,
|
|
|
/*0x5a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x5b*/ SDL_SCANCODE_LGUI,
|
|
|
- /*0x5c*/ SDL_SCANCODE_RGUI,
|
|
|
- /*0x5d*/ SDL_SCANCODE_APPLICATION,
|
|
|
+ /*0x5b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0x5c*/ SDL_SCANCODE_INTERNATIONAL6,
|
|
|
+ /*0x5d*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x5e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x5f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x60*/ SDL_SCANCODE_UNKNOWN,
|
|
@@ -133,26 +133,154 @@ static const SDL_Scancode windows_scancode_table[] =
|
|
|
/*0x68*/ SDL_SCANCODE_F17,
|
|
|
/*0x69*/ SDL_SCANCODE_F18,
|
|
|
/*0x6a*/ SDL_SCANCODE_F19,
|
|
|
- /*0x6b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x6c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x6d*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x6e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0x6b*/ SDL_SCANCODE_F20,
|
|
|
+ /*0x6c*/ SDL_SCANCODE_F21,
|
|
|
+ /*0x6d*/ SDL_SCANCODE_F22,
|
|
|
+ /*0x6e*/ SDL_SCANCODE_F23,
|
|
|
/*0x6f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x70*/ SDL_SCANCODE_INTERNATIONAL2,
|
|
|
- /*0x71*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x72*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0x71*/ SDL_SCANCODE_LANG2,
|
|
|
+ /*0x72*/ SDL_SCANCODE_LANG1,
|
|
|
/*0x73*/ SDL_SCANCODE_INTERNATIONAL1,
|
|
|
/*0x74*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x75*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x76*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x77*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x78*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0x76*/ SDL_SCANCODE_F24,
|
|
|
+ /*0x77*/ SDL_SCANCODE_LANG4,
|
|
|
+ /*0x78*/ SDL_SCANCODE_LANG3,
|
|
|
/*0x79*/ SDL_SCANCODE_INTERNATIONAL4,
|
|
|
/*0x7a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x7b*/ SDL_SCANCODE_INTERNATIONAL5,
|
|
|
/*0x7c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
/*0x7d*/ SDL_SCANCODE_INTERNATIONAL3,
|
|
|
- /*0x7e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
- /*0x7f*/ SDL_SCANCODE_UNKNOWN
|
|
|
+ /*0x7e*/ SDL_SCANCODE_KP_COMMA,
|
|
|
+ /*0x7f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe000*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe001*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe002*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe003*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe004*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe005*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe006*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe007*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe008*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe009*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe00a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe00b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe00c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe00d*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe00e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe00f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe010*/ SDL_SCANCODE_AUDIOPREV,
|
|
|
+ /*0xe011*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe012*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe013*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe014*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe015*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe016*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe017*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe018*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe019*/ SDL_SCANCODE_AUDIONEXT,
|
|
|
+ /*0xe01a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe01b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe01c*/ SDL_SCANCODE_KP_ENTER,
|
|
|
+ /*0xe01d*/ SDL_SCANCODE_RCTRL,
|
|
|
+ /*0xe01e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe01f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe020*/ SDL_SCANCODE_MUTE,
|
|
|
+ /*0xe021*/ SDL_SCANCODE_CALCULATOR,
|
|
|
+ /*0xe022*/ SDL_SCANCODE_AUDIOPLAY,
|
|
|
+ /*0xe023*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe024*/ SDL_SCANCODE_AUDIOSTOP,
|
|
|
+ /*0xe025*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe026*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe027*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe028*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe029*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe02a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe02b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe02c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe02d*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe02e*/ SDL_SCANCODE_VOLUMEDOWN,
|
|
|
+ /*0xe02f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe030*/ SDL_SCANCODE_VOLUMEUP,
|
|
|
+ /*0xe031*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe032*/ SDL_SCANCODE_AC_HOME,
|
|
|
+ /*0xe033*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe034*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe035*/ SDL_SCANCODE_KP_DIVIDE,
|
|
|
+ /*0xe036*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe037*/ SDL_SCANCODE_PRINTSCREEN,
|
|
|
+ /*0xe038*/ SDL_SCANCODE_RALT,
|
|
|
+ /*0xe039*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe03a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe03b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe03c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe03d*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe03e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe03f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe040*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe041*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe042*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe043*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe044*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe045*/ SDL_SCANCODE_NUMLOCKCLEAR,
|
|
|
+ /*0xe046*/ SDL_SCANCODE_PAUSE,
|
|
|
+ /*0xe047*/ SDL_SCANCODE_HOME,
|
|
|
+ /*0xe048*/ SDL_SCANCODE_UP,
|
|
|
+ /*0xe049*/ SDL_SCANCODE_PAGEUP,
|
|
|
+ /*0xe04a*/ SDL_SCANCODE_LEFT,
|
|
|
+ /*0xe04b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe04c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe04d*/ SDL_SCANCODE_RIGHT,
|
|
|
+ /*0xe04e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe04f*/ SDL_SCANCODE_END,
|
|
|
+ /*0xe050*/ SDL_SCANCODE_DOWN,
|
|
|
+ /*0xe051*/ SDL_SCANCODE_PAGEDOWN,
|
|
|
+ /*0xe052*/ SDL_SCANCODE_INSERT,
|
|
|
+ /*0xe053*/ SDL_SCANCODE_DELETE,
|
|
|
+ /*0xe054*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe055*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe056*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe057*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe058*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe059*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe05a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe05b*/ SDL_SCANCODE_LGUI,
|
|
|
+ /*0xe05c*/ SDL_SCANCODE_RGUI,
|
|
|
+ /*0xe05d*/ SDL_SCANCODE_APPLICATION,
|
|
|
+ /*0xe05e*/ SDL_SCANCODE_POWER,
|
|
|
+ /*0xe05f*/ SDL_SCANCODE_SLEEP,
|
|
|
+ /*0xe060*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe061*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe062*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe063*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe064*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe065*/ SDL_SCANCODE_AC_SEARCH,
|
|
|
+ /*0xe066*/ SDL_SCANCODE_AC_BOOKMARKS,
|
|
|
+ /*0xe067*/ SDL_SCANCODE_AC_REFRESH,
|
|
|
+ /*0xe068*/ SDL_SCANCODE_AC_STOP,
|
|
|
+ /*0xe069*/ SDL_SCANCODE_AC_FORWARD,
|
|
|
+ /*0xe06a*/ SDL_SCANCODE_AC_BACK,
|
|
|
+ /*0xe06b*/ SDL_SCANCODE_COMPUTER,
|
|
|
+ /*0xe06c*/ SDL_SCANCODE_MAIL,
|
|
|
+ /*0xe06d*/ SDL_SCANCODE_MEDIASELECT,
|
|
|
+ /*0xe06e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe06f*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe070*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe071*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe072*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe073*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe074*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe075*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe076*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe077*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe078*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe079*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe07a*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe07b*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe07c*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe07d*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe07e*/ SDL_SCANCODE_UNKNOWN,
|
|
|
+ /*0xe07f*/ SDL_SCANCODE_UNKNOWN
|
|
|
};
|
|
|
/* *INDENT-ON* */ /* clang-format on */
|