Selaa lähdekoodia

events: Add a helper function to get the default keycode for a scancode

Add a helper function to get the keycode for a scancode from the default lookup table. Unlike SDL_GetKeyFromScancode(), this is not affected by the set keymap.
Frank Praznik 2 vuotta sitten
vanhempi
commit
d1858eb124
2 muutettua tiedostoa jossa 14 lisäystä ja 0 poistoa
  1. 11 0
      src/events/SDL_keyboard.c
  2. 3 0
      src/events/SDL_keyboard_c.h

+ 11 - 0
src/events/SDL_keyboard.c

@@ -1137,6 +1137,17 @@ SDL_GetKeyFromScancode(SDL_Scancode scancode)
     return keyboard->keymap[scancode];
 }
 
+SDL_Keycode
+SDL_GetDefaultKeyFromScancode(SDL_Scancode scancode)
+{
+    if (((int)scancode) < SDL_SCANCODE_UNKNOWN || scancode >= SDL_NUM_SCANCODES) {
+        SDL_InvalidParamError("scancode");
+        return 0;
+    }
+
+    return SDL_default_keymap[scancode];
+}
+
 SDL_Scancode
 SDL_GetScancodeFromKey(SDL_Keycode key)
 {

+ 3 - 0
src/events/SDL_keyboard_c.h

@@ -32,6 +32,9 @@ extern int SDL_KeyboardInit(void);
 /* Get the default keymap */
 extern void SDL_GetDefaultKeymap(SDL_Keycode * keymap);
 
+/* Get the default key code for a scancode */
+extern SDL_Keycode SDL_GetDefaultKeyFromScancode(SDL_Scancode scancode);
+
 /* Set the mapping of scancode to key codes */
 extern void SDL_SetKeymap(int start, const SDL_Keycode * keys, int length, SDL_bool send_event);