diff options
-rw-r--r-- | keymaps/km_be_LINUX.map | 61 | ||||
-rw-r--r-- | keymaps/km_br_LINUX.map | 23 | ||||
-rw-r--r-- | keymaps/km_ch_LINUX.map | 31 | ||||
-rw-r--r-- | keymaps/km_de_LINUX.map | 28 | ||||
-rw-r--r-- | keymaps/km_es_LINUX.map | 27 | ||||
-rw-r--r-- | keymaps/km_fr_LINUX.map | 59 | ||||
-rw-r--r-- | keymaps/km_fr_OSX.map | 29 | ||||
-rw-r--r-- | keymaps/km_gb_LINUX.map | 13 | ||||
-rw-r--r-- | keymaps/km_it_LINUX.map | 27 | ||||
-rw-r--r-- | keymaps/km_pt_LINUX.map | 27 | ||||
-rw-r--r-- | keymaps/km_se_LINUX.map | 25 | ||||
-rw-r--r-- | keymaps/km_se_OSX.map | 25 | ||||
-rw-r--r-- | src/osd/modules/input/input_common.cpp | 6 | ||||
-rw-r--r-- | src/osd/modules/input/input_common.h | 1 | ||||
-rw-r--r-- | src/osd/modules/input/input_sdl.cpp | 316 |
15 files changed, 496 insertions, 202 deletions
diff --git a/keymaps/km_be_LINUX.map b/keymaps/km_be_LINUX.map index 4462771f129..e15a4345321 100644 --- a/keymaps/km_be_LINUX.map +++ b/keymaps/km_be_LINUX.map @@ -1,44 +1,49 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Belgian AZERTY 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ² -ITEM_ID_1 SDLK_AMPERSAND 0x0a 0x26 & -ITEM_ID_2 SDLK_WORLD_73 0x0b 0xe9 é -ITEM_ID_3 SDLK_QUOTEDBL 0x0c 0x22 " -ITEM_ID_4 SDLK_QUOTE 0x0d 0x27 ' -ITEM_ID_5 SDLK_LEFTPAREN 0x0e 0x28 ( -ITEM_ID_6 SDLK_WORLD_7 0x0f 0xa7 § -ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è -ITEM_ID_8 SDLK_EXCLAIM 0x11 0x21 ! -ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç -ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à -ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 ) -ITEM_ID_EQUALS SDLK_MINUS 0x15 0x2d - +ITEM_ID_TILDE SDL_SCANCODE_WORLD_18 ² +ITEM_ID_1 SDL_SCANCODE_AMPERSAND & +ITEM_ID_2 SDL_SCANCODE_WORLD_73 é +ITEM_ID_3 SDL_SCANCODE_QUOTEDBL " +ITEM_ID_4 SDL_SCANCODE_QUOTE ' +ITEM_ID_5 SDL_SCANCODE_LEFTPAREN ( +ITEM_ID_6 SDL_SCANCODE_WORLD_7 § +ITEM_ID_7 SDL_SCANCODE_WORLD_72 è +ITEM_ID_8 SDL_SCANCODE_EXCLAIM ! +ITEM_ID_9 SDL_SCANCODE_WORLD_71 ç +ITEM_ID_0 SDL_SCANCODE_WORLD_64 à +ITEM_ID_MINUS SDL_SCANCODE_RIGHTPAREN ) +ITEM_ID_EQUALS SDL_SCANCODE_MINUS - # # Row 2 # -ITEM_ID_Q SDLK_a 0x18 0x61 A -ITEM_ID_W SDLK_z 0x19 0x7a Z -ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x5e ^ -ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x24 $ +ITEM_ID_Q SDL_SCANCODE_A A +ITEM_ID_W SDL_SCANCODE_Z Z +ITEM_ID_OPENBRACE SDL_SCANCODE_CARET ^ +ITEM_ID_CLOSEBRACE SDL_SCANCODE_DOLLAR $ # # Row 3 # -ITEM_ID_A SDLK_q 0x26 0x71 Q -ITEM_ID_COLON SDLK_m 0x2f 0x6d M -ITEM_ID_QUOTE SDLK_WORLD_89 0x30 0xf9 ù -ITEM_ID_BACKSLASH SDLK_WORLD_21 0x33 0xb5 µ +ITEM_ID_A SDL_SCANCODE_Q Q +ITEM_ID_COLON SDL_SCANCODE_M M +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_89 ù +ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_21 µ # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_Z SDLK_w 0x34 0x77 W -ITEM_ID_M SDLK_COMMA 0x3a 0x2c , -ITEM_ID_COMMA SDLK_SEMICOLON 0x3b 0x3b ; -ITEM_ID_STOP SDLK_COLON 0x3c 0x3a : -ITEM_ID_SLASH SDLK_EQUALS 0x3d 0x3d = +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_Z SDL_SCANCODE_W W +ITEM_ID_M SDL_SCANCODE_COMMA , +ITEM_ID_COMMA SDL_SCANCODE_SEMICOLON ; +ITEM_ID_STOP SDL_SCANCODE_COLON : +ITEM_ID_SLASH SDL_SCANCODE_EQUALS = # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_br_LINUX.map b/keymaps/km_br_LINUX.map index 19ded27bbef..fb764448380 100644 --- a/keymaps/km_br_LINUX.map +++ b/keymaps/km_br_LINUX.map @@ -1,3 +1,8 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Brazilian QWERTY 107-keys keyboard (Linux) # # The 107-keys Brazilian keyboard has an extra key used to type "/". @@ -10,24 +15,24 @@ # # Row 1 # -ITEM_ID_TILDE SDLK_QUOTE 0x31 0x27 ' +ITEM_ID_TILDE SDL_SCANCODE_QUOTE ' # # Row 2 # -ITEM_ID_OPENBRACE SDLK_COMPOSE 0x22 0x00 ´ -ITEM_ID_CLOSEBRACE SDLK_LEFTBRACKET 0x23 0x00 [ +ITEM_ID_OPENBRACE SDL_SCANCODE_COMPOSE ´ +ITEM_ID_CLOSEBRACE SDL_SCANCODE_LEFTBRACKET [ # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_71 0x2f 0xe7 Ç -ITEM_ID_QUOTE SDLK_COMPOSE 0x30 0x00 ~ -ITEM_ID_BACKSLASH SDLK_RIGHTBRACKET 0x33 0x00 ] +ITEM_ID_COLON SDL_SCANCODE_WORLD_71 Ç +ITEM_ID_QUOTE SDL_SCANCODE_COMPOSE ~ +ITEM_ID_BACKSLASH SDL_SCANCODE_RIGHTBRACKET ] # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_SLASH SDLK_SEMICOLON 0x3d 0x3b ; +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_SLASH SDL_SCANCODE_SEMICOLON ; # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_ch_LINUX.map b/keymaps/km_ch_LINUX.map index 53595faa082..2e27dfd0997 100644 --- a/keymaps/km_ch_LINUX.map +++ b/keymaps/km_ch_LINUX.map @@ -1,29 +1,34 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Swiss QWERTZ 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_WORLD_7 0x31 0xa7 § -ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 ' -ITEM_ID_EQUALS SDLK_CARET 0x15 0x00 ^ +ITEM_ID_TILDE SDL_SCANCODE_WORLD_7 § +ITEM_ID_MINUS SDL_SCANCODE_QUOTE ' +ITEM_ID_EQUALS SDL_SCANCODE_CARET ^ # # Row 2 # -ITEM_ID_Y SDLK_z 0x1d 0x7a Z -ITEM_ID_OPENBRACE SDLK_WORLD_92 0x22 0xfc ü -ITEM_ID_CLOSEBRACE SDLK_COMPOSE 0x23 0x00 ¨ +ITEM_ID_Y SDL_SCANCODE_Z Z +ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_92 ü +ITEM_ID_CLOSEBRACE SDL_SCANCODE_COMPOSE ¨ # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_86 0x2f 0xf6 ö -ITEM_ID_QUOTE SDLK_WORLD_68 0x30 0xe4 ä -ITEM_ID_BACKSLASH SDLK_DOLLAR 0x33 0x24 $ +ITEM_ID_COLON SDL_SCANCODE_WORLD_86 ö +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_68 ä +ITEM_ID_BACKSLASH SDL_SCANCODE_DOLLAR $ # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_Z SDLK_y 0x34 0x79 Y -ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d - +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_Z SDL_SCANCODE_Y Y +ITEM_ID_SLASH SDL_SCANCODE_MINUS - # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_de_LINUX.map b/keymaps/km_de_LINUX.map index 4b8ec55a793..c2a2b2d66fc 100644 --- a/keymaps/km_de_LINUX.map +++ b/keymaps/km_de_LINUX.map @@ -1,29 +1,31 @@ +[SDL2] # MAME/MESS keymap for German QWERTZ 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_CARET 0x31 0x00 ^ -ITEM_ID_MINUS SDLK_WORLD_63 0x14 0xdf ß -ITEM_ID_EQUALS SDLK_COMPOSE 0x15 0x00 ´ +ITEM_ID_TILDE SDL_SCANCODE_GRAVE ^ +ITEM_ID_MINUS SDL_SCANCODE_MINUS ß +ITEM_ID_EQUALS SDL_SCANCODE_EQUALS ´ # # Row 2 # -ITEM_ID_Y SDLK_z 0x1d 0x7a Z -ITEM_ID_OPENBRACE SDLK_WORLD_92 0x22 0xfc Ü -ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x2b + +ITEM_ID_Y SDL_SCANCODE_Z Z +ITEM_ID_OPENBRACE SDL_SCANCODE_LEFTBRACKET Ü +ITEM_ID_CLOSEBRACE SDL_SCANCODE_RIGHTBRACKET + # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_86 0x2f 0xf6 Ö -ITEM_ID_QUOTE SDLK_WORLD_68 0x30 0xe4 Ä -ITEM_ID_BACKSLASH SDLK_HASH 0x33 0x23 # +ITEM_ID_COLON SDL_SCANCODE_SEMICOLON Ö +ITEM_ID_QUOTE SDL_SCANCODE_APOSTROPHE Ä +ITEM_ID_BACKSLASH SDL_SCANCODE_BACKSLASH # # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_Z SDLK_y 0x34 0x79 Y -ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d - +ITEM_ID_BACKSLASH2 SDL_SCANCODE_NONUSBACKSLASH < +ITEM_ID_Z SDL_SCANCODE_Y Y +ITEM_ID_SLASH SDL_SCANCODE_SLASH - # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_RALT ALTGR + diff --git a/keymaps/km_es_LINUX.map b/keymaps/km_es_LINUX.map index 584d791a9d2..57c167cda74 100644 --- a/keymaps/km_es_LINUX.map +++ b/keymaps/km_es_LINUX.map @@ -1,3 +1,8 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Spanish QWERTY 105-keys keyboard (Linux) # SDL can tell the difference between the two COMPOSE keys but assigns them the same label # thus both OPENBRACE and QUOTE appear like "` ´" in the user interface. @@ -5,26 +10,26 @@ # # Row 1 # -ITEM_ID_TILDE SDLK_WORLD_26 0x31 0xba º -ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 ' -ITEM_ID_EQUALS SDLK_WORLD_1 0x15 0xa1 ¡ +ITEM_ID_TILDE SDL_SCANCODE_WORLD_26 º +ITEM_ID_MINUS SDL_SCANCODE_QUOTE ' +ITEM_ID_EQUALS SDL_SCANCODE_WORLD_1 ¡ # # Row 2 # -ITEM_ID_OPENBRACE SDLK_COMPOSE 0x22 0x00 ` -ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x00 + +ITEM_ID_OPENBRACE SDL_SCANCODE_COMPOSE ` +ITEM_ID_CLOSEBRACE SDL_SCANCODE_PLUS + # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_81 0x2f 0xf1 Ñ -ITEM_ID_QUOTE SDLK_COMPOSE 0x30 0x00 ´ -ITEM_ID_BACKSLASH SDLK_WORLD_71 0x33 0x00 Ç +ITEM_ID_COLON SDL_SCANCODE_WORLD_81 Ñ +ITEM_ID_QUOTE SDL_SCANCODE_COMPOSE ´ +ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_71 Ç # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d - +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_SLASH SDL_SCANCODE_MINUS - # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_fr_LINUX.map b/keymaps/km_fr_LINUX.map index f33c899b997..b2814536994 100644 --- a/keymaps/km_fr_LINUX.map +++ b/keymaps/km_fr_LINUX.map @@ -1,43 +1,48 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for French AZERTY 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ² -ITEM_ID_1 SDLK_AMPERSAND 0x0a 0x26 & -ITEM_ID_2 SDLK_WORLD_73 0x0b 0xe9 é -ITEM_ID_3 SDLK_QUOTEDBL 0x0c 0x22 " -ITEM_ID_4 SDLK_QUOTE 0x0d 0x27 ' -ITEM_ID_5 SDLK_LEFTPAREN 0x0e 0x28 ( -ITEM_ID_6 SDLK_MINUS 0x0f 0x2d - -ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è -ITEM_ID_8 SDLK_UNDERSCORE 0x11 0x5f _ -ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç -ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à -ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 ) +ITEM_ID_TILDE SDL_SCANCODE_WORLD_18 ² +ITEM_ID_1 SDL_SCANCODE_AMPERSAND & +ITEM_ID_2 SDL_SCANCODE_WORLD_73 é +ITEM_ID_3 SDL_SCANCODE_QUOTEDBL " +ITEM_ID_4 SDL_SCANCODE_QUOTE ' +ITEM_ID_5 SDL_SCANCODE_LEFTPAREN ( +ITEM_ID_6 SDL_SCANCODE_MINUS - +ITEM_ID_7 SDL_SCANCODE_WORLD_72 è +ITEM_ID_8 SDL_SCANCODE_UNDERSCORE _ +ITEM_ID_9 SDL_SCANCODE_WORLD_71 ç +ITEM_ID_0 SDL_SCANCODE_WORLD_64 à +ITEM_ID_MINUS SDL_SCANCODE_RIGHTPAREN ) # # Row 2 # -ITEM_ID_Q SDLK_a 0x18 0x61 A -ITEM_ID_W SDLK_z 0x19 0x7a Z -ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x00 ^ -ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x00 $ +ITEM_ID_Q SDL_SCANCODE_A A +ITEM_ID_W SDL_SCANCODE_Z Z +ITEM_ID_OPENBRACE SDL_SCANCODE_CARET ^ +ITEM_ID_CLOSEBRACE SDL_SCANCODE_DOLLAR $ # # Row 3 # -ITEM_ID_A SDLK_q 0x26 0x51 Q -ITEM_ID_COLON SDLK_m 0x2f 0x6d M -ITEM_ID_QUOTE SDLK_WORLD_89 0x30 0xf9 ù -ITEM_ID_BACKSLASH SDLK_ASTERISK 0x33 0x2a * +ITEM_ID_A SDL_SCANCODE_Q Q +ITEM_ID_COLON SDL_SCANCODE_M M +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_89 ù +ITEM_ID_BACKSLASH SDL_SCANCODE_ASTERISK * # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_Z SDLK_w 0x34 0x77 W -ITEM_ID_M SDLK_COMMA 0x3a 0x2c , -ITEM_ID_COMMA SDLK_SEMICOLON 0x3b 0x3b ; -ITEM_ID_STOP SDLK_COLON 0x3c 0x3a : -ITEM_ID_SLASH SDLK_EXCLAIM 0x3d 0x21 ! +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_Z SDL_SCANCODE_w W +ITEM_ID_M SDL_SCANCODE_COMMA , +ITEM_ID_COMMA SDL_SCANCODE_SEMICOLON ; +ITEM_ID_STOP SDL_SCANCODE_COLON : +ITEM_ID_SLASH SDL_SCANCODE_EXCLAIM ! # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_fr_OSX.map b/keymaps/km_fr_OSX.map index 9a492ca2d3e..d2c11c7465b 100644 --- a/keymaps/km_fr_OSX.map +++ b/keymaps/km_fr_OSX.map @@ -1,15 +1,20 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for French AZERTY keyboard (OSX) # # -ITEM_ID_1 SDLK_AMPERSAND 0x12 0x26 & -ITEM_ID_2 SDLK_WORLD_0 0x13 0xe9 é -ITEM_ID_3 SDLK_QUOTEDBL 0x14 0x22 " -ITEM_ID_4 SDLK_QUOTE 0x15 0x27 ' -ITEM_ID_5 SDLK_LEFTPAREN 0x17 0x28 ( -ITEM_ID_6 SDLK_WORLD_1 0x16 0xa7 § -ITEM_ID_7 SDLK_WORLD_3 0x1a 0xe8 è -ITEM_ID_8 SDLK_EXCLAIM 0x1c 0x21 ! -ITEM_ID_9 SDLK_WORLD_2 0x19 0xe7 ç -ITEM_ID_0 SDLK_WORLD_4 0x1d 0xe0 à -ITEM_ID_MINUS SDLK_RIGHTPAREN 0x1b 0x29 ) -ITEM_ID_EQUALS SDLK_MINUS 0x18 0x2d -
\ No newline at end of file +ITEM_ID_1 SDL_SCANCODE_AMPERSAND & +ITEM_ID_2 SDL_SCANCODE_WORLD_0 � +ITEM_ID_3 SDL_SCANCODE_QUOTEDBL " +ITEM_ID_4 SDL_SCANCODE_QUOTE ' +ITEM_ID_5 SDL_SCANCODE_LEFTPAREN ( +ITEM_ID_6 SDL_SCANCODE_WORLD_1 � +ITEM_ID_7 SDL_SCANCODE_WORLD_3 � +ITEM_ID_8 SDL_SCANCODE_EXCLAIM ! +ITEM_ID_9 SDL_SCANCODE_WORLD_2 � +ITEM_ID_0 SDL_SCANCODE_WORLD_4 � +ITEM_ID_MINUS SDL_SCANCODE_RIGHTPAREN ) +ITEM_ID_EQUALS SDL_SCANCODE_MINUS -
\ No newline at end of file diff --git a/keymaps/km_gb_LINUX.map b/keymaps/km_gb_LINUX.map index d4fa500cbce..f7d9f13c194 100644 --- a/keymaps/km_gb_LINUX.map +++ b/keymaps/km_gb_LINUX.map @@ -1,20 +1,25 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for British QWERTY 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_BACKQUOTE 0x31 0x60 ` +ITEM_ID_TILDE SDL_SCANCODE_BACKQUOTE ` # # Row 2 # # # Row 3 # -ITEM_ID_BACKSLASH SDLK_HASH 0x33 0x23 # +ITEM_ID_BACKSLASH SDL_SCANCODE_HASH # # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_BACKSLASH 0x5e 0x5c \ +ITEM_ID_BACKSLASH2 SDL_SCANCODE_BACKSLASH \ # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_it_LINUX.map b/keymaps/km_it_LINUX.map index b6fdfe329a2..96c641eb708 100644 --- a/keymaps/km_it_LINUX.map +++ b/keymaps/km_it_LINUX.map @@ -1,27 +1,32 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Italian QWERTY 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_BACKSLASH 0x31 0x5c \ -ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 ' -ITEM_ID_EQUALS SDLK_WORLD_76 0x15 0xec ì +ITEM_ID_TILDE SDL_SCANCODE_BACKSLASH \ +ITEM_ID_MINUS SDL_SCANCODE_QUOTE ' +ITEM_ID_EQUALS SDL_SCANCODE_WORLD_76 ì # # Row 2 # -ITEM_ID_OPENBRACE SDLK_WORLD_72 0x22 0xe8 è -ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x2b + +ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_72 è +ITEM_ID_CLOSEBRACE SDL_SCANCODE_PLUS + # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_82 0x2f 0xf2 ò -ITEM_ID_QUOTE SDLK_WORLD_64 0x30 0xe0 à -ITEM_ID_BACKSLASH SDLK_WORLD_89 0x33 0xf9 ù +ITEM_ID_COLON SDL_SCANCODE_WORLD_82 ò +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_64 à +ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_89 ù # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d - +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_SLASH SDL_SCANCODE_MINUS - # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_pt_LINUX.map b/keymaps/km_pt_LINUX.map index 3767058e2de..ff449e92f2d 100644 --- a/keymaps/km_pt_LINUX.map +++ b/keymaps/km_pt_LINUX.map @@ -1,3 +1,8 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Portuguese QWERTY 105-keys keyboard (Linux) # SDL can tell the difference between the two COMPOSE keys but assigns them the same label # thus both CLOSEBRACE and BACKSLASH appear like "´ ~" in the user interface. @@ -5,26 +10,26 @@ # # Row 1 # -ITEM_ID_TILDE SDLK_BACKSLASH 0x31 0x5c \ -ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 ' -ITEM_ID_EQUALS SDLK_WORLD_11 0x15 0xab « +ITEM_ID_TILDE SDL_SCANCODE_BACKSLASH \ +ITEM_ID_MINUS SDL_SCANCODE_QUOTE ' +ITEM_ID_EQUALS SDL_SCANCODE_WORLD_11 « # # Row 2 # -ITEM_ID_OPENBRACE SDLK_PLUS 0x22 0x2b + -ITEM_ID_CLOSEBRACE SDLK_COMPOSE 0x23 0x00 ´ +ITEM_ID_OPENBRACE SDL_SCANCODE_PLUS + +ITEM_ID_CLOSEBRACE SDL_SCANCODE_COMPOSE ´ # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_71 0x2f 0xe7 Ç -ITEM_ID_QUOTE SDLK_WORLD_26 0x30 0xba º -ITEM_ID_BACKSLASH SDLK_COMPOSE 0x33 0x00 ~ +ITEM_ID_COLON SDL_SCANCODE_WORLD_71 Ç +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_26 º +ITEM_ID_BACKSLASH SDL_SCANCODE_COMPOSE ~ # # Row 4 # -ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c < -ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d - +ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS < +ITEM_ID_SLASH SDL_SCANCODE_MINUS - # # Row 5 # -ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
\ No newline at end of file +ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR
\ No newline at end of file diff --git a/keymaps/km_se_LINUX.map b/keymaps/km_se_LINUX.map index 7cc737baf21..1d127ec5b29 100644 --- a/keymaps/km_se_LINUX.map +++ b/keymaps/km_se_LINUX.map @@ -1,23 +1,28 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Swedish/Finnish QWERTY 105-keys keyboard (Linux) # # Row 1 # -ITEM_ID_TILDE SDLK_LESS 0x32 0x3c < -ITEM_ID_MINUS SDLK_PLUS 0x1b 0x2b + -ITEM_ID_EQUALS SDLK_WORLD_1 0x18 0x00 +ITEM_ID_TILDE SDL_SCANCODE_LESS < +ITEM_ID_MINUS SDL_SCANCODE_PLUS + +ITEM_ID_EQUALS SDL_SCANCODE_WORLD_1 0x00 # # Row 2 # -ITEM_ID_OPENBRACE SDLK_WORLD_3 0x21 0xe5 å -ITEM_ID_CLOSEBRACE SDLK_WORLD_2 0x1e 0x00 +ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_3 å +ITEM_ID_CLOSEBRACE SDL_SCANCODE_WORLD_2 # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_5 0x29 0xf6 ö -ITEM_ID_QUOTE SDLK_WORLD_4 0x27 0xe4 ä -ITEM_ID_BACKSLASH2 SDLK_QUOTE 0x2a 0x27 ' +ITEM_ID_COLON SDL_SCANCODE_WORLD_5 ö +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_4 ä +ITEM_ID_BACKSLASH2 SDL_SCANCODE_QUOTE ' # # Row 4 # -ITEM_ID_BACKSLASH SDLK_WORLD_0 0x0a 0xa7 § -ITEM_ID_SLASH SDLK_MINUS 0x2c 0x2d - +ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_0 § +ITEM_ID_SLASH SDL_SCANCODE_MINUS - diff --git a/keymaps/km_se_OSX.map b/keymaps/km_se_OSX.map index 36d629fb97c..02f6512856d 100644 --- a/keymaps/km_se_OSX.map +++ b/keymaps/km_se_OSX.map @@ -1,23 +1,28 @@ +# +# FIXME: This file produces errors and needs to be fixed. +# + +[SDL2] # MAME/MESS keymap for Swedish/Finnish QWERTY compact keyboard (OSX) # # Row 1 # -ITEM_ID_TILDE SDLK_WORLD_0 0x0a 0xa7 § -ITEM_ID_MINUS SDLK_PLUS 0x1b 0x2b + -ITEM_ID_EQUALS SDLK_WORLD_1 0x18 0x00 +ITEM_ID_TILDE SDL_SCANCODE_WORLD_0 § +ITEM_ID_MINUS SDL_SCANCODE_PLUS + +ITEM_ID_EQUALS SDL_SCANCODE_WORLD_1 0x00 # # Row 2 # -ITEM_ID_OPENBRACE SDLK_WORLD_3 0x21 0xe5 å -ITEM_ID_CLOSEBRACE SDLK_WORLD_2 0x1e 0x00 +ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_3 å +ITEM_ID_CLOSEBRACE SDL_SCANCODE_WORLD_2 # # Row 3 # -ITEM_ID_COLON SDLK_WORLD_5 0x29 0xf6 ö -ITEM_ID_QUOTE SDLK_WORLD_4 0x27 0xe4 ä -ITEM_ID_BACKSLASH2 SDLK_QUOTE 0x2a 0x27 ' +ITEM_ID_COLON SDL_SCANCODE_WORLD_5 ö +ITEM_ID_QUOTE SDL_SCANCODE_WORLD_4 ä +ITEM_ID_BACKSLASH2 SDL_SCANCODE_QUOTE ' # # Row 4 # -ITEM_ID_BACKSLASH SDLK_LESS 0x32 0x3c < -ITEM_ID_SLASH SDLK_MINUS 0x2c 0x2d - +ITEM_ID_BACKSLASH SDL_SCANCODE_LESS < +ITEM_ID_SLASH SDL_SCANCODE_MINUS - diff --git a/src/osd/modules/input/input_common.cpp b/src/osd/modules/input/input_common.cpp index 7c952ac05a4..ab51b6bbe34 100644 --- a/src/osd/modules/input/input_common.cpp +++ b/src/osd/modules/input/input_common.cpp @@ -34,8 +34,8 @@ #elif defined(OSD_SDL) // SDL include #include <SDL2/SDL.h> -#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, SDLK_ ## sdlkey, ascii, "ITEM_ID_"#mame, (char *) UI } -#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, SDLK_ ## sdlkey, ascii, "ITEM_ID_"#mame, (char*) #mame } +#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char *) UI } +#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char*) #mame } #elif defined(OSD_UWP) #define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, KEY_ ## disc, Windows::System::VirtualKey:: ## uwp, ascii, "ITEM_ID_"#mame, (char *) UI } #define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, KEY_ ## disc, Windows::System::VirtualKey:: ## uwp, ascii, "ITEM_ID_"#mame, (char*) #mame } @@ -43,6 +43,8 @@ // osd mini #endif +// FIXME: sdl_key can be removed from the table below. It is no longer used. + #if defined(OSD_WINDOWS) || defined(OSD_SDL) || defined(OSD_UWP) key_trans_entry keyboard_trans_table::s_default_table[] = { diff --git a/src/osd/modules/input/input_common.h b/src/osd/modules/input/input_common.h index 96a197f2543..b4005a6b76a 100644 --- a/src/osd/modules/input/input_common.h +++ b/src/osd/modules/input/input_common.h @@ -358,7 +358,6 @@ struct key_trans_entry { #if defined(OSD_SDL) int sdl_scancode; - int sdl_key; #elif defined(OSD_WINDOWS) int scan_code; unsigned char virtual_key; diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp index 35dc665f8e2..7c86b4bd837 100644 --- a/src/osd/modules/input/input_sdl.cpp +++ b/src/osd/modules/input/input_sdl.cpp @@ -63,24 +63,265 @@ struct key_lookup_table static key_lookup_table sdl_lookup_table[] = { - KE7(UNKNOWN, BACKSPACE, TAB, CLEAR, RETURN, PAUSE, ESCAPE) - KE(SPACE) - KE5(COMMA, MINUS, PERIOD, SLASH, 0) - KE8(1, 2, 3, 4, 5, 6, 7, 8) - KE3(9, SEMICOLON, EQUALS) - KE5(LEFTBRACKET,BACKSLASH, RIGHTBRACKET, A, B) - KE8(C, D, E, F, G, H, I, J) - KE8(K, L, M, N, O, P, Q, R) - KE8(S, T, U, V, W, X, Y, Z) - KE8(DELETE, KP_0, KP_1, KP_2, KP_3, KP_4, KP_5, KP_6) - KE8(KP_7, KP_8, KP_9, KP_PERIOD, KP_DIVIDE, KP_MULTIPLY,KP_MINUS, KP_PLUS) - KE8(KP_ENTER, KP_EQUALS, UP, DOWN, RIGHT, LEFT, INSERT, HOME) - KE8(END, PAGEUP, PAGEDOWN, F1, F2, F3, F4, F5) - KE8(F6, F7, F8, F9, F10, F11, F12, F13) - KE8(F14, F15, NUMLOCKCLEAR, CAPSLOCK, SCROLLLOCK, RSHIFT, LSHIFT, RCTRL) - KE5(LCTRL, RALT, LALT, LGUI, RGUI) - KE8(GRAVE, LEFTBRACKET,RIGHTBRACKET, SEMICOLON, APOSTROPHE, BACKSLASH, PRINTSCREEN,MENU) - KE(UNDO) + KE(UNKNOWN) + + KE(A) + KE(B) + KE(C) + KE(D) + KE(E) + KE(F) + KE(G) + KE(H) + KE(I) + KE(J) + KE(K) + KE(L) + KE(M) + KE(N) + KE(O) + KE(P) + KE(Q) + KE(R) + KE(S) + KE(T) + KE(U) + KE(V) + KE(W) + KE(X) + KE(Y) + KE(Z) + + KE(1) + KE(2) + KE(3) + KE(4) + KE(5) + KE(6) + KE(7) + KE(8) + KE(9) + KE(0) + + KE(RETURN) + KE(ESCAPE) + KE(BACKSPACE) + KE(TAB) + KE(SPACE) + + KE(MINUS) + KE(EQUALS) + KE(LEFTBRACKET) + KE(RIGHTBRACKET) + KE(BACKSLASH) + KE(NONUSHASH) + KE(SEMICOLON) + KE(APOSTROPHE) + KE(GRAVE) + KE(COMMA) + KE(PERIOD) + KE(SLASH) + + KE(CAPSLOCK) + + KE(F1) + KE(F2) + KE(F3) + KE(F4) + KE(F5) + KE(F6) + KE(F7) + KE(F8) + KE(F9) + KE(F10) + KE(F11) + KE(F12) + + KE(PRINTSCREEN) + KE(SCROLLLOCK) + KE(PAUSE) + KE(INSERT) + KE(HOME) + KE(PAGEUP) + KE(DELETE) + KE(END) + KE(PAGEDOWN) + KE(RIGHT) + KE(LEFT) + KE(DOWN) + KE(UP) + + KE(NUMLOCKCLEAR) + KE(KP_DIVIDE) + KE(KP_MULTIPLY) + KE(KP_MINUS) + KE(KP_PLUS) + KE(KP_ENTER) + KE(KP_1) + KE(KP_2) + KE(KP_3) + KE(KP_4) + KE(KP_5) + KE(KP_6) + KE(KP_7) + KE(KP_8) + KE(KP_9) + KE(KP_0) + KE(KP_PERIOD) + + KE(NONUSBACKSLASH) + KE(APPLICATION) + KE(POWER) + KE(KP_EQUALS) + KE(F13) + KE(F14) + KE(F15) + KE(F16) + KE(F17) + KE(F18) + KE(F19) + KE(F20) + KE(F21) + KE(F22) + KE(F23) + KE(F24) + KE(EXECUTE) + KE(HELP) + KE(MENU) + KE(SELECT) + KE(STOP) + KE(AGAIN) + KE(UNDO) + KE(CUT) + KE(COPY) + KE(PASTE) + KE(FIND) + KE(MUTE) + KE(VOLUMEUP) + KE(VOLUMEDOWN) + KE(KP_COMMA) + KE(KP_EQUALSAS400) + + KE(INTERNATIONAL1) + KE(INTERNATIONAL2) + KE(INTERNATIONAL3) + KE(INTERNATIONAL4) + KE(INTERNATIONAL5) + KE(INTERNATIONAL6) + KE(INTERNATIONAL7) + KE(INTERNATIONAL8) + KE(INTERNATIONAL9) + KE(LANG1) + KE(LANG2) + KE(LANG3) + KE(LANG4) + KE(LANG5) + KE(LANG6) + KE(LANG7) + KE(LANG8) + KE(LANG9) + + KE(ALTERASE) + KE(SYSREQ) + KE(CANCEL) + KE(CLEAR) + KE(PRIOR) + KE(RETURN2) + KE(SEPARATOR) + KE(OUT) + KE(OPER) + KE(CLEARAGAIN) + KE(CRSEL) + KE(EXSEL) + + KE(KP_00) + KE(KP_000) + KE(THOUSANDSSEPARATOR) + KE(DECIMALSEPARATOR) + KE(CURRENCYUNIT) + KE(CURRENCYSUBUNIT) + KE(KP_LEFTPAREN) + KE(KP_RIGHTPAREN) + KE(KP_LEFTBRACE) + KE(KP_RIGHTBRACE) + KE(KP_TAB) + KE(KP_BACKSPACE) + KE(KP_A) + KE(KP_B) + KE(KP_C) + KE(KP_D) + KE(KP_E) + KE(KP_F) + KE(KP_XOR) + KE(KP_POWER) + KE(KP_PERCENT) + KE(KP_LESS) + KE(KP_GREATER) + KE(KP_AMPERSAND) + KE(KP_DBLAMPERSAND) + KE(KP_VERTICALBAR) + KE(KP_DBLVERTICALBAR) + KE(KP_COLON) + KE(KP_HASH) + KE(KP_SPACE) + KE(KP_AT) + KE(KP_EXCLAM) + KE(KP_MEMSTORE) + KE(KP_MEMRECALL) + KE(KP_MEMCLEAR) + KE(KP_MEMADD) + KE(KP_MEMSUBTRACT) + KE(KP_MEMMULTIPLY) + KE(KP_MEMDIVIDE) + KE(KP_PLUSMINUS) + KE(KP_CLEAR) + KE(KP_CLEARENTRY) + KE(KP_BINARY) + KE(KP_OCTAL) + KE(KP_DECIMAL) + KE(KP_HEXADECIMAL) + + KE(LCTRL) + KE(LSHIFT) + KE(LALT) + KE(LGUI) + KE(RCTRL) + KE(RSHIFT) + KE(RALT) + KE(RGUI) + + KE(MODE) + KE(AUDIONEXT) + KE(AUDIOPREV) + KE(AUDIOSTOP) + KE(AUDIOPLAY) + KE(AUDIOMUTE) + KE(MEDIASELECT) + KE(WWW) + KE(MAIL) + KE(CALCULATOR) + KE(COMPUTER) + KE(AC_SEARCH) + KE(AC_HOME) + KE(AC_BACK) + KE(AC_FORWARD) + KE(AC_STOP) + KE(AC_REFRESH) + KE(AC_BOOKMARKS) + + KE(BRIGHTNESSDOWN) + KE(BRIGHTNESSUP) + KE(DISPLAYSWITCH) + KE(KBDILLUMTOGGLE) + KE(KBDILLUMDOWN) + KE(KBDILLUMUP) + KE(EJECT) + KE(SLEEP) + + KE(APP1) + KE(APP2) + + { -1, "" } @@ -126,7 +367,6 @@ protected: // sdl_keyboard_device //============================================================ -#define OSD_SDL_INDEX_KEYSYM(keysym) ((keysym)->scancode) class sdl_keyboard_device : public sdl_device { public: @@ -143,13 +383,13 @@ public: switch (sdlevent.type) { case SDL_KEYDOWN: - keyboard.state[OSD_SDL_INDEX_KEYSYM(&sdlevent.key.keysym)] = 0x80; + keyboard.state[sdlevent.key.keysym.scancode] = 0x80; if (sdlevent.key.keysym.sym < 0x20) machine().ui_input().push_char_event(osd_common_t::s_window_list.front()->target(), sdlevent.key.keysym.sym); break; case SDL_KEYUP: - keyboard.state[OSD_SDL_INDEX_KEYSYM(&sdlevent.key.keysym)] = 0x00; + keyboard.state[sdlevent.key.keysym.scancode] = 0x00; break; case SDL_TEXTINPUT: @@ -567,11 +807,6 @@ private: char *keymap_filename; FILE *keymap_file; int line = 1; - int index, len, sk, vk, ak; - char buf[256]; - char mks[41]; - char sks[41]; - char kns[41]; int sdl2section = 0; keyboard_trans_table &default_table = keyboard_trans_table::instance(); @@ -601,41 +836,42 @@ private: while (!feof(keymap_file)) { + char buf[256]; + char *ret = fgets(buf, 255, keymap_file); if (ret && buf[0] != '\n' && buf[0] != '#') { buf[255] = 0; - len = strlen(buf); + int len = strlen(buf); if (len && buf[len - 1] == '\n') buf[len - 1] = 0; if (strncmp(buf, "[SDL2]", 6) == 0) { sdl2section = 1; } - else if (((SDLMAME_SDL2) ^ sdl2section) == 0) + else if (sdl2section == 1) { - mks[0] = 0; - sks[0] = 0; - memset(kns, 0, ARRAY_LENGTH(kns)); - sscanf(buf, "%40s %40s %x %x %40c\n", - mks, sks, &vk, &ak, kns); + char mks[41] = {0}; + char sks[41] = {0}; + char kns[41] = {0}; + + int n = sscanf(buf, "%40s %40s %40c\n", mks, sks, kns); + if (n != 3) + osd_printf_error("Keymap: Error on line %d : Expected 3 parameters, got %d\n", line, n); - index = default_table.lookup_mame_index(mks); - sk = lookup_sdl_code(sks); + int index = default_table.lookup_mame_index(mks); + int sk = lookup_sdl_code(sks); if (sk >= 0 && index >= 0) { key_trans_entry &entry = (*custom_table)[index]; - entry.sdl_key = sk; - // vk and ak are not really needed - //key_trans_table[index][VIRTUAL_KEY] = vk; - //key_trans_table[index][ASCII_KEY] = ak; + entry.sdl_scancode = sk; entry.ui_name = auto_alloc_array(machine, char, strlen(kns) + 1); strcpy(entry.ui_name, kns); osd_printf_verbose("Keymap: Mapped <%s> to <%s> with ui-text <%s>\n", sks, mks, kns); } else - osd_printf_warning("Keymap: Error on line %d - %s key not found: %s\n", line, (sk<0) ? "sdl" : "mame", buf); + osd_printf_error("Keymap: Error on line %d - %s key not found: %s\n", line, (sk<0) ? "sdl" : "mame", buf); } } line++; |