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.
This commit is contained in:
Frank Praznik 2022-11-04 12:33:45 -04:00 committed by Sam Lantinga
parent 0e446c54bd
commit d1858eb124
2 changed files with 14 additions and 0 deletions

View File

@ -1137,6 +1137,17 @@ SDL_GetKeyFromScancode(SDL_Scancode scancode)
return keyboard->keymap[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_Scancode
SDL_GetScancodeFromKey(SDL_Keycode key) SDL_GetScancodeFromKey(SDL_Keycode key)
{ {

View File

@ -32,6 +32,9 @@ extern int SDL_KeyboardInit(void);
/* Get the default keymap */ /* Get the default keymap */
extern void SDL_GetDefaultKeymap(SDL_Keycode * 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 */ /* Set the mapping of scancode to key codes */
extern void SDL_SetKeymap(int start, const SDL_Keycode * keys, int length, SDL_bool send_event); extern void SDL_SetKeymap(int start, const SDL_Keycode * keys, int length, SDL_bool send_event);