in modules/sdl_out/video.c [207:574]
static void sdl_translate_key(u32 SDLkey, GF_EventKey *evt)
{
evt->flags = 0;
evt->hw_code = SDLkey;
switch (SDLkey) {
case SDLK_BACKSPACE:
evt->key_code = GF_KEY_BACKSPACE;
break;
case SDLK_TAB:
evt->key_code = GF_KEY_TAB;
break;
case SDLK_CLEAR:
evt->key_code = GF_KEY_CLEAR;
break;
case SDLK_PAUSE:
evt->key_code = GF_KEY_PAUSE;
break;
case SDLK_ESCAPE:
evt->key_code = GF_KEY_ESCAPE;
break;
case SDLK_SPACE:
evt->key_code = GF_KEY_SPACE;
break;
case SDLK_KP_ENTER:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_RETURN:
evt->key_code = GF_KEY_ENTER;
break;
case SDLK_KP_MULTIPLY:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_ASTERISK:
evt->key_code = GF_KEY_STAR;
break;
case SDLK_KP_PLUS:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_PLUS:
evt->key_code = GF_KEY_PLUS;
break;
case SDLK_KP_MINUS:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_MINUS:
evt->key_code = GF_KEY_HYPHEN;
break;
case SDLK_KP_DIVIDE:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_SLASH:
evt->key_code = GF_KEY_SLASH;
break;
case SDLK_KP_0:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_0:
evt->key_code = GF_KEY_0;
break;
case SDLK_KP_1:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_1:
evt->key_code = GF_KEY_1;
break;
case SDLK_KP_2:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_2:
evt->key_code = GF_KEY_2;
break;
case SDLK_KP_3:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_3:
evt->key_code = GF_KEY_3;
break;
case SDLK_KP_4:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_4:
evt->key_code = GF_KEY_4;
break;
case SDLK_KP_5:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_5:
evt->key_code = GF_KEY_5;
break;
case SDLK_KP_6:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_6:
evt->key_code = GF_KEY_6;
break;
case SDLK_KP_7:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_7:
evt->key_code = GF_KEY_7;
break;
case SDLK_KP_8:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_8:
evt->key_code = GF_KEY_8;
break;
case SDLK_KP_9:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_9:
evt->key_code = GF_KEY_9;
break;
case SDLK_KP_PERIOD:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_PERIOD:
evt->key_code = GF_KEY_FULLSTOP;
break;
case SDLK_KP_EQUALS:
evt->flags = GF_KEY_EXT_NUMPAD;
case SDLK_EQUALS:
evt->key_code = GF_KEY_EQUALS;
break;
case SDLK_EXCLAIM:
evt->key_code = GF_KEY_EXCLAMATION;
break;
case SDLK_QUOTEDBL:
evt->key_code = GF_KEY_QUOTATION;
break;
case SDLK_HASH:
evt->key_code = GF_KEY_NUMBER;
break;
case SDLK_DOLLAR:
evt->key_code = GF_KEY_DOLLAR;
break;
case SDLK_AMPERSAND:
evt->key_code = GF_KEY_AMPERSAND;
break;
case SDLK_QUOTE:
evt->key_code = GF_KEY_APOSTROPHE;
break;
case SDLK_LEFTPAREN:
evt->key_code = GF_KEY_LEFTPARENTHESIS;
break;
case SDLK_RIGHTPAREN:
evt->key_code = GF_KEY_RIGHTPARENTHESIS;
break;
case SDLK_COMMA:
evt->key_code = GF_KEY_COMMA;
break;
case SDLK_COLON:
evt->key_code = GF_KEY_COLON;
break;
case SDLK_SEMICOLON:
evt->key_code = GF_KEY_SEMICOLON;
break;
case SDLK_LESS:
evt->key_code = GF_KEY_LESSTHAN;
break;
case SDLK_GREATER:
evt->key_code = GF_KEY_GREATERTHAN;
break;
case SDLK_QUESTION:
evt->key_code = GF_KEY_QUESTION;
break;
case SDLK_AT:
evt->key_code = GF_KEY_AT;
break;
case SDLK_LEFTBRACKET:
evt->key_code = GF_KEY_LEFTSQUAREBRACKET;
break;
case SDLK_RIGHTBRACKET:
evt->key_code = GF_KEY_RIGHTSQUAREBRACKET;
break;
case SDLK_BACKSLASH:
evt->key_code = GF_KEY_BACKSLASH;
break;
case SDLK_UNDERSCORE:
evt->key_code = GF_KEY_UNDERSCORE;
break;
case SDLK_BACKQUOTE:
evt->key_code = GF_KEY_GRAVEACCENT;
break;
case SDLK_DELETE:
evt->key_code = GF_KEY_DEL;
break;
case SDLK_UNDO:
evt->key_code = GF_KEY_UNDO;
break;
case SDLK_UP:
evt->key_code = GF_KEY_UP;
break;
case SDLK_DOWN:
evt->key_code = GF_KEY_DOWN;
break;
case SDLK_RIGHT:
evt->key_code = GF_KEY_RIGHT;
break;
case SDLK_LEFT:
evt->key_code = GF_KEY_LEFT;
break;
case SDLK_INSERT:
evt->key_code = GF_KEY_INSERT;
break;
case SDLK_HOME:
evt->key_code = GF_KEY_HOME;
break;
case SDLK_END:
evt->key_code = GF_KEY_END;
break;
case SDLK_PAGEUP:
evt->key_code = GF_KEY_PAGEUP;
break;
case SDLK_PAGEDOWN:
evt->key_code = GF_KEY_PAGEDOWN;
break;
case SDLK_F1:
evt->key_code = GF_KEY_F1;
break;
case SDLK_F2:
evt->key_code = GF_KEY_F2;
break;
case SDLK_F3:
evt->key_code = GF_KEY_F3;
break;
case SDLK_F4:
evt->key_code = GF_KEY_F4;
break;
case SDLK_F5:
evt->key_code = GF_KEY_F5;
break;
case SDLK_F6:
evt->key_code = GF_KEY_F6;
break;
case SDLK_F7:
evt->key_code = GF_KEY_F7;
break;
case SDLK_F8:
evt->key_code = GF_KEY_F8;
break;
case SDLK_F9:
evt->key_code = GF_KEY_F9;
break;
case SDLK_F10:
evt->key_code = GF_KEY_F10;
break;
case SDLK_F11:
evt->key_code = GF_KEY_F11;
break;
case SDLK_F12:
evt->key_code = GF_KEY_F12;
break;
case SDLK_F13:
evt->key_code = GF_KEY_F13;
break;
case SDLK_F14:
evt->key_code = GF_KEY_F14;
break;
case SDLK_F15:
evt->key_code = GF_KEY_F15;
break;
case SDLK_NUMLOCKCLEAR:
evt->key_code = GF_KEY_NUMLOCK;
break;
case SDLK_CAPSLOCK:
evt->key_code = GF_KEY_CAPSLOCK;
break;
case SDLK_SCROLLLOCK:
evt->key_code = GF_KEY_SCROLL;
break;
case SDLK_RSHIFT:
evt->key_code = GF_KEY_SHIFT;
evt->flags = GF_KEY_EXT_RIGHT;
break;
case SDLK_LSHIFT:
evt->key_code = GF_KEY_SHIFT;
evt->flags = GF_KEY_EXT_LEFT;
break;
case SDLK_LCTRL:
evt->key_code = GF_KEY_CONTROL;
evt->flags = GF_KEY_EXT_LEFT;
break;
case SDLK_RCTRL:
evt->key_code = GF_KEY_CONTROL;
evt->flags = GF_KEY_EXT_RIGHT;
break;
case SDLK_LALT:
evt->key_code = GF_KEY_ALT;
evt->flags = GF_KEY_EXT_LEFT;
break;
case SDLK_RALT:
evt->key_code = GF_KEY_ALT;
evt->flags = GF_KEY_EXT_RIGHT;
break;
#if (SDL_MAJOR_VERSION<=1) && (SDL_MINOR_VERSION<3)
case SDLK_LMETA:
case SDLK_LSUPER:
#else
case SDLK_LGUI:
#endif
evt->key_code = GF_KEY_META;
evt->flags = GF_KEY_EXT_LEFT;
break;
#if (SDL_MAJOR_VERSION<=1) && (SDL_MINOR_VERSION<3)
case SDLK_RMETA:
case SDLK_RSUPER:
#else
case SDLK_RGUI:
#endif
evt->key_code = GF_KEY_META;
evt->flags = GF_KEY_EXT_RIGHT;
break;
case SDLK_MODE:
evt->key_code = GF_KEY_MODECHANGE;
break;
case SDLK_APPLICATION:
evt->key_code = GF_KEY_COMPOSE;
break;
case SDLK_HELP:
evt->key_code = GF_KEY_HELP;
break;
case SDLK_PRINTSCREEN:
evt->key_code = GF_KEY_PRINTSCREEN;
break;
#if (SDL_MAJOR_VERSION>=1) && (SDL_MINOR_VERSION>=3)
/*
SDLK_CARET = 94,
*/
case SDLK_a:
case SDLK_b:
case SDLK_c:
case SDLK_d:
case SDLK_e:
case SDLK_f:
case SDLK_g:
case SDLK_h:
case SDLK_i:
case SDLK_j:
case SDLK_k:
case SDLK_l:
case SDLK_m:
case SDLK_n:
case SDLK_o:
case SDLK_p:
case SDLK_q:
case SDLK_r:
case SDLK_s:
case SDLK_t:
case SDLK_u:
case SDLK_v:
case SDLK_w:
case SDLK_x:
case SDLK_y:
case SDLK_z:
evt->key_code = GF_KEY_A + SDLkey - SDLK_a;
break;
/*
SDLK_DELETE = 127,
SDLK_SYSREQ = 317,
SDLK_POWER = 320,
*/
#endif
default:
if ((SDLkey>=0x30) && (SDLkey<=0x39)) evt->key_code = GF_KEY_0 + SDLkey-0x30;
else if ((SDLkey>=0x41) && (SDLkey<=0x5A)) evt->key_code = GF_KEY_A + SDLkey-0x41;
else if ((SDLkey>=0x61) && (SDLkey<=0x7A)) evt->key_code = GF_KEY_A + SDLkey-0x61;
else
{
evt->key_code = GF_KEY_UNIDENTIFIED;
}
break;
}
}