diff options
Diffstat (limited to 'sdl2/keyboard.ha')
| -rw-r--r-- | sdl2/keyboard.ha | 657 |
1 files changed, 0 insertions, 657 deletions
diff --git a/sdl2/keyboard.ha b/sdl2/keyboard.ha deleted file mode 100644 index 02cedae..0000000 --- a/sdl2/keyboard.ha +++ /dev/null @@ -1,657 +0,0 @@ -use types::c; - -export type SDL_Scancode = enum uint { - UNKNOWN = 0, - - // Usage page 0x07 - // These values are from usage page 0x07 (USB keyboard page). - - A = 4, - B = 5, - C = 6, - D = 7, - E = 8, - F = 9, - G = 10, - H = 11, - I = 12, - J = 13, - K = 14, - L = 15, - M = 16, - N = 17, - O = 18, - P = 19, - Q = 20, - R = 21, - S = 22, - T = 23, - U = 24, - V = 25, - W = 26, - X = 27, - Y = 28, - Z = 29, - - ONE = 30, - TWO = 31, - THREE = 32, - FOUR = 33, - FIVE = 34, - SIX = 35, - SEVEN = 36, - EIGHT = 37, - NINE = 38, - ZERO = 39, - - RETURN = 40, - ESCAPE = 41, - BACKSPACE = 42, - TAB = 43, - SPACE = 44, - - MINUS = 45, - EQUALS = 46, - LEFTBRACKET = 47, - RIGHTBRACKET = 48, - // 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. - BACKSLASH = 49, - 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 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. - SEMICOLON = 51, - APOSTROPHE = 52, - // 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. - GRAVE = 53, - COMMA = 54, - PERIOD = 55, - SLASH = 56, - - CAPSLOCK = 57, - - F1 = 58, - F2 = 59, - F3 = 60, - F4 = 61, - F5 = 62, - F6 = 63, - F7 = 64, - F8 = 65, - F9 = 66, - F10 = 67, - F11 = 68, - F12 = 69, - - PRINTSCREEN = 70, - SCROLLLOCK = 71, - PAUSE = 72, - // insert on PC, help on some Mac keyboards (but does send code 73, - // not 117) - INSERT = 73, - HOME = 74, - PAGEUP = 75, - DELETE = 76, - END = 77, - PAGEDOWN = 78, - RIGHT = 79, - LEFT = 80, - DOWN = 81, - UP = 82, - - NUMLOCKCLEAR = 83, // num lock on PC, clear on Mac keyboards - KP_DIVIDE = 84, - KP_MULTIPLY = 85, - KP_MINUS = 86, - KP_PLUS = 87, - KP_ENTER = 88, - KP_1 = 89, - KP_2 = 90, - KP_3 = 91, - KP_4 = 92, - KP_5 = 93, - KP_6 = 94, - KP_7 = 95, - KP_8 = 96, - KP_9 = 97, - KP_0 = 98, - KP_PERIOD = 99, - - // 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. */ - NONUSBACKSLASH = 100, - APPLICATION = 101, // windows contextual menu, compose - // The USB document says this is a status flag, not a physical key - but - // some Mac keyboards do have a power key. - POWER = 102, - KP_EQUALS = 103, - F13 = 104, - F14 = 105, - F15 = 106, - F16 = 107, - F17 = 108, - F18 = 109, - F19 = 110, - F20 = 111, - F21 = 112, - F22 = 113, - F23 = 114, - F24 = 115, - EXECUTE = 116, - HELP = 117, - MENU = 118, - SELECT = 119, - STOP = 120, - AGAIN = 121, // redo - UNDO = 122, - CUT = 123, - COPY = 124, - PASTE = 125, - FIND = 126, - MUTE = 127, - VOLUMEUP = 128, - VOLUMEDOWN = 129, -// not sure whether there's a reason to enable these -// LOCKINGCAPSLOCK = 130, -// LOCKINGNUMLOCK = 131, -// LOCKINGSCROLLLOCK = 132, - KP_COMMA = 133, - KP_EQUALSAS400 = 134, - - // used on Asian keyboards, see footnotes in USB doc - INTERNATIONAL1 = 135, - INTERNATIONAL2 = 136, - INTERNATIONAL3 = 137, // Yen - INTERNATIONAL4 = 138, - INTERNATIONAL5 = 139, - INTERNATIONAL6 = 140, - INTERNATIONAL7 = 141, - INTERNATIONAL8 = 142, - INTERNATIONAL9 = 143, - LANG1 = 144, // Hangul/English toggle - LANG2 = 145, // Hanja conversion - LANG3 = 146, // Katakana - LANG4 = 147, // Hiragana - LANG5 = 148, // Zenkaku/Hankaku - LANG6 = 149, // reserved - LANG7 = 150, // reserved - LANG8 = 151, // reserved - LANG9 = 152, // reserved - - ALTERASE = 153, // Erase-Eaze - SYSREQ = 154, - CANCEL = 155, - CLEAR = 156, - PRIOR = 157, - RETURN2 = 158, - SEPARATOR = 159, - OUT = 160, - OPER = 161, - CLEARAGAIN = 162, - CRSEL = 163, - EXSEL = 164, - - KP_00 = 176, - KP_000 = 177, - THOUSANDSSEPARATOR = 178, - DECIMALSEPARATOR = 179, - CURRENCYUNIT = 180, - CURRENCYSUBUNIT = 181, - KP_LEFTPAREN = 182, - KP_RIGHTPAREN = 183, - KP_LEFTBRACE = 184, - KP_RIGHTBRACE = 185, - KP_TAB = 186, - KP_BACKSPACE = 187, - KP_A = 188, - KP_B = 189, - KP_C = 190, - KP_D = 191, - KP_E = 192, - KP_F = 193, - KP_XOR = 194, - KP_POWER = 195, - KP_PERCENT = 196, - KP_LESS = 197, - KP_GREATER = 198, - KP_AMPERSAND = 199, - KP_DBLAMPERSAND = 200, - KP_VERTICALBAR = 201, - KP_DBLVERTICALBAR = 202, - KP_COLON = 203, - KP_HASH = 204, - KP_SPACE = 205, - KP_AT = 206, - KP_EXCLAM = 207, - KP_MEMSTORE = 208, - KP_MEMRECALL = 209, - KP_MEMCLEAR = 210, - KP_MEMADD = 211, - KP_MEMSUBTRACT = 212, - KP_MEMMULTIPLY = 213, - KP_MEMDIVIDE = 214, - KP_PLUSMINUS = 215, - KP_CLEAR = 216, - KP_CLEARENTRY = 217, - KP_BINARY = 218, - KP_OCTAL = 219, - KP_DECIMAL = 220, - KP_HEXADECIMAL = 221, - - LCTRL = 224, - LSHIFT = 225, - LALT = 226, // alt, option - LGUI = 227, // windows, command (apple), meta - RCTRL = 228, - RSHIFT = 229, - RALT = 230, // alt gr, option - RGUI = 231, // windows, command (apple), meta - - // 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 - MODE = 257, - - // Usage page 0x0C - // These values are mapped from usage page 0x0C (USB consumer page). - - AUDIONEXT = 258, - AUDIOPREV = 259, - AUDIOSTOP = 260, - AUDIOPLAY = 261, - AUDIOMUTE = 262, - MEDIASELECT = 263, - WWW = 264, - MAIL = 265, - CALCULATOR = 266, - COMPUTER = 267, - AC_SEARCH = 268, - AC_HOME = 269, - AC_BACK = 270, - AC_FORWARD = 271, - AC_STOP = 272, - AC_REFRESH = 273, - AC_BOOKMARKS = 274, - - // Walther keys - // These are values that Christian Walther added (for mac keyboard?). - - BRIGHTNESSDOWN = 275, - BRIGHTNESSUP = 276, - // display mirroring/dual display switch, video mode switch - DISPLAYSWITCH = 277, - KBDILLUMTOGGLE = 278, - KBDILLUMDOWN = 279, - KBDILLUMUP = 280, - EJECT = 281, - SLEEP = 282, - - APP1 = 283, - APP2 = 284, - - // Usage page 0x0C (additional media keys) - // These values are mapped from usage page 0x0C (USB consumer page). - - AUDIOREWIND = 285, - AUDIOFASTFORWARD = 286, - - // Add any other keys here. - - // not a key, just marks the number of scancodes for array bounds - NUM_SCANCODES = 512, -}; - -export type SDL_Keycode = enum uint { - UNKNOWN = 0, - - RETURN = '\r', - ESCAPE = '\x1B', - BACKSPACE = '\b', - TAB = '\t', - SPACE = ' ', - EXCLAIM = '!', - QUOTEDBL = '"', - HASH = '#', - PERCENT = '%', - DOLLAR = '$', - AMPERSAND = '&', - QUOTE = '\'', - LEFTPAREN = '(', - RIGHTPAREN = ')', - ASTERISK = '*', - PLUS = '+', - COMMA = ',', - MINUS = '-', - PERIOD = '.', - SLASH = '/', - ZERO = '0', - ONE = '1', - TWO = '2', - THREE = '3', - FOUR = '4', - FIVE = '5', - SIX = '6', - SEVEN = '7', - EIGHT = '8', - NINE = '9', - COLON = ':', - SEMICOLON = ';', - LESS = '<', - EQUALS = '=', - GREATER = '>', - QUESTION = '?', - AT = '@', - - // Skip uppercase letters - - LEFTBRACKET = '[', - BACKSLASH = '\\', - RIGHTBRACKET = ']', - CARET = '^', - UNDERSCORE = '_', - BACKQUOTE = '`', - a = 'a', - b = 'b', - c = 'c', - d = 'd', - e = 'e', - f = 'f', - g = 'g', - h = 'h', - i = 'i', - j = 'j', - k = 'k', - l = 'l', - m = 'm', - n = 'n', - o = 'o', - p = 'p', - q = 'q', - r = 'r', - s = 's', - t = 't', - u = 'u', - v = 'v', - w = 'w', - x = 'x', - y = 'y', - z = 'z', - - CAPSLOCK = SDL_Scancode::CAPSLOCK | 1: SDL_Scancode << 30: SDL_Scancode, - - F1 = SDL_Scancode::F1 | 1: SDL_Scancode << 30, - F2 = SDL_Scancode::F2 | 1: SDL_Scancode << 30, - F3 = SDL_Scancode::F3 | 1: SDL_Scancode << 30, - F4 = SDL_Scancode::F4 | 1: SDL_Scancode << 30, - F5 = SDL_Scancode::F5 | 1: SDL_Scancode << 30, - F6 = SDL_Scancode::F6 | 1: SDL_Scancode << 30, - F7 = SDL_Scancode::F7 | 1: SDL_Scancode << 30, - F8 = SDL_Scancode::F8 | 1: SDL_Scancode << 30, - F9 = SDL_Scancode::F9 | 1: SDL_Scancode << 30, - F10 = SDL_Scancode::F10 | 1: SDL_Scancode << 30, - F11 = SDL_Scancode::F11 | 1: SDL_Scancode << 30, - F12 = SDL_Scancode::F12 | 1: SDL_Scancode << 30, - - PRINTSCREEN = SDL_Scancode::PRINTSCREEN | 1: SDL_Scancode << 30, - SCROLLLOCK = SDL_Scancode::SCROLLLOCK | 1: SDL_Scancode << 30, - PAUSE = SDL_Scancode::PAUSE | 1: SDL_Scancode << 30, - INSERT = SDL_Scancode::INSERT | 1: SDL_Scancode << 30, - HOME = SDL_Scancode::HOME | 1: SDL_Scancode << 30, - PAGEUP = SDL_Scancode::PAGEUP | 1: SDL_Scancode << 30, - DELETE = '\x7F', - END = SDL_Scancode::END | 1: SDL_Scancode << 30, - PAGEDOWN = SDL_Scancode::PAGEDOWN | 1: SDL_Scancode << 30, - RIGHT = SDL_Scancode::RIGHT | 1: SDL_Scancode << 30, - LEFT = SDL_Scancode::LEFT | 1: SDL_Scancode << 30, - DOWN = SDL_Scancode::DOWN | 1: SDL_Scancode << 30, - UP = SDL_Scancode::UP | 1: SDL_Scancode << 30, - - NUMLOCKCLEAR = SDL_Scancode::NUMLOCKCLEAR | 1: SDL_Scancode << 30, - KP_DIVIDE = SDL_Scancode::KP_DIVIDE | 1: SDL_Scancode << 30, - KP_MULTIPLY = SDL_Scancode::KP_MULTIPLY | 1: SDL_Scancode << 30, - KP_MINUS = SDL_Scancode::KP_MINUS | 1: SDL_Scancode << 30, - KP_PLUS = SDL_Scancode::KP_PLUS | 1: SDL_Scancode << 30, - KP_ENTER = SDL_Scancode::KP_ENTER | 1: SDL_Scancode << 30, - KP_1 = SDL_Scancode::KP_1 | 1: SDL_Scancode << 30, - KP_2 = SDL_Scancode::KP_2 | 1: SDL_Scancode << 30, - KP_3 = SDL_Scancode::KP_3 | 1: SDL_Scancode << 30, - KP_4 = SDL_Scancode::KP_4 | 1: SDL_Scancode << 30, - KP_5 = SDL_Scancode::KP_5 | 1: SDL_Scancode << 30, - KP_6 = SDL_Scancode::KP_6 | 1: SDL_Scancode << 30, - KP_7 = SDL_Scancode::KP_7 | 1: SDL_Scancode << 30, - KP_8 = SDL_Scancode::KP_8 | 1: SDL_Scancode << 30, - KP_9 = SDL_Scancode::KP_9 | 1: SDL_Scancode << 30, - KP_0 = SDL_Scancode::KP_0 | 1: SDL_Scancode << 30, - KP_PERIOD = SDL_Scancode::KP_PERIOD | 1: SDL_Scancode << 30, - - APPLICATION = SDL_Scancode::APPLICATION | 1: SDL_Scancode << 30, - POWER = SDL_Scancode::POWER | 1: SDL_Scancode << 30, - KP_EQUALS = SDL_Scancode::KP_EQUALS | 1: SDL_Scancode << 30, - F13 = SDL_Scancode::F13 | 1: SDL_Scancode << 30, - F14 = SDL_Scancode::F14 | 1: SDL_Scancode << 30, - F15 = SDL_Scancode::F15 | 1: SDL_Scancode << 30, - F16 = SDL_Scancode::F16 | 1: SDL_Scancode << 30, - F17 = SDL_Scancode::F17 | 1: SDL_Scancode << 30, - F18 = SDL_Scancode::F18 | 1: SDL_Scancode << 30, - F19 = SDL_Scancode::F19 | 1: SDL_Scancode << 30, - F20 = SDL_Scancode::F20 | 1: SDL_Scancode << 30, - F21 = SDL_Scancode::F21 | 1: SDL_Scancode << 30, - F22 = SDL_Scancode::F22 | 1: SDL_Scancode << 30, - F23 = SDL_Scancode::F23 | 1: SDL_Scancode << 30, - F24 = SDL_Scancode::F24 | 1: SDL_Scancode << 30, - EXECUTE = SDL_Scancode::EXECUTE | 1: SDL_Scancode << 30, - HELP = SDL_Scancode::HELP | 1: SDL_Scancode << 30, - MENU = SDL_Scancode::MENU | 1: SDL_Scancode << 30, - SELECT = SDL_Scancode::SELECT | 1: SDL_Scancode << 30, - STOP = SDL_Scancode::STOP | 1: SDL_Scancode << 30, - AGAIN = SDL_Scancode::AGAIN | 1: SDL_Scancode << 30, - UNDO = SDL_Scancode::UNDO | 1: SDL_Scancode << 30, - CUT = SDL_Scancode::CUT | 1: SDL_Scancode << 30, - COPY = SDL_Scancode::COPY | 1: SDL_Scancode << 30, - PASTE = SDL_Scancode::PASTE | 1: SDL_Scancode << 30, - FIND = SDL_Scancode::FIND | 1: SDL_Scancode << 30, - MUTE = SDL_Scancode::MUTE | 1: SDL_Scancode << 30, - VOLUMEUP = SDL_Scancode::VOLUMEUP | 1: SDL_Scancode << 30, - VOLUMEDOWN = SDL_Scancode::VOLUMEDOWN | 1: SDL_Scancode << 30, - KP_COMMA = SDL_Scancode::KP_COMMA | 1: SDL_Scancode << 30, - KP_EQUALSAS400 = SDL_Scancode::KP_EQUALSAS400 | 1: SDL_Scancode << 30, - - ALTERASE = SDL_Scancode::ALTERASE | 1: SDL_Scancode << 30, - SYSREQ = SDL_Scancode::SYSREQ | 1: SDL_Scancode << 30, - CANCEL = SDL_Scancode::CANCEL | 1: SDL_Scancode << 30, - CLEAR = SDL_Scancode::CLEAR | 1: SDL_Scancode << 30, - PRIOR = SDL_Scancode::PRIOR | 1: SDL_Scancode << 30, - RETURN2 = SDL_Scancode::RETURN2 | 1: SDL_Scancode << 30, - SEPARATOR = SDL_Scancode::SEPARATOR | 1: SDL_Scancode << 30, - OUT = SDL_Scancode::OUT | 1: SDL_Scancode << 30, - OPER = SDL_Scancode::OPER | 1: SDL_Scancode << 30, - CLEARAGAIN = SDL_Scancode::CLEARAGAIN | 1: SDL_Scancode << 30, - CRSEL = SDL_Scancode::CRSEL | 1: SDL_Scancode << 30, - EXSEL = SDL_Scancode::EXSEL | 1: SDL_Scancode << 30, - - KP_00 = SDL_Scancode::KP_00 | 1: SDL_Scancode << 30, - KP_000 = SDL_Scancode::KP_000 | 1: SDL_Scancode << 30, - THOUSANDSSEPARATOR = SDL_Scancode::THOUSANDSSEPARATOR | 1: SDL_Scancode << 30, - DECIMALSEPARATOR = SDL_Scancode::DECIMALSEPARATOR | 1: SDL_Scancode << 30, - CURRENCYUNIT = SDL_Scancode::CURRENCYUNIT | 1: SDL_Scancode << 30, - CURRENCYSUBUNIT = SDL_Scancode::CURRENCYSUBUNIT | 1: SDL_Scancode << 30, - KP_LEFTPAREN = SDL_Scancode::KP_LEFTPAREN | 1: SDL_Scancode << 30, - KP_RIGHTPAREN = SDL_Scancode::KP_RIGHTPAREN | 1: SDL_Scancode << 30, - KP_LEFTBRACE = SDL_Scancode::KP_LEFTBRACE | 1: SDL_Scancode << 30, - KP_RIGHTBRACE = SDL_Scancode::KP_RIGHTBRACE | 1: SDL_Scancode << 30, - KP_TAB = SDL_Scancode::KP_TAB | 1: SDL_Scancode << 30, - KP_BACKSPACE = SDL_Scancode::KP_BACKSPACE | 1: SDL_Scancode << 30, - KP_A = SDL_Scancode::KP_A | 1: SDL_Scancode << 30, - KP_B = SDL_Scancode::KP_B | 1: SDL_Scancode << 30, - KP_C = SDL_Scancode::KP_C | 1: SDL_Scancode << 30, - KP_D = SDL_Scancode::KP_D | 1: SDL_Scancode << 30, - KP_E = SDL_Scancode::KP_E | 1: SDL_Scancode << 30, - KP_F = SDL_Scancode::KP_F | 1: SDL_Scancode << 30, - KP_XOR = SDL_Scancode::KP_XOR | 1: SDL_Scancode << 30, - KP_POWER = SDL_Scancode::KP_POWER | 1: SDL_Scancode << 30, - KP_PERCENT = SDL_Scancode::KP_PERCENT | 1: SDL_Scancode << 30, - KP_LESS = SDL_Scancode::KP_LESS | 1: SDL_Scancode << 30, - KP_GREATER = SDL_Scancode::KP_GREATER | 1: SDL_Scancode << 30, - KP_AMPERSAND = SDL_Scancode::KP_AMPERSAND | 1: SDL_Scancode << 30, - KP_DBLAMPERSAND = SDL_Scancode::KP_DBLAMPERSAND | 1: SDL_Scancode << 30, - KP_VERTICALBAR = SDL_Scancode::KP_VERTICALBAR | 1: SDL_Scancode << 30, - KP_DBLVERTICALBAR = SDL_Scancode::KP_DBLVERTICALBAR | 1: SDL_Scancode << 30, - KP_COLON = SDL_Scancode::KP_COLON | 1: SDL_Scancode << 30, - KP_HASH = SDL_Scancode::KP_HASH | 1: SDL_Scancode << 30, - KP_SPACE = SDL_Scancode::KP_SPACE | 1: SDL_Scancode << 30, - KP_AT = SDL_Scancode::KP_AT | 1: SDL_Scancode << 30, - KP_EXCLAM = SDL_Scancode::KP_EXCLAM | 1: SDL_Scancode << 30, - KP_MEMSTORE = SDL_Scancode::KP_MEMSTORE | 1: SDL_Scancode << 30, - KP_MEMRECALL = SDL_Scancode::KP_MEMRECALL | 1: SDL_Scancode << 30, - KP_MEMCLEAR = SDL_Scancode::KP_MEMCLEAR | 1: SDL_Scancode << 30, - KP_MEMADD = SDL_Scancode::KP_MEMADD | 1: SDL_Scancode << 30, - KP_MEMSUBTRACT = SDL_Scancode::KP_MEMSUBTRACT | 1: SDL_Scancode << 30, - KP_MEMMULTIPLY = SDL_Scancode::KP_MEMMULTIPLY | 1: SDL_Scancode << 30, - KP_MEMDIVIDE = SDL_Scancode::KP_MEMDIVIDE | 1: SDL_Scancode << 30, - KP_PLUSMINUS = SDL_Scancode::KP_PLUSMINUS | 1: SDL_Scancode << 30, - KP_CLEAR = SDL_Scancode::KP_CLEAR | 1: SDL_Scancode << 30, - KP_CLEARENTRY = SDL_Scancode::KP_CLEARENTRY | 1: SDL_Scancode << 30, - KP_BINARY = SDL_Scancode::KP_BINARY | 1: SDL_Scancode << 30, - KP_OCTAL = SDL_Scancode::KP_OCTAL | 1: SDL_Scancode << 30, - KP_DECIMAL = SDL_Scancode::KP_DECIMAL | 1: SDL_Scancode << 30, - KP_HEXADECIMAL = SDL_Scancode::KP_HEXADECIMAL | 1: SDL_Scancode << 30, - - LCTRL = SDL_Scancode::LCTRL | 1: SDL_Scancode << 30, - LSHIFT = SDL_Scancode::LSHIFT | 1: SDL_Scancode << 30, - LALT = SDL_Scancode::LALT | 1: SDL_Scancode << 30, - LGUI = SDL_Scancode::LGUI | 1: SDL_Scancode << 30, - RCTRL = SDL_Scancode::RCTRL | 1: SDL_Scancode << 30, - RSHIFT = SDL_Scancode::RSHIFT | 1: SDL_Scancode << 30, - RALT = SDL_Scancode::RALT | 1: SDL_Scancode << 30, - RGUI = SDL_Scancode::RGUI | 1: SDL_Scancode << 30, - - MODE = SDL_Scancode::MODE | 1: SDL_Scancode << 30, - - AUDIONEXT = SDL_Scancode::AUDIONEXT | 1: SDL_Scancode << 30, - AUDIOPREV = SDL_Scancode::AUDIOPREV | 1: SDL_Scancode << 30, - AUDIOSTOP = SDL_Scancode::AUDIOSTOP | 1: SDL_Scancode << 30, - AUDIOPLAY = SDL_Scancode::AUDIOPLAY | 1: SDL_Scancode << 30, - AUDIOMUTE = SDL_Scancode::AUDIOMUTE | 1: SDL_Scancode << 30, - MEDIASELECT = SDL_Scancode::MEDIASELECT | 1: SDL_Scancode << 30, - WWW = SDL_Scancode::WWW | 1: SDL_Scancode << 30, - MAIL = SDL_Scancode::MAIL | 1: SDL_Scancode << 30, - CALCULATOR = SDL_Scancode::CALCULATOR | 1: SDL_Scancode << 30, - COMPUTER = SDL_Scancode::COMPUTER | 1: SDL_Scancode << 30, - AC_SEARCH = SDL_Scancode::AC_SEARCH | 1: SDL_Scancode << 30, - AC_HOME = SDL_Scancode::AC_HOME | 1: SDL_Scancode << 30, - AC_BACK = SDL_Scancode::AC_BACK | 1: SDL_Scancode << 30, - AC_FORWARD = SDL_Scancode::AC_FORWARD | 1: SDL_Scancode << 30, - AC_STOP = SDL_Scancode::AC_STOP | 1: SDL_Scancode << 30, - AC_REFRESH = SDL_Scancode::AC_REFRESH | 1: SDL_Scancode << 30, - AC_BOOKMARKS = SDL_Scancode::AC_BOOKMARKS | 1: SDL_Scancode << 30, - - BRIGHTNESSDOWN = SDL_Scancode::BRIGHTNESSDOWN | 1: SDL_Scancode << 30, - BRIGHTNESSUP = SDL_Scancode::BRIGHTNESSUP | 1: SDL_Scancode << 30, - DISPLAYSWITCH = SDL_Scancode::DISPLAYSWITCH | 1: SDL_Scancode << 30, - KBDILLUMTOGGLE = SDL_Scancode::KBDILLUMTOGGLE | 1: SDL_Scancode << 30, - KBDILLUMDOWN = SDL_Scancode::KBDILLUMDOWN | 1: SDL_Scancode << 30, - KBDILLUMUP = SDL_Scancode::KBDILLUMUP | 1: SDL_Scancode << 30, - EJECT = SDL_Scancode::EJECT | 1: SDL_Scancode << 30, - SLEEP = SDL_Scancode::SLEEP | 1: SDL_Scancode << 30, - APP1 = SDL_Scancode::APP1 | 1: SDL_Scancode << 30, - APP2 = SDL_Scancode::APP2 | 1: SDL_Scancode << 30, - - AUDIOREWIND = SDL_Scancode::AUDIOREWIND | 1: SDL_Scancode << 30, - AUDIOFASTFORWARD = SDL_Scancode::AUDIOFASTFORWARD | 1: SDL_Scancode << 30 -}; - -export type SDL_Keymod = enum u16 { - NONE = 0x0000, - LSHIFT = 0x0001, - RSHIFT = 0x0002, - LCTRL = 0x0040, - RCTRL = 0x0080, - LALT = 0x0100, - RALT = 0x0200, - LGUI = 0x0400, - RGUI = 0x0800, - NUM = 0x1000, - CAPS = 0x2000, - MODE = 0x4000, - SCROLL = 0x8000, - - CTRL = LCTRL | RCTRL, - SHIFT = LSHIFT | RSHIFT, - ALT = LALT | RALT, - GUI = LGUI | RGUI, - - RESERVED = SCROLL, -}; - -export type SDL_Keysym = struct { - scancode: SDL_Scancode, - sym: SDL_Keycode, - mod: SDL_Keymod, - unused: u32, -}; - -@symbol("SDL_GetKeyFromName") fn _SDL_GetKeyFromName(name: *const c::char) SDL_Keycode; - -export fn SDL_GetKeyFromName(name: str) (SDL_Keycode | error) = { - const name = c::fromstr(name)!; - defer free(name); - const sym = _SDL_GetKeyFromName(name); - if (sym == SDL_Keycode::UNKNOWN) { - return c::tostr(SDL_GetError()): error; - }; - return sym; -}; - -@symbol("SDL_GetKeyboardState") fn _SDL_GetKeyboardState(numkeys: *int) *[*]bool; - -export fn SDL_GetKeyboardState() []bool = { - let numkeys: int = 0; - let arr = _SDL_GetKeyboardState(&numkeys); - let arr = arr[..numkeys]; - return arr; -}; - -export @symbol("SDL_StartTextInput") fn SDL_StartTextInput(win: *SDL_Window) bool; -export @symbol("SDL_StopTextInput") fn SDL_StopTextInput(win: *SDL_Window) bool; |
