diff --git a/src/events/SDL_keyboard.c b/src/events/SDL_keyboard.c index 7dc0fb9b26..30ec14c243 100644 --- a/src/events/SDL_keyboard.c +++ b/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) { diff --git a/src/events/SDL_keyboard_c.h b/src/events/SDL_keyboard_c.h index db9703aaf0..3ace4af641 100644 --- a/src/events/SDL_keyboard_c.h +++ b/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);