cscg22-gearboy

CSCG 2022 Challenge 'Gearboy'
git clone https://git.sinitax.com/sinitax/cscg22-gearboy
Log | Files | Refs | sfeed.txt

SDL_scancode.h (15254B)


      1/*
      2  Simple DirectMedia Layer
      3  Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
      4
      5  This software is provided 'as-is', without any express or implied
      6  warranty.  In no event will the authors be held liable for any damages
      7  arising from the use of this software.
      8
      9  Permission is granted to anyone to use this software for any purpose,
     10  including commercial applications, and to alter it and redistribute it
     11  freely, subject to the following restrictions:
     12
     13  1. The origin of this software must not be misrepresented; you must not
     14     claim that you wrote the original software. If you use this software
     15     in a product, an acknowledgment in the product documentation would be
     16     appreciated but is not required.
     17  2. Altered source versions must be plainly marked as such, and must not be
     18     misrepresented as being the original software.
     19  3. This notice may not be removed or altered from any source distribution.
     20*/
     21
     22/**
     23 *  \file SDL_scancode.h
     24 *
     25 *  Defines keyboard scancodes.
     26 */
     27
     28#ifndef SDL_scancode_h_
     29#define SDL_scancode_h_
     30
     31#include "SDL_stdinc.h"
     32
     33/**
     34 *  \brief The SDL keyboard scancode representation.
     35 *
     36 *  Values of this type are used to represent keyboard keys, among other places
     37 *  in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the
     38 *  SDL_Event structure.
     39 *
     40 *  The values in this enumeration are based on the USB usage page standard:
     41 *  https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
     42 */
     43typedef enum
     44{
     45    SDL_SCANCODE_UNKNOWN = 0,
     46
     47    /**
     48     *  \name Usage page 0x07
     49     *
     50     *  These values are from usage page 0x07 (USB keyboard page).
     51     */
     52    /* @{ */
     53
     54    SDL_SCANCODE_A = 4,
     55    SDL_SCANCODE_B = 5,
     56    SDL_SCANCODE_C = 6,
     57    SDL_SCANCODE_D = 7,
     58    SDL_SCANCODE_E = 8,
     59    SDL_SCANCODE_F = 9,
     60    SDL_SCANCODE_G = 10,
     61    SDL_SCANCODE_H = 11,
     62    SDL_SCANCODE_I = 12,
     63    SDL_SCANCODE_J = 13,
     64    SDL_SCANCODE_K = 14,
     65    SDL_SCANCODE_L = 15,
     66    SDL_SCANCODE_M = 16,
     67    SDL_SCANCODE_N = 17,
     68    SDL_SCANCODE_O = 18,
     69    SDL_SCANCODE_P = 19,
     70    SDL_SCANCODE_Q = 20,
     71    SDL_SCANCODE_R = 21,
     72    SDL_SCANCODE_S = 22,
     73    SDL_SCANCODE_T = 23,
     74    SDL_SCANCODE_U = 24,
     75    SDL_SCANCODE_V = 25,
     76    SDL_SCANCODE_W = 26,
     77    SDL_SCANCODE_X = 27,
     78    SDL_SCANCODE_Y = 28,
     79    SDL_SCANCODE_Z = 29,
     80
     81    SDL_SCANCODE_1 = 30,
     82    SDL_SCANCODE_2 = 31,
     83    SDL_SCANCODE_3 = 32,
     84    SDL_SCANCODE_4 = 33,
     85    SDL_SCANCODE_5 = 34,
     86    SDL_SCANCODE_6 = 35,
     87    SDL_SCANCODE_7 = 36,
     88    SDL_SCANCODE_8 = 37,
     89    SDL_SCANCODE_9 = 38,
     90    SDL_SCANCODE_0 = 39,
     91
     92    SDL_SCANCODE_RETURN = 40,
     93    SDL_SCANCODE_ESCAPE = 41,
     94    SDL_SCANCODE_BACKSPACE = 42,
     95    SDL_SCANCODE_TAB = 43,
     96    SDL_SCANCODE_SPACE = 44,
     97
     98    SDL_SCANCODE_MINUS = 45,
     99    SDL_SCANCODE_EQUALS = 46,
    100    SDL_SCANCODE_LEFTBRACKET = 47,
    101    SDL_SCANCODE_RIGHTBRACKET = 48,
    102    SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return
    103                                  *   key on ISO keyboards and at the right end
    104                                  *   of the QWERTY row on ANSI keyboards.
    105                                  *   Produces REVERSE SOLIDUS (backslash) and
    106                                  *   VERTICAL LINE in a US layout, REVERSE
    107                                  *   SOLIDUS and VERTICAL LINE in a UK Mac
    108                                  *   layout, NUMBER SIGN and TILDE in a UK
    109                                  *   Windows layout, DOLLAR SIGN and POUND SIGN
    110                                  *   in a Swiss German layout, NUMBER SIGN and
    111                                  *   APOSTROPHE in a German layout, GRAVE
    112                                  *   ACCENT and POUND SIGN in a French Mac
    113                                  *   layout, and ASTERISK and MICRO SIGN in a
    114                                  *   French Windows layout.
    115                                  */
    116    SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code
    117                                  *   instead of 49 for the same key, but all
    118                                  *   OSes I've seen treat the two codes
    119                                  *   identically. So, as an implementor, unless
    120                                  *   your keyboard generates both of those
    121                                  *   codes and your OS treats them differently,
    122                                  *   you should generate SDL_SCANCODE_BACKSLASH
    123                                  *   instead of this code. As a user, you
    124                                  *   should not rely on this code because SDL
    125                                  *   will never generate it with most (all?)
    126                                  *   keyboards.
    127                                  */
    128    SDL_SCANCODE_SEMICOLON = 51,
    129    SDL_SCANCODE_APOSTROPHE = 52,
    130    SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI
    131                              *   and ISO keyboards). Produces GRAVE ACCENT and
    132                              *   TILDE in a US Windows layout and in US and UK
    133                              *   Mac layouts on ANSI keyboards, GRAVE ACCENT
    134                              *   and NOT SIGN in a UK Windows layout, SECTION
    135                              *   SIGN and PLUS-MINUS SIGN in US and UK Mac
    136                              *   layouts on ISO keyboards, SECTION SIGN and
    137                              *   DEGREE SIGN in a Swiss German layout (Mac:
    138                              *   only on ISO keyboards), CIRCUMFLEX ACCENT and
    139                              *   DEGREE SIGN in a German layout (Mac: only on
    140                              *   ISO keyboards), SUPERSCRIPT TWO and TILDE in a
    141                              *   French Windows layout, COMMERCIAL AT and
    142                              *   NUMBER SIGN in a French Mac layout on ISO
    143                              *   keyboards, and LESS-THAN SIGN and GREATER-THAN
    144                              *   SIGN in a Swiss German, German, or French Mac
    145                              *   layout on ANSI keyboards.
    146                              */
    147    SDL_SCANCODE_COMMA = 54,
    148    SDL_SCANCODE_PERIOD = 55,
    149    SDL_SCANCODE_SLASH = 56,
    150
    151    SDL_SCANCODE_CAPSLOCK = 57,
    152
    153    SDL_SCANCODE_F1 = 58,
    154    SDL_SCANCODE_F2 = 59,
    155    SDL_SCANCODE_F3 = 60,
    156    SDL_SCANCODE_F4 = 61,
    157    SDL_SCANCODE_F5 = 62,
    158    SDL_SCANCODE_F6 = 63,
    159    SDL_SCANCODE_F7 = 64,
    160    SDL_SCANCODE_F8 = 65,
    161    SDL_SCANCODE_F9 = 66,
    162    SDL_SCANCODE_F10 = 67,
    163    SDL_SCANCODE_F11 = 68,
    164    SDL_SCANCODE_F12 = 69,
    165
    166    SDL_SCANCODE_PRINTSCREEN = 70,
    167    SDL_SCANCODE_SCROLLLOCK = 71,
    168    SDL_SCANCODE_PAUSE = 72,
    169    SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but
    170                                   does send code 73, not 117) */
    171    SDL_SCANCODE_HOME = 74,
    172    SDL_SCANCODE_PAGEUP = 75,
    173    SDL_SCANCODE_DELETE = 76,
    174    SDL_SCANCODE_END = 77,
    175    SDL_SCANCODE_PAGEDOWN = 78,
    176    SDL_SCANCODE_RIGHT = 79,
    177    SDL_SCANCODE_LEFT = 80,
    178    SDL_SCANCODE_DOWN = 81,
    179    SDL_SCANCODE_UP = 82,
    180
    181    SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards
    182                                     */
    183    SDL_SCANCODE_KP_DIVIDE = 84,
    184    SDL_SCANCODE_KP_MULTIPLY = 85,
    185    SDL_SCANCODE_KP_MINUS = 86,
    186    SDL_SCANCODE_KP_PLUS = 87,
    187    SDL_SCANCODE_KP_ENTER = 88,
    188    SDL_SCANCODE_KP_1 = 89,
    189    SDL_SCANCODE_KP_2 = 90,
    190    SDL_SCANCODE_KP_3 = 91,
    191    SDL_SCANCODE_KP_4 = 92,
    192    SDL_SCANCODE_KP_5 = 93,
    193    SDL_SCANCODE_KP_6 = 94,
    194    SDL_SCANCODE_KP_7 = 95,
    195    SDL_SCANCODE_KP_8 = 96,
    196    SDL_SCANCODE_KP_9 = 97,
    197    SDL_SCANCODE_KP_0 = 98,
    198    SDL_SCANCODE_KP_PERIOD = 99,
    199
    200    SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO
    201                                        *   keyboards have over ANSI ones,
    202                                        *   located between left shift and Y.
    203                                        *   Produces GRAVE ACCENT and TILDE in a
    204                                        *   US or UK Mac layout, REVERSE SOLIDUS
    205                                        *   (backslash) and VERTICAL LINE in a
    206                                        *   US or UK Windows layout, and
    207                                        *   LESS-THAN SIGN and GREATER-THAN SIGN
    208                                        *   in a Swiss German, German, or French
    209                                        *   layout. */
    210    SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */
    211    SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag,
    212                               *   not a physical key - but some Mac keyboards
    213                               *   do have a power key. */
    214    SDL_SCANCODE_KP_EQUALS = 103,
    215    SDL_SCANCODE_F13 = 104,
    216    SDL_SCANCODE_F14 = 105,
    217    SDL_SCANCODE_F15 = 106,
    218    SDL_SCANCODE_F16 = 107,
    219    SDL_SCANCODE_F17 = 108,
    220    SDL_SCANCODE_F18 = 109,
    221    SDL_SCANCODE_F19 = 110,
    222    SDL_SCANCODE_F20 = 111,
    223    SDL_SCANCODE_F21 = 112,
    224    SDL_SCANCODE_F22 = 113,
    225    SDL_SCANCODE_F23 = 114,
    226    SDL_SCANCODE_F24 = 115,
    227    SDL_SCANCODE_EXECUTE = 116,
    228    SDL_SCANCODE_HELP = 117,
    229    SDL_SCANCODE_MENU = 118,
    230    SDL_SCANCODE_SELECT = 119,
    231    SDL_SCANCODE_STOP = 120,
    232    SDL_SCANCODE_AGAIN = 121,   /**< redo */
    233    SDL_SCANCODE_UNDO = 122,
    234    SDL_SCANCODE_CUT = 123,
    235    SDL_SCANCODE_COPY = 124,
    236    SDL_SCANCODE_PASTE = 125,
    237    SDL_SCANCODE_FIND = 126,
    238    SDL_SCANCODE_MUTE = 127,
    239    SDL_SCANCODE_VOLUMEUP = 128,
    240    SDL_SCANCODE_VOLUMEDOWN = 129,
    241/* not sure whether there's a reason to enable these */
    242/*     SDL_SCANCODE_LOCKINGCAPSLOCK = 130,  */
    243/*     SDL_SCANCODE_LOCKINGNUMLOCK = 131, */
    244/*     SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */
    245    SDL_SCANCODE_KP_COMMA = 133,
    246    SDL_SCANCODE_KP_EQUALSAS400 = 134,
    247
    248    SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see
    249                                            footnotes in USB doc */
    250    SDL_SCANCODE_INTERNATIONAL2 = 136,
    251    SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */
    252    SDL_SCANCODE_INTERNATIONAL4 = 138,
    253    SDL_SCANCODE_INTERNATIONAL5 = 139,
    254    SDL_SCANCODE_INTERNATIONAL6 = 140,
    255    SDL_SCANCODE_INTERNATIONAL7 = 141,
    256    SDL_SCANCODE_INTERNATIONAL8 = 142,
    257    SDL_SCANCODE_INTERNATIONAL9 = 143,
    258    SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */
    259    SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */
    260    SDL_SCANCODE_LANG3 = 146, /**< Katakana */
    261    SDL_SCANCODE_LANG4 = 147, /**< Hiragana */
    262    SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */
    263    SDL_SCANCODE_LANG6 = 149, /**< reserved */
    264    SDL_SCANCODE_LANG7 = 150, /**< reserved */
    265    SDL_SCANCODE_LANG8 = 151, /**< reserved */
    266    SDL_SCANCODE_LANG9 = 152, /**< reserved */
    267
    268    SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */
    269    SDL_SCANCODE_SYSREQ = 154,
    270    SDL_SCANCODE_CANCEL = 155,
    271    SDL_SCANCODE_CLEAR = 156,
    272    SDL_SCANCODE_PRIOR = 157,
    273    SDL_SCANCODE_RETURN2 = 158,
    274    SDL_SCANCODE_SEPARATOR = 159,
    275    SDL_SCANCODE_OUT = 160,
    276    SDL_SCANCODE_OPER = 161,
    277    SDL_SCANCODE_CLEARAGAIN = 162,
    278    SDL_SCANCODE_CRSEL = 163,
    279    SDL_SCANCODE_EXSEL = 164,
    280
    281    SDL_SCANCODE_KP_00 = 176,
    282    SDL_SCANCODE_KP_000 = 177,
    283    SDL_SCANCODE_THOUSANDSSEPARATOR = 178,
    284    SDL_SCANCODE_DECIMALSEPARATOR = 179,
    285    SDL_SCANCODE_CURRENCYUNIT = 180,
    286    SDL_SCANCODE_CURRENCYSUBUNIT = 181,
    287    SDL_SCANCODE_KP_LEFTPAREN = 182,
    288    SDL_SCANCODE_KP_RIGHTPAREN = 183,
    289    SDL_SCANCODE_KP_LEFTBRACE = 184,
    290    SDL_SCANCODE_KP_RIGHTBRACE = 185,
    291    SDL_SCANCODE_KP_TAB = 186,
    292    SDL_SCANCODE_KP_BACKSPACE = 187,
    293    SDL_SCANCODE_KP_A = 188,
    294    SDL_SCANCODE_KP_B = 189,
    295    SDL_SCANCODE_KP_C = 190,
    296    SDL_SCANCODE_KP_D = 191,
    297    SDL_SCANCODE_KP_E = 192,
    298    SDL_SCANCODE_KP_F = 193,
    299    SDL_SCANCODE_KP_XOR = 194,
    300    SDL_SCANCODE_KP_POWER = 195,
    301    SDL_SCANCODE_KP_PERCENT = 196,
    302    SDL_SCANCODE_KP_LESS = 197,
    303    SDL_SCANCODE_KP_GREATER = 198,
    304    SDL_SCANCODE_KP_AMPERSAND = 199,
    305    SDL_SCANCODE_KP_DBLAMPERSAND = 200,
    306    SDL_SCANCODE_KP_VERTICALBAR = 201,
    307    SDL_SCANCODE_KP_DBLVERTICALBAR = 202,
    308    SDL_SCANCODE_KP_COLON = 203,
    309    SDL_SCANCODE_KP_HASH = 204,
    310    SDL_SCANCODE_KP_SPACE = 205,
    311    SDL_SCANCODE_KP_AT = 206,
    312    SDL_SCANCODE_KP_EXCLAM = 207,
    313    SDL_SCANCODE_KP_MEMSTORE = 208,
    314    SDL_SCANCODE_KP_MEMRECALL = 209,
    315    SDL_SCANCODE_KP_MEMCLEAR = 210,
    316    SDL_SCANCODE_KP_MEMADD = 211,
    317    SDL_SCANCODE_KP_MEMSUBTRACT = 212,
    318    SDL_SCANCODE_KP_MEMMULTIPLY = 213,
    319    SDL_SCANCODE_KP_MEMDIVIDE = 214,
    320    SDL_SCANCODE_KP_PLUSMINUS = 215,
    321    SDL_SCANCODE_KP_CLEAR = 216,
    322    SDL_SCANCODE_KP_CLEARENTRY = 217,
    323    SDL_SCANCODE_KP_BINARY = 218,
    324    SDL_SCANCODE_KP_OCTAL = 219,
    325    SDL_SCANCODE_KP_DECIMAL = 220,
    326    SDL_SCANCODE_KP_HEXADECIMAL = 221,
    327
    328    SDL_SCANCODE_LCTRL = 224,
    329    SDL_SCANCODE_LSHIFT = 225,
    330    SDL_SCANCODE_LALT = 226, /**< alt, option */
    331    SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */
    332    SDL_SCANCODE_RCTRL = 228,
    333    SDL_SCANCODE_RSHIFT = 229,
    334    SDL_SCANCODE_RALT = 230, /**< alt gr, option */
    335    SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */
    336
    337    SDL_SCANCODE_MODE = 257,    /**< I'm not sure if this is really not covered
    338                                 *   by any of the above, but since there's a
    339                                 *   special KMOD_MODE for it I'm adding it here
    340                                 */
    341
    342    /* @} *//* Usage page 0x07 */
    343
    344    /**
    345     *  \name Usage page 0x0C
    346     *
    347     *  These values are mapped from usage page 0x0C (USB consumer page).
    348     */
    349    /* @{ */
    350
    351    SDL_SCANCODE_AUDIONEXT = 258,
    352    SDL_SCANCODE_AUDIOPREV = 259,
    353    SDL_SCANCODE_AUDIOSTOP = 260,
    354    SDL_SCANCODE_AUDIOPLAY = 261,
    355    SDL_SCANCODE_AUDIOMUTE = 262,
    356    SDL_SCANCODE_MEDIASELECT = 263,
    357    SDL_SCANCODE_WWW = 264,
    358    SDL_SCANCODE_MAIL = 265,
    359    SDL_SCANCODE_CALCULATOR = 266,
    360    SDL_SCANCODE_COMPUTER = 267,
    361    SDL_SCANCODE_AC_SEARCH = 268,
    362    SDL_SCANCODE_AC_HOME = 269,
    363    SDL_SCANCODE_AC_BACK = 270,
    364    SDL_SCANCODE_AC_FORWARD = 271,
    365    SDL_SCANCODE_AC_STOP = 272,
    366    SDL_SCANCODE_AC_REFRESH = 273,
    367    SDL_SCANCODE_AC_BOOKMARKS = 274,
    368
    369    /* @} *//* Usage page 0x0C */
    370
    371    /**
    372     *  \name Walther keys
    373     *
    374     *  These are values that Christian Walther added (for mac keyboard?).
    375     */
    376    /* @{ */
    377
    378    SDL_SCANCODE_BRIGHTNESSDOWN = 275,
    379    SDL_SCANCODE_BRIGHTNESSUP = 276,
    380    SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display
    381                                           switch, video mode switch */
    382    SDL_SCANCODE_KBDILLUMTOGGLE = 278,
    383    SDL_SCANCODE_KBDILLUMDOWN = 279,
    384    SDL_SCANCODE_KBDILLUMUP = 280,
    385    SDL_SCANCODE_EJECT = 281,
    386    SDL_SCANCODE_SLEEP = 282,
    387
    388    SDL_SCANCODE_APP1 = 283,
    389    SDL_SCANCODE_APP2 = 284,
    390
    391    /* @} *//* Walther keys */
    392
    393    /**
    394     *  \name Usage page 0x0C (additional media keys)
    395     *
    396     *  These values are mapped from usage page 0x0C (USB consumer page).
    397     */
    398    /* @{ */
    399
    400    SDL_SCANCODE_AUDIOREWIND = 285,
    401    SDL_SCANCODE_AUDIOFASTFORWARD = 286,
    402
    403    /* @} *//* Usage page 0x0C (additional media keys) */
    404
    405    /* Add any other keys here. */
    406
    407    SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes
    408                                 for array bounds */
    409} SDL_Scancode;
    410
    411#endif /* SDL_scancode_h_ */
    412
    413/* vi: set ts=4 sw=4 expandtab: */