sdlscancode.inc 18 KB

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