SDL
2.0
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
SDL_scancode.h
Go to the documentation of this file.
1
/*
2
Simple DirectMedia Layer
3
Copyright (C) 1997-2018 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
* http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
42
*/
43
typedef
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: */
include
SDL_scancode.h
Generated on Sun Jun 26 2022 23:07:08 for SDL by
1.8.1.2