2
0
mirror of https://github.com/dpethes/rerogue.git synced 2025-06-07 18:58:32 +02:00
rerogue/model_viewer/sdl2/sdlscancode.inc
2017-02-02 02:08:13 +01:00

663 lines
26 KiB
PHP

//from "sdl_scancode.h"
{**
* The SDL keyboard scancode representation.
*
* Values of this type are used to represent keyboard keys, among other places
* in the SDL_Keysym.scancode key.keysym.scancode \endlink field of the
* SDL_Event structure.
*
* The values in this enumeration are based on the USB usage page standard:
* http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf
*}
const
SDL_SCANCODE_UNKNOWN = 0;
{**
* Usage page $07
*
* These values are from usage page $07 (USB keyboard page).
*}
SDL_SCANCODE_A = 4;
SDL_SCANCODE_B = 5;
SDL_SCANCODE_C = 6;
SDL_SCANCODE_D = 7;
SDL_SCANCODE_E = 8;
SDL_SCANCODE_F = 9;
SDL_SCANCODE_G = 10;
SDL_SCANCODE_H = 11;
SDL_SCANCODE_I = 12;
SDL_SCANCODE_J = 13;
SDL_SCANCODE_K = 14;
SDL_SCANCODE_L = 15;
SDL_SCANCODE_M = 16;
SDL_SCANCODE_N = 17;
SDL_SCANCODE_O = 18;
SDL_SCANCODE_P = 19;
SDL_SCANCODE_Q = 20;
SDL_SCANCODE_R = 21;
SDL_SCANCODE_S = 22;
SDL_SCANCODE_T = 23;
SDL_SCANCODE_U = 24;
SDL_SCANCODE_V = 25;
SDL_SCANCODE_W = 26;
SDL_SCANCODE_X = 27;
SDL_SCANCODE_Y = 28;
SDL_SCANCODE_Z = 29;
SDL_SCANCODE_1 = 30;
SDL_SCANCODE_2 = 31;
SDL_SCANCODE_3 = 32;
SDL_SCANCODE_4 = 33;
SDL_SCANCODE_5 = 34;
SDL_SCANCODE_6 = 35;
SDL_SCANCODE_7 = 36;
SDL_SCANCODE_8 = 37;
SDL_SCANCODE_9 = 38;
SDL_SCANCODE_0 = 39;
SDL_SCANCODE_RETURN = 40;
SDL_SCANCODE_ESCAPE = 41;
SDL_SCANCODE_BACKSPACE = 42;
SDL_SCANCODE_TAB = 43;
SDL_SCANCODE_SPACE = 44;
SDL_SCANCODE_MINUS = 45;
SDL_SCANCODE_EQUALS = 46;
SDL_SCANCODE_LEFTBRACKET = 47;
SDL_SCANCODE_RIGHTBRACKET = 48;
SDL_SCANCODE_BACKSLASH = 49; {**< Located at the lower left of the return
* key on ISO keyboards and at the right end
* of the QWERTY row on ANSI keyboards.
* Produces REVERSE SOLIDUS (backslash) and
* VERTICAL LINE in a US layout; REVERSE
* SOLIDUS and VERTICAL LINE in a UK Mac
* layout; NUMBER SIGN and TILDE in a UK
* Windows layout; DOLLAR SIGN and POUND SIGN
* in a Swiss German layout; NUMBER SIGN and
* APOSTROPHE in a German layout; GRAVE
* ACCENT and POUND SIGN in a French Mac
* layout; and ASTERISK and MICRO SIGN in a
* French Windows layout.
*}
SDL_SCANCODE_NONUSHASH = 50; {**< ISO USB keyboards actually use this code
* instead of 49 for the same key; but all
* OSes I've seen treat the two codes
* identically. So; as an implementor; unless
* your keyboard generates both of those
* codes and your OS treats them differently;
* you should generate SDL_SCANCODE_BACKSLASH
* instead of this code. As a user; you
* should not rely on this code because SDL
* will never generate it with most (all?)
* keyboards.
*}
SDL_SCANCODE_SEMICOLON = 51;
SDL_SCANCODE_APOSTROPHE = 52;
SDL_SCANCODE_GRAVE = 53; {**< Located in the top left corner (on both ANSI
* and ISO keyboards). Produces GRAVE ACCENT and
* TILDE in a US Windows layout and in US and UK
* Mac layouts on ANSI keyboards; GRAVE ACCENT
* and NOT SIGN in a UK Windows layout; SECTION
* SIGN and PLUS-MINUS SIGN in US and UK Mac
* layouts on ISO keyboards; SECTION SIGN and
* DEGREE SIGN in a Swiss German layout (Mac:
* only on ISO keyboards); CIRCUMFLEX ACCENT and
* DEGREE SIGN in a German layout (Mac: only on
* ISO keyboards); SUPERSCRIPT TWO and TILDE in a
* French Windows layout; COMMERCIAL AT and
* NUMBER SIGN in a French Mac layout on ISO
* keyboards; and LESS-THAN SIGN and GREATER-THAN
* SIGN in a Swiss German; German; or French Mac
* layout on ANSI keyboards.
*}
SDL_SCANCODE_COMMA = 54;
SDL_SCANCODE_PERIOD = 55;
SDL_SCANCODE_SLASH = 56;
SDL_SCANCODE_CAPSLOCK = 57;
SDL_SCANCODE_F1 = 58;
SDL_SCANCODE_F2 = 59;
SDL_SCANCODE_F3 = 60;
SDL_SCANCODE_F4 = 61;
SDL_SCANCODE_F5 = 62;
SDL_SCANCODE_F6 = 63;
SDL_SCANCODE_F7 = 64;
SDL_SCANCODE_F8 = 65;
SDL_SCANCODE_F9 = 66;
SDL_SCANCODE_F10 = 67;
SDL_SCANCODE_F11 = 68;
SDL_SCANCODE_F12 = 69;
SDL_SCANCODE_PRINTSCREEN = 70;
SDL_SCANCODE_SCROLLLOCK = 71;
SDL_SCANCODE_PAUSE = 72;
SDL_SCANCODE_INSERT = 73; {**< insert on PC; help on some Mac keyboards (but
does send code 73; not 117) *}
SDL_SCANCODE_HOME = 74;
SDL_SCANCODE_PAGEUP = 75;
SDL_SCANCODE_DELETE = 76;
SDL_SCANCODE_END = 77;
SDL_SCANCODE_PAGEDOWN = 78;
SDL_SCANCODE_RIGHT = 79;
SDL_SCANCODE_LEFT = 80;
SDL_SCANCODE_DOWN = 81;
SDL_SCANCODE_UP = 82;
SDL_SCANCODE_NUMLOCKCLEAR = 83; {**< num lock on PC; clear on Mac keyboards
*}
SDL_SCANCODE_KP_DIVIDE = 84;
SDL_SCANCODE_KP_MULTIPLY = 85;
SDL_SCANCODE_KP_MINUS = 86;
SDL_SCANCODE_KP_PLUS = 87;
SDL_SCANCODE_KP_ENTER = 88;
SDL_SCANCODE_KP_1 = 89;
SDL_SCANCODE_KP_2 = 90;
SDL_SCANCODE_KP_3 = 91;
SDL_SCANCODE_KP_4 = 92;
SDL_SCANCODE_KP_5 = 93;
SDL_SCANCODE_KP_6 = 94;
SDL_SCANCODE_KP_7 = 95;
SDL_SCANCODE_KP_8 = 96;
SDL_SCANCODE_KP_9 = 97;
SDL_SCANCODE_KP_0 = 98;
SDL_SCANCODE_KP_PERIOD = 99;
SDL_SCANCODE_NONUSBACKSLASH = 100; {**< This is the additional key that ISO
* keyboards have over ANSI ones;
* located between left shift and Y.
* Produces GRAVE ACCENT and TILDE in a
* US or UK Mac layout; REVERSE SOLIDUS
* (backslash) and VERTICAL LINE in a
* US or UK Windows layout; and
* LESS-THAN SIGN and GREATER-THAN SIGN
* in a Swiss German; German; or French
* layout. *}
SDL_SCANCODE_APPLICATION = 101; {**< windows contextual menu; compose *}
SDL_SCANCODE_POWER = 102; {**< The USB document says this is a status flag;
* not a physical key - but some Mac keyboards
* do have a power key. *}
SDL_SCANCODE_KP_EQUALS = 103;
SDL_SCANCODE_F13 = 104;
SDL_SCANCODE_F14 = 105;
SDL_SCANCODE_F15 = 106;
SDL_SCANCODE_F16 = 107;
SDL_SCANCODE_F17 = 108;
SDL_SCANCODE_F18 = 109;
SDL_SCANCODE_F19 = 110;
SDL_SCANCODE_F20 = 111;
SDL_SCANCODE_F21 = 112;
SDL_SCANCODE_F22 = 113;
SDL_SCANCODE_F23 = 114;
SDL_SCANCODE_F24 = 115;
SDL_SCANCODE_EXECUTE = 116;
SDL_SCANCODE_HELP = 117;
SDL_SCANCODE_MENU = 118;
SDL_SCANCODE_SELECT = 119;
SDL_SCANCODE_STOP = 120;
SDL_SCANCODE_AGAIN = 121; {**< redo *}
SDL_SCANCODE_UNDO = 122;
SDL_SCANCODE_CUT = 123;
SDL_SCANCODE_COPY = 124;
SDL_SCANCODE_PASTE = 125;
SDL_SCANCODE_FIND = 126;
SDL_SCANCODE_MUTE = 127;
SDL_SCANCODE_VOLUMEUP = 128;
SDL_SCANCODE_VOLUMEDOWN = 129;
{* not sure whether there's a reason to enable these *}
{* SDL_SCANCODE_LOCKINGCAPSLOCK = 130; *}
{* SDL_SCANCODE_LOCKINGNUMLOCK = 131; *}
{* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132; *}
SDL_SCANCODE_KP_COMMA = 133;
SDL_SCANCODE_KP_EQUALSAS400 = 134;
SDL_SCANCODE_INTERNATIONAL1 = 135; {**< used on Asian keyboards; see footnotes in USB doc *}
SDL_SCANCODE_INTERNATIONAL2 = 136;
SDL_SCANCODE_INTERNATIONAL3 = 137; {**< Yen *}
SDL_SCANCODE_INTERNATIONAL4 = 138;
SDL_SCANCODE_INTERNATIONAL5 = 139;
SDL_SCANCODE_INTERNATIONAL6 = 140;
SDL_SCANCODE_INTERNATIONAL7 = 141;
SDL_SCANCODE_INTERNATIONAL8 = 142;
SDL_SCANCODE_INTERNATIONAL9 = 143;
SDL_SCANCODE_LANG1 = 144; {**< Hangul/English toggle *}
SDL_SCANCODE_LANG2 = 145; {**< Hanja conversion *}
SDL_SCANCODE_LANG3 = 146; {**< Katakana *}
SDL_SCANCODE_LANG4 = 147; {**< Hiragana *}
SDL_SCANCODE_LANG5 = 148; {**< Zenkaku/Hankaku *}
SDL_SCANCODE_LANG6 = 149; {**< reserved *}
SDL_SCANCODE_LANG7 = 150; {**< reserved *}
SDL_SCANCODE_LANG8 = 151; {**< reserved *}
SDL_SCANCODE_LANG9 = 152; {**< reserved *}
SDL_SCANCODE_ALTERASE = 153; {**< Erase-Eaze *}
SDL_SCANCODE_SYSREQ = 154;
SDL_SCANCODE_CANCEL = 155;
SDL_SCANCODE_CLEAR = 156;
SDL_SCANCODE_PRIOR = 157;
SDL_SCANCODE_RETURN2 = 158;
SDL_SCANCODE_SEPARATOR = 159;
SDL_SCANCODE_OUT = 160;
SDL_SCANCODE_OPER = 161;
SDL_SCANCODE_CLEARAGAIN = 162;
SDL_SCANCODE_CRSEL = 163;
SDL_SCANCODE_EXSEL = 164;
SDL_SCANCODE_KP_00 = 176;
SDL_SCANCODE_KP_000 = 177;
SDL_SCANCODE_THOUSANDSSEPARATOR = 178;
SDL_SCANCODE_DECIMALSEPARATOR = 179;
SDL_SCANCODE_CURRENCYUNIT = 180;
SDL_SCANCODE_CURRENCYSUBUNIT = 181;
SDL_SCANCODE_KP_LEFTPAREN = 182;
SDL_SCANCODE_KP_RIGHTPAREN = 183;
SDL_SCANCODE_KP_LEFTBRACE = 184;
SDL_SCANCODE_KP_RIGHTBRACE = 185;
SDL_SCANCODE_KP_TAB = 186;
SDL_SCANCODE_KP_BACKSPACE = 187;
SDL_SCANCODE_KP_A = 188;
SDL_SCANCODE_KP_B = 189;
SDL_SCANCODE_KP_C = 190;
SDL_SCANCODE_KP_D = 191;
SDL_SCANCODE_KP_E = 192;
SDL_SCANCODE_KP_F = 193;
SDL_SCANCODE_KP_XOR = 194;
SDL_SCANCODE_KP_POWER = 195;
SDL_SCANCODE_KP_PERCENT = 196;
SDL_SCANCODE_KP_LESS = 197;
SDL_SCANCODE_KP_GREATER = 198;
SDL_SCANCODE_KP_AMPERSAND = 199;
SDL_SCANCODE_KP_DBLAMPERSAND = 200;
SDL_SCANCODE_KP_VERTICALBAR = 201;
SDL_SCANCODE_KP_DBLVERTICALBAR = 202;
SDL_SCANCODE_KP_COLON = 203;
SDL_SCANCODE_KP_HASH = 204;
SDL_SCANCODE_KP_SPACE = 205;
SDL_SCANCODE_KP_AT = 206;
SDL_SCANCODE_KP_EXCLAM = 207;
SDL_SCANCODE_KP_MEMSTORE = 208;
SDL_SCANCODE_KP_MEMRECALL = 209;
SDL_SCANCODE_KP_MEMCLEAR = 210;
SDL_SCANCODE_KP_MEMADD = 211;
SDL_SCANCODE_KP_MEMSUBTRACT = 212;
SDL_SCANCODE_KP_MEMMULTIPLY = 213;
SDL_SCANCODE_KP_MEMDIVIDE = 214;
SDL_SCANCODE_KP_PLUSMINUS = 215;
SDL_SCANCODE_KP_CLEAR = 216;
SDL_SCANCODE_KP_CLEARENTRY = 217;
SDL_SCANCODE_KP_BINARY = 218;
SDL_SCANCODE_KP_OCTAL = 219;
SDL_SCANCODE_KP_DECIMAL = 220;
SDL_SCANCODE_KP_HEXADECIMAL = 221;
SDL_SCANCODE_LCTRL = 224;
SDL_SCANCODE_LSHIFT = 225;
SDL_SCANCODE_LALT = 226; {**< alt; option *}
SDL_SCANCODE_LGUI = 227; {**< windows; command (apple); meta *}
SDL_SCANCODE_RCTRL = 228;
SDL_SCANCODE_RSHIFT = 229;
SDL_SCANCODE_RALT = 230; {**< alt gr; option *}
SDL_SCANCODE_RGUI = 231; {**< windows; command (apple); meta *}
SDL_SCANCODE_MODE = 257; {**< I'm not sure if this is really not covered
* by any of the above; but since there's a
* special KMOD_MODE for it I'm adding it here
*}
{*Usage page $07*}
{**
* Usage page $0C
*
* These values are mapped from usage page $0C (USB consumer page).
*}
SDL_SCANCODE_AUDIONEXT = 258;
SDL_SCANCODE_AUDIOPREV = 259;
SDL_SCANCODE_AUDIOSTOP = 260;
SDL_SCANCODE_AUDIOPLAY = 261;
SDL_SCANCODE_AUDIOMUTE = 262;
SDL_SCANCODE_MEDIASELECT = 263;
SDL_SCANCODE_WWW = 264;
SDL_SCANCODE_MAIL = 265;
SDL_SCANCODE_CALCULATOR = 266;
SDL_SCANCODE_COMPUTER = 267;
SDL_SCANCODE_AC_SEARCH = 268;
SDL_SCANCODE_AC_HOME = 269;
SDL_SCANCODE_AC_BACK = 270;
SDL_SCANCODE_AC_FORWARD = 271;
SDL_SCANCODE_AC_STOP = 272;
SDL_SCANCODE_AC_REFRESH = 273;
SDL_SCANCODE_AC_BOOKMARKS = 274;
{*Usage page $0C*}
{**
* Walther keys
*
* These are values that Christian Walther added (for mac keyboard?).
*}
SDL_SCANCODE_BRIGHTNESSDOWN = 275;
SDL_SCANCODE_BRIGHTNESSUP = 276;
SDL_SCANCODE_DISPLAYSWITCH = 277; {**< display mirroring/dual display
switch; video mode switch *}
SDL_SCANCODE_KBDILLUMTOGGLE = 278;
SDL_SCANCODE_KBDILLUMDOWN = 279;
SDL_SCANCODE_KBDILLUMUP = 280;
SDL_SCANCODE_EJECT = 281;
SDL_SCANCODE_SLEEP = 282;
SDL_SCANCODE_APP1 = 283;
SDL_SCANCODE_APP2 = 284;
{*Walther keys*}
{* Add any other keys here. *}
SDL_NUM_SCANCODES = 512; {**< not a key, just marks the number of scancodes
for array bounds *}
type
PSDL_ScanCode = ^TSDL_ScanCode;
TSDL_ScanCode = DWord;
//from "sdl_keycode.h"
{**
* The SDL virtual key representation.
*
* Values of this type are used to represent keyboard keys using the current
* layout of the keyboard. These values include Unicode values representing
* the unmodified character that would be generated by pressing the key, or
* an SDLK_* constant for those keys that do not generate characters.
*}
PSDL_KeyCode = ^TSDL_KeyCode;
TSDL_KeyCode = SInt32;
const
SDLK_SCANCODE_MASK = 1 shl 30;
SDLK_UNKNOWN = 0;
SDLK_RETURN = SInt32(#13); // C: '\r'
SDLK_ESCAPE = SInt32(#27); // C: '\033'
SDLK_BACKSPACE = SInt32(#8); // C: '\b'
SDLK_TAB = SInt32(#9); // C: '\t'
SDLK_SPACE = SInt32(' ');
SDLK_EXCLAIM = SInt32('!');
SDLK_QUOTEDBL = SInt32('"');
SDLK_HASH = SInt32('#');
SDLK_PERCENT = SInt32('%');
SDLK_DOLLAR = SInt32('$');
SDLK_AMPERSAND = SInt32('&');
SDLK_QUOTE = SInt32('\');
SDLK_LEFTPAREN = SInt32('(');
SDLK_RIGHTPAREN = SInt32(')');
SDLK_ASTERISK = SInt32('*');
SDLK_PLUS = SInt32('+');
SDLK_COMMA = SInt32(',');
SDLK_MINUS = SInt32('-');
SDLK_PERIOD = SInt32('.');
SDLK_SLASH = SInt32('/');
SDLK_0 = SInt32('0');
SDLK_1 = SInt32('1');
SDLK_2 = SInt32('2');
SDLK_3 = SInt32('3');
SDLK_4 = SInt32('4');
SDLK_5 = SInt32('5');
SDLK_6 = SInt32('6');
SDLK_7 = SInt32('7');
SDLK_8 = SInt32('8');
SDLK_9 = SInt32('9');
SDLK_COLON = SInt32(':');
SDLK_SEMICOLON = SInt32(';');
SDLK_LESS = SInt32('<');
SDLK_EQUALS = SInt32('=');
SDLK_GREATER = SInt32('>');
SDLK_QUESTION = SInt32('?');
SDLK_AT = SInt32('@');
{*
Skip uppercase letters
*}
SDLK_LEFTBRACKET = SInt32('[');
SDLK_BACKSLASH = SInt32('\');
SDLK_RIGHTBRACKET = SInt32(']');
SDLK_CARET = SInt32('^');
SDLK_UNDERSCORE = SInt32('_');
SDLK_BACKQUOTE = SInt32('`');
SDLK_a = SInt32('a');
SDLK_b = SInt32('b');
SDLK_c = SInt32('c');
SDLK_d = SInt32('d');
SDLK_e = SInt32('e');
SDLK_f = SInt32('f');
SDLK_g = SInt32('g');
SDLK_h = SInt32('h');
SDLK_i = SInt32('i');
SDLK_j = SInt32('j');
SDLK_k = SInt32('k');
SDLK_l = SInt32('l');
SDLK_m = SInt32('m');
SDLK_n = SInt32('n');
SDLK_o = SInt32('o');
SDLK_p = SInt32('p');
SDLK_q = SInt32('q');
SDLK_r = SInt32('r');
SDLK_s = SInt32('s');
SDLK_t = SInt32('t');
SDLK_u = SInt32('u');
SDLK_v = SInt32('v');
SDLK_w = SInt32('w');
SDLK_x = SInt32('x');
SDLK_y = SInt32('y');
SDLK_z = SInt32('z');
SDLK_CAPSLOCK = SDL_SCANCODE_CAPSLOCK or SDLK_SCANCODE_MASK;
SDLK_F1 = SDL_SCANCODE_F1 or SDLK_SCANCODE_MASK;
SDLK_F2 = SDL_SCANCODE_F2 or SDLK_SCANCODE_MASK;
SDLK_F3 = SDL_SCANCODE_F3 or SDLK_SCANCODE_MASK;
SDLK_F4 = SDL_SCANCODE_F4 or SDLK_SCANCODE_MASK;
SDLK_F5 = SDL_SCANCODE_F5 or SDLK_SCANCODE_MASK;
SDLK_F6 = SDL_SCANCODE_F6 or SDLK_SCANCODE_MASK;
SDLK_F7 = SDL_SCANCODE_F7 or SDLK_SCANCODE_MASK;
SDLK_F8 = SDL_SCANCODE_F8 or SDLK_SCANCODE_MASK;
SDLK_F9 = SDL_SCANCODE_F9 or SDLK_SCANCODE_MASK;
SDLK_F10 = SDL_SCANCODE_F10 or SDLK_SCANCODE_MASK;
SDLK_F11 = SDL_SCANCODE_F11 or SDLK_SCANCODE_MASK;
SDLK_F12 = SDL_SCANCODE_F12 or SDLK_SCANCODE_MASK;
SDLK_PRINTSCREEN = SDL_SCANCODE_PRINTSCREEN or SDLK_SCANCODE_MASK;
SDLK_SCROLLLOCK = SDL_SCANCODE_SCROLLLOCK or SDLK_SCANCODE_MASK;
SDLK_PAUSE = SDL_SCANCODE_PAUSE or SDLK_SCANCODE_MASK;
SDLK_INSERT = SDL_SCANCODE_INSERT or SDLK_SCANCODE_MASK;
SDLK_HOME = SDL_SCANCODE_HOME or SDLK_SCANCODE_MASK;
SDLK_PAGEUP = SDL_SCANCODE_PAGEUP or SDLK_SCANCODE_MASK;
SDLK_DELETE = SInt32(#127); // C: '\177'
SDLK_END = SDL_SCANCODE_END or SDLK_SCANCODE_MASK;
SDLK_PAGEDOWN = SDL_SCANCODE_PAGEDOWN or SDLK_SCANCODE_MASK;
SDLK_RIGHT = SDL_SCANCODE_RIGHT or SDLK_SCANCODE_MASK;
SDLK_LEFT = SDL_SCANCODE_LEFT or SDLK_SCANCODE_MASK;
SDLK_DOWN = SDL_SCANCODE_DOWN or SDLK_SCANCODE_MASK;
SDLK_UP = SDL_SCANCODE_UP or SDLK_SCANCODE_MASK;
SDLK_NUMLOCKCLEAR = SDL_SCANCODE_NUMLOCKCLEAR or SDLK_SCANCODE_MASK;
SDLK_KP_DIVIDE = SDL_SCANCODE_KP_DIVIDE or SDLK_SCANCODE_MASK;
SDLK_KP_MULTIPLY = SDL_SCANCODE_KP_MULTIPLY or SDLK_SCANCODE_MASK;
SDLK_KP_MINUS = SDL_SCANCODE_KP_MINUS or SDLK_SCANCODE_MASK;
SDLK_KP_PLUS = SDL_SCANCODE_KP_PLUS or SDLK_SCANCODE_MASK;
SDLK_KP_ENTER = SDL_SCANCODE_KP_ENTER or SDLK_SCANCODE_MASK;
SDLK_KP_1 = SDL_SCANCODE_KP_1 or SDLK_SCANCODE_MASK;
SDLK_KP_2 = SDL_SCANCODE_KP_2 or SDLK_SCANCODE_MASK;
SDLK_KP_3 = SDL_SCANCODE_KP_3 or SDLK_SCANCODE_MASK;
SDLK_KP_4 = SDL_SCANCODE_KP_4 or SDLK_SCANCODE_MASK;
SDLK_KP_5 = SDL_SCANCODE_KP_5 or SDLK_SCANCODE_MASK;
SDLK_KP_6 = SDL_SCANCODE_KP_6 or SDLK_SCANCODE_MASK;
SDLK_KP_7 = SDL_SCANCODE_KP_7 or SDLK_SCANCODE_MASK;
SDLK_KP_8 = SDL_SCANCODE_KP_8 or SDLK_SCANCODE_MASK;
SDLK_KP_9 = SDL_SCANCODE_KP_9 or SDLK_SCANCODE_MASK;
SDLK_KP_0 = SDL_SCANCODE_KP_0 or SDLK_SCANCODE_MASK;
SDLK_KP_PERIOD = SDL_SCANCODE_KP_PERIOD or SDLK_SCANCODE_MASK;
SDLK_APPLICATION = SDL_SCANCODE_APPLICATION or SDLK_SCANCODE_MASK;
SDLK_POWER = SDL_SCANCODE_POWER or SDLK_SCANCODE_MASK;
SDLK_KP_EQUALS = SDL_SCANCODE_KP_EQUALS or SDLK_SCANCODE_MASK;
SDLK_F13 = SDL_SCANCODE_F13 or SDLK_SCANCODE_MASK;
SDLK_F14 = SDL_SCANCODE_F14 or SDLK_SCANCODE_MASK;
SDLK_F15 = SDL_SCANCODE_F15 or SDLK_SCANCODE_MASK;
SDLK_F16 = SDL_SCANCODE_F16 or SDLK_SCANCODE_MASK;
SDLK_F17 = SDL_SCANCODE_F17 or SDLK_SCANCODE_MASK;
SDLK_F18 = SDL_SCANCODE_F18 or SDLK_SCANCODE_MASK;
SDLK_F19 = SDL_SCANCODE_F19 or SDLK_SCANCODE_MASK;
SDLK_F20 = SDL_SCANCODE_F20 or SDLK_SCANCODE_MASK;
SDLK_F21 = SDL_SCANCODE_F21 or SDLK_SCANCODE_MASK;
SDLK_F22 = SDL_SCANCODE_F22 or SDLK_SCANCODE_MASK;
SDLK_F23 = SDL_SCANCODE_F23 or SDLK_SCANCODE_MASK;
SDLK_F24 = SDL_SCANCODE_F24 or SDLK_SCANCODE_MASK;
SDLK_EXECUTE = SDL_SCANCODE_EXECUTE or SDLK_SCANCODE_MASK;
SDLK_HELP = SDL_SCANCODE_HELP or SDLK_SCANCODE_MASK;
SDLK_MENU = SDL_SCANCODE_MENU or SDLK_SCANCODE_MASK;
SDLK_SELECT = SDL_SCANCODE_SELECT or SDLK_SCANCODE_MASK;
SDLK_STOP = SDL_SCANCODE_STOP or SDLK_SCANCODE_MASK;
SDLK_AGAIN = SDL_SCANCODE_AGAIN or SDLK_SCANCODE_MASK;
SDLK_UNDO = SDL_SCANCODE_UNDO or SDLK_SCANCODE_MASK;
SDLK_CUT = SDL_SCANCODE_CUT or SDLK_SCANCODE_MASK;
SDLK_COPY = SDL_SCANCODE_COPY or SDLK_SCANCODE_MASK;
SDLK_PASTE = SDL_SCANCODE_PASTE or SDLK_SCANCODE_MASK;
SDLK_FIND = SDL_SCANCODE_FIND or SDLK_SCANCODE_MASK;
SDLK_MUTE = SDL_SCANCODE_MUTE or SDLK_SCANCODE_MASK;
SDLK_VOLUMEUP = SDL_SCANCODE_VOLUMEUP or SDLK_SCANCODE_MASK;
SDLK_VOLUMEDOWN = SDL_SCANCODE_VOLUMEDOWN or SDLK_SCANCODE_MASK;
SDLK_KP_COMMA = SDL_SCANCODE_KP_COMMA or SDLK_SCANCODE_MASK;
SDLK_KP_EQUALSAS400 = SDL_SCANCODE_KP_EQUALSAS400 or SDLK_SCANCODE_MASK;
SDLK_ALTERASE = SDL_SCANCODE_ALTERASE or SDLK_SCANCODE_MASK;
SDLK_SYSREQ = SDL_SCANCODE_SYSREQ or SDLK_SCANCODE_MASK;
SDLK_CANCEL = SDL_SCANCODE_CANCEL or SDLK_SCANCODE_MASK;
SDLK_CLEAR = SDL_SCANCODE_CLEAR or SDLK_SCANCODE_MASK;
SDLK_PRIOR = SDL_SCANCODE_PRIOR or SDLK_SCANCODE_MASK;
SDLK_RETURN2 = SDL_SCANCODE_RETURN2 or SDLK_SCANCODE_MASK;
SDLK_SEPARATOR = SDL_SCANCODE_SEPARATOR or SDLK_SCANCODE_MASK;
SDLK_OUT = SDL_SCANCODE_OUT or SDLK_SCANCODE_MASK;
SDLK_OPER = SDL_SCANCODE_OPER or SDLK_SCANCODE_MASK;
SDLK_CLEARAGAIN = SDL_SCANCODE_CLEARAGAIN or SDLK_SCANCODE_MASK;
SDLK_CRSEL = SDL_SCANCODE_CRSEL or SDLK_SCANCODE_MASK;
SDLK_EXSEL = SDL_SCANCODE_EXSEL or SDLK_SCANCODE_MASK;
SDLK_KP_00 = SDL_SCANCODE_KP_00 or SDLK_SCANCODE_MASK;
SDLK_KP_000 = SDL_SCANCODE_KP_000 or SDLK_SCANCODE_MASK;
SDLK_THOUSANDSSEPARATOR = SDL_SCANCODE_THOUSANDSSEPARATOR or SDLK_SCANCODE_MASK;
SDLK_DECIMALSEPARATOR = SDL_SCANCODE_DECIMALSEPARATOR or SDLK_SCANCODE_MASK;
SDLK_CURRENCYUNIT = SDL_SCANCODE_CURRENCYUNIT or SDLK_SCANCODE_MASK;
SDLK_CURRENCYSUBUNIT = SDL_SCANCODE_CURRENCYSUBUNIT or SDLK_SCANCODE_MASK;
SDLK_KP_LEFTPAREN = SDL_SCANCODE_KP_LEFTPAREN or SDLK_SCANCODE_MASK;
SDLK_KP_RIGHTPAREN = SDL_SCANCODE_KP_RIGHTPAREN or SDLK_SCANCODE_MASK;
SDLK_KP_LEFTBRACE = SDL_SCANCODE_KP_LEFTBRACE or SDLK_SCANCODE_MASK;
SDLK_KP_RIGHTBRACE = SDL_SCANCODE_KP_RIGHTBRACE or SDLK_SCANCODE_MASK;
SDLK_KP_TAB = SDL_SCANCODE_KP_TAB or SDLK_SCANCODE_MASK;
SDLK_KP_BACKSPACE = SDL_SCANCODE_KP_BACKSPACE or SDLK_SCANCODE_MASK;
SDLK_KP_A = SDL_SCANCODE_KP_A or SDLK_SCANCODE_MASK;
SDLK_KP_B = SDL_SCANCODE_KP_B or SDLK_SCANCODE_MASK;
SDLK_KP_C = SDL_SCANCODE_KP_C or SDLK_SCANCODE_MASK;
SDLK_KP_D = SDL_SCANCODE_KP_D or SDLK_SCANCODE_MASK;
SDLK_KP_E = SDL_SCANCODE_KP_E or SDLK_SCANCODE_MASK;
SDLK_KP_F = SDL_SCANCODE_KP_F or SDLK_SCANCODE_MASK;
SDLK_KP_XOR = SDL_SCANCODE_KP_XOR or SDLK_SCANCODE_MASK;
SDLK_KP_POWER = SDL_SCANCODE_KP_POWER or SDLK_SCANCODE_MASK;
SDLK_KP_PERCENT = SDL_SCANCODE_KP_PERCENT or SDLK_SCANCODE_MASK;
SDLK_KP_LESS = SDL_SCANCODE_KP_LESS or SDLK_SCANCODE_MASK;
SDLK_KP_GREATER = SDL_SCANCODE_KP_GREATER or SDLK_SCANCODE_MASK;
SDLK_KP_AMPERSAND = SDL_SCANCODE_KP_AMPERSAND or SDLK_SCANCODE_MASK;
SDLK_KP_DBLAMPERSAND = SDL_SCANCODE_KP_DBLAMPERSAND or SDLK_SCANCODE_MASK;
SDLK_KP_VERTICALBAR = SDL_SCANCODE_KP_VERTICALBAR or SDLK_SCANCODE_MASK;
SDLK_KP_DBLVERTICALBAR = SDL_SCANCODE_KP_DBLVERTICALBAR or SDLK_SCANCODE_MASK;
SDLK_KP_COLON = SDL_SCANCODE_KP_COLON or SDLK_SCANCODE_MASK;
SDLK_KP_HASH = SDL_SCANCODE_KP_HASH or SDLK_SCANCODE_MASK;
SDLK_KP_SPACE = SDL_SCANCODE_KP_SPACE or SDLK_SCANCODE_MASK;
SDLK_KP_AT = SDL_SCANCODE_KP_AT or SDLK_SCANCODE_MASK;
SDLK_KP_EXCLAM = SDL_SCANCODE_KP_EXCLAM or SDLK_SCANCODE_MASK;
SDLK_KP_MEMSTORE = SDL_SCANCODE_KP_MEMSTORE or SDLK_SCANCODE_MASK;
SDLK_KP_MEMRECALL = SDL_SCANCODE_KP_MEMRECALL or SDLK_SCANCODE_MASK;
SDLK_KP_MEMCLEAR = SDL_SCANCODE_KP_MEMCLEAR or SDLK_SCANCODE_MASK;
SDLK_KP_MEMADD = SDL_SCANCODE_KP_MEMADD or SDLK_SCANCODE_MASK;
SDLK_KP_MEMSUBTRACT = SDL_SCANCODE_KP_MEMSUBTRACT or SDLK_SCANCODE_MASK;
SDLK_KP_MEMMULTIPLY = SDL_SCANCODE_KP_MEMMULTIPLY or SDLK_SCANCODE_MASK;
SDLK_KP_MEMDIVIDE = SDL_SCANCODE_KP_MEMDIVIDE or SDLK_SCANCODE_MASK;
SDLK_KP_PLUSMINUS = SDL_SCANCODE_KP_PLUSMINUS or SDLK_SCANCODE_MASK;
SDLK_KP_CLEAR = SDL_SCANCODE_KP_CLEAR or SDLK_SCANCODE_MASK;
SDLK_KP_CLEARENTRY = SDL_SCANCODE_KP_CLEARENTRY or SDLK_SCANCODE_MASK;
SDLK_KP_BINARY = SDL_SCANCODE_KP_BINARY or SDLK_SCANCODE_MASK;
SDLK_KP_OCTAL = SDL_SCANCODE_KP_OCTAL or SDLK_SCANCODE_MASK;
SDLK_KP_DECIMAL = SDL_SCANCODE_KP_DECIMAL or SDLK_SCANCODE_MASK;
SDLK_KP_HEXADECIMAL = SDL_SCANCODE_KP_HEXADECIMAL or SDLK_SCANCODE_MASK;
SDLK_LCTRL = SDL_SCANCODE_LCTRL or SDLK_SCANCODE_MASK;
SDLK_LSHIFT = SDL_SCANCODE_LSHIFT or SDLK_SCANCODE_MASK;
SDLK_LALT = SDL_SCANCODE_LALT or SDLK_SCANCODE_MASK;
SDLK_LGUI = SDL_SCANCODE_LGUI or SDLK_SCANCODE_MASK;
SDLK_RCTRL = SDL_SCANCODE_RCTRL or SDLK_SCANCODE_MASK;
SDLK_RSHIFT = SDL_SCANCODE_RSHIFT or SDLK_SCANCODE_MASK;
SDLK_RALT = SDL_SCANCODE_RALT or SDLK_SCANCODE_MASK;
SDLK_RGUI = SDL_SCANCODE_RGUI or SDLK_SCANCODE_MASK;
SDLK_MODE = SDL_SCANCODE_MODE or SDLK_SCANCODE_MASK;
SDLK_AUDIONEXT = SDL_SCANCODE_AUDIONEXT or SDLK_SCANCODE_MASK;
SDLK_AUDIOPREV = SDL_SCANCODE_AUDIOPREV or SDLK_SCANCODE_MASK;
SDLK_AUDIOSTOP = SDL_SCANCODE_AUDIOSTOP or SDLK_SCANCODE_MASK;
SDLK_AUDIOPLAY = SDL_SCANCODE_AUDIOPLAY or SDLK_SCANCODE_MASK;
SDLK_AUDIOMUTE = SDL_SCANCODE_AUDIOMUTE or SDLK_SCANCODE_MASK;
SDLK_MEDIASELECT = SDL_SCANCODE_MEDIASELECT or SDLK_SCANCODE_MASK;
SDLK_WWW = SDL_SCANCODE_WWW or SDLK_SCANCODE_MASK;
SDLK_MAIL = SDL_SCANCODE_MAIL or SDLK_SCANCODE_MASK;
SDLK_CALCULATOR = SDL_SCANCODE_CALCULATOR or SDLK_SCANCODE_MASK;
SDLK_COMPUTER = SDL_SCANCODE_COMPUTER or SDLK_SCANCODE_MASK;
SDLK_AC_SEARCH = SDL_SCANCODE_AC_SEARCH or SDLK_SCANCODE_MASK;
SDLK_AC_HOME = SDL_SCANCODE_AC_HOME or SDLK_SCANCODE_MASK;
SDLK_AC_BACK = SDL_SCANCODE_AC_BACK or SDLK_SCANCODE_MASK;
SDLK_AC_FORWARD = SDL_SCANCODE_AC_FORWARD or SDLK_SCANCODE_MASK;
SDLK_AC_STOP = SDL_SCANCODE_AC_STOP or SDLK_SCANCODE_MASK;
SDLK_AC_REFRESH = SDL_SCANCODE_AC_REFRESH or SDLK_SCANCODE_MASK;
SDLK_AC_BOOKMARKS = SDL_SCANCODE_AC_BOOKMARKS or SDLK_SCANCODE_MASK;
SDLK_BRIGHTNESSDOWN = SDL_SCANCODE_BRIGHTNESSDOWN or SDLK_SCANCODE_MASK;
SDLK_BRIGHTNESSUP = SDL_SCANCODE_BRIGHTNESSUP or SDLK_SCANCODE_MASK;
SDLK_DISPLAYSWITCH = SDL_SCANCODE_DISPLAYSWITCH or SDLK_SCANCODE_MASK;
SDLK_KBDILLUMTOGGLE = SDL_SCANCODE_KBDILLUMTOGGLE or SDLK_SCANCODE_MASK;
SDLK_KBDILLUMDOWN = SDL_SCANCODE_KBDILLUMDOWN or SDLK_SCANCODE_MASK;
SDLK_KBDILLUMUP = SDL_SCANCODE_KBDILLUMUP or SDLK_SCANCODE_MASK;
SDLK_EJECT = SDL_SCANCODE_EJECT or SDLK_SCANCODE_MASK;
SDLK_SLEEP = SDL_SCANCODE_SLEEP or SDLK_SCANCODE_MASK;
{**
* Enumeration of valid key mods (possibly OR'd together).
*}
KMOD_NONE = $0000;
KMOD_LSHIFT = $0001;
KMOD_RSHIFT = $0002;
KMOD_LCTRL = $0040;
KMOD_RCTRL = $0080;
KMOD_LALT = $0100;
KMOD_RALT = $0200;
KMOD_LGUI = $0400;
KMOD_RGUI = $0800;
KMOD_NUM = $1000;
KMOD_CAPS = $2000;
KMOD_MODE = $4000;
KMOD_RESERVED = $8000;
type
PSDL_KeyMod = ^TSDL_KeyMod;
TSDL_KeyMod = Word;
const
KMOD_CTRL = KMOD_LCTRL or KMOD_RCTRL;
KMOD_SHIFT = KMOD_LSHIFT or KMOD_RSHIFT;
KMOD_ALT = KMOD_LALT or KMOD_RALT;
KMOD_GUI = KMOD_LGUI or KMOD_RGUI;