Kiibohd Controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

usb_keys.h 9.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. /* Copyright (C) 2011 by Jacob Alexander
  2. *
  3. * Permission is hereby granted, free of charge, to any person obtaining a copy
  4. * of this software and associated documentation files (the "Software"), to deal
  5. * in the Software without restriction, including without limitation the rights
  6. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. * copies of the Software, and to permit persons to whom the Software is
  8. * furnished to do so, subject to the following conditions:
  9. *
  10. * The above copyright notice and this permission notice shall be included in
  11. * all copies or substantial portions of the Software.
  12. *
  13. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  19. * THE SOFTWARE.
  20. */
  21. #ifndef __usb_keys_h
  22. #define __usb_keys_h
  23. // ----- Defines -----
  24. // List of Modifiers
  25. #define KEY_CTRL 0x01
  26. #define KEY_SHIFT 0x02
  27. #define KEY_ALT 0x04
  28. #define KEY_GUI 0x08
  29. #define KEY_LEFT_CTRL 0x01
  30. #define KEY_LEFT_SHIFT 0x02
  31. #define KEY_LEFT_ALT 0x04
  32. #define KEY_LEFT_GUI 0x08
  33. #define KEY_RIGHT_CTRL 0x10
  34. #define KEY_RIGHT_SHIFT 0x20
  35. #define KEY_RIGHT_ALT 0x40
  36. #define KEY_RIGHT_GUI 0x80
  37. // List of Keycodes
  38. #define KEY_NOEVENT 0 // Event, not a physical key
  39. #define KEY_ERRORROLLOVER 1 // Event, not a physical key
  40. #define KEY_POSTFAIL 2 // Event, not a physical key
  41. #define KEY_ERRORUNDEFINED 3 // Event, not a physical key
  42. #define KEY_A 4
  43. #define KEY_B 5
  44. #define KEY_C 6
  45. #define KEY_D 7
  46. #define KEY_E 8
  47. #define KEY_F 9
  48. #define KEY_G 10
  49. #define KEY_H 11
  50. #define KEY_I 12
  51. #define KEY_J 13
  52. #define KEY_K 14
  53. #define KEY_L 15
  54. #define KEY_M 16
  55. #define KEY_N 17
  56. #define KEY_O 18
  57. #define KEY_P 19
  58. #define KEY_Q 20
  59. #define KEY_R 21
  60. #define KEY_S 22
  61. #define KEY_T 23
  62. #define KEY_U 24
  63. #define KEY_V 25
  64. #define KEY_W 26
  65. #define KEY_X 27
  66. #define KEY_Y 28
  67. #define KEY_Z 29
  68. #define KEY_1 30
  69. #define KEY_2 31
  70. #define KEY_3 32
  71. #define KEY_4 33
  72. #define KEY_5 34
  73. #define KEY_6 35
  74. #define KEY_7 36
  75. #define KEY_8 37
  76. #define KEY_9 38
  77. #define KEY_0 39
  78. #define KEY_ENTER 40
  79. #define KEY_ESC 41
  80. #define KEY_BACKSPACE 42
  81. #define KEY_TAB 43
  82. #define KEY_SPACE 44
  83. #define KEY_MINUS 45
  84. #define KEY_EQUAL 46
  85. #define KEY_LEFT_BRACE 47
  86. #define KEY_RIGHT_BRACE 48
  87. #define KEY_BACKSLASH 49
  88. #define KEY_NUMBER 50
  89. #define KEY_SEMICOLON 51
  90. #define KEY_QUOTE 52
  91. #define KEY_TILDE 53
  92. #define KEY_COMMA 54
  93. #define KEY_PERIOD 55
  94. #define KEY_SLASH 56
  95. #define KEY_CAPS_LOCK 57
  96. #define KEY_F1 58
  97. #define KEY_F2 59
  98. #define KEY_F3 60
  99. #define KEY_F4 61
  100. #define KEY_F5 62
  101. #define KEY_F6 63
  102. #define KEY_F7 64
  103. #define KEY_F8 65
  104. #define KEY_F9 66
  105. #define KEY_F10 67
  106. #define KEY_F11 68
  107. #define KEY_F12 69
  108. #define KEY_PRINTSCREEN 70
  109. #define KEY_SCROLL_LOCK 71
  110. #define KEY_PAUSE 72
  111. #define KEY_INSERT 73
  112. #define KEY_HOME 74
  113. #define KEY_PAGE_UP 75
  114. #define KEY_DELETE 76
  115. #define KEY_END 77
  116. #define KEY_PAGE_DOWN 78
  117. #define KEY_RIGHT 79
  118. #define KEY_LEFT 80
  119. #define KEY_DOWN 81
  120. #define KEY_UP 82
  121. #define KEY_NUM_LOCK 83
  122. #define KEYPAD_SLASH 84
  123. #define KEYPAD_ASTERIX 85
  124. #define KEYPAD_MINUS 86
  125. #define KEYPAD_PLUS 87
  126. #define KEYPAD_ENTER 88
  127. #define KEYPAD_1 89
  128. #define KEYPAD_2 90
  129. #define KEYPAD_3 91
  130. #define KEYPAD_4 92
  131. #define KEYPAD_5 93
  132. #define KEYPAD_6 94
  133. #define KEYPAD_7 95
  134. #define KEYPAD_8 96
  135. #define KEYPAD_9 97
  136. #define KEYPAD_0 98
  137. #define KEYPAD_PERIOD 99
  138. #define KEY_ISO_BACKSLASH 100
  139. #define KEY_APP 101
  140. #define KEYBOARD_ERROR 102 // See spec
  141. #define KEYPAD_EQUAL 103
  142. #define KEY_F13 104
  143. #define KEY_F14 105
  144. #define KEY_F15 106
  145. #define KEY_F16 107
  146. #define KEY_F17 108
  147. #define KEY_F18 109
  148. #define KEY_F19 110
  149. #define KEY_F20 111
  150. #define KEY_F21 112
  151. #define KEY_F22 113
  152. #define KEY_F23 114
  153. #define KEY_F24 115
  154. #define KEY_EXEC 116
  155. #define KEY_HELP 117
  156. #define KEY_MENU 118
  157. #define KEY_SELECT 119
  158. #define KEY_STOP 120
  159. #define KEY_AGAIN 121
  160. #define KEY_UNDO 122
  161. #define KEY_CUT 123
  162. #define KEY_COPY 124
  163. #define KEY_PASTE 125
  164. #define KEY_FIND 126
  165. #define KEY_MUTE 127
  166. #define KEY_VOL_UP 128
  167. #define KEY_VOL_DOWN 129
  168. #define KEY_CAPS_LLOCK 130 // "Locking" Scroll Lock (Old keyboards with Locking Caps Lock)
  169. #define KEY_NUM_LLOCK 131
  170. #define KEY_SCROLL_LLOCK 132
  171. #define KEYPAD_COMMA 133 // Brazillian (See spec)
  172. #define KEYPAD_EQUAL_AS 134 // AS/400 Keyboard (See spec)
  173. #define KEY_INTER1 135 // KANJI1 - Brazillian and Japanese "Ru" and "-"
  174. #define KEY_INTER2 136 // KANJI2 - Japanese Katakana/Hiragana
  175. #define KEY_INTER3 137 // KANJI3 - Japanese Yen
  176. #define KEY_INTER4 138 // KANJI4 - Japanese Henkan
  177. #define KEY_INTER5 139 // KANJI5 - Japanese Muhenkan
  178. #define KEY_INTER6 140 // KANJI6 - PC98 Comma (Ka-m-ma)
  179. #define KEY_INTER7 141 // KANJI7 - Double-Byte/Single-Byte Toggle
  180. #define KEY_INTER8 142 // KANJI8 - Undefined
  181. #define KEY_INTER9 143 // KANJI9 - Undefined
  182. #define KEY_LANG1 144 // Korean Hangul/English Toggle
  183. #define KEY_LANG2 145 // Korean Hanja Conversion - Japanese Eisu
  184. #define KEY_LANG3 146 // Japanese Katakana Key (USB)
  185. #define KEY_LANG4 147 // Japanese Hiragana Key (USB)
  186. #define KEY_LANG5 148 // Japanese Zenkaku/Hankaku Key (USB)
  187. #define KEY_LANG6 149 // Reserved (Application Specific)
  188. #define KEY_LANG7 150 // Reserved (Application Specific)
  189. #define KEY_LANG8 151 // Reserved (Application Specific)
  190. #define KEY_LANG9 152 // Reserved (Application Specific)
  191. #define KEY_ALT_ERASE 153 // Special Erase (See Spec)
  192. #define KEY_SYSREQ_ATT 154 // Modifier Type
  193. #define KEY_CANCEL 155
  194. #define KEY_CLEAR 156
  195. #define KEY_PRIOR 157
  196. #define KEY_RETURN 158
  197. #define KEY_SEPARATOR 159
  198. #define KEY_OUT 160
  199. #define KEY_OPER 161
  200. #define KEY_CLEAR_AGAIN 162
  201. #define KEY_CRSEL_PROPS 163
  202. #define KEY_EXSEL 164
  203. // 165 - 175 Reserved
  204. #define KEYPAD_00 176
  205. #define KEYPAD_000 177
  206. #define KEY_1000_SEP 178
  207. #define KEY_DECIMAL_SEP 179
  208. #define KEY_CURRENCY_MAIN 180
  209. #define KEY_CURRENCY_SUB 181
  210. #define KEYPAD_LPAREN 182
  211. #define KEYPAD_RPAREN 183
  212. #define KEYPAD_LBRACE 184
  213. #define KEYPAD_RBRACE 185
  214. #define KEYPAD_TAB 186
  215. #define KEYPAD_BACKSPACE 187
  216. #define KEYPAD_A 188
  217. #define KEYPAD_B 189
  218. #define KEYPAD_C 190
  219. #define KEYPAD_D 191
  220. #define KEYPAD_E 192
  221. #define KEYPAD_F 193
  222. #define KEYPAD_XOR 194
  223. #define KEYPAD_CHEVRON 195
  224. #define KEYPAD_PERCENT 196
  225. #define KEYPAD_LTHAN 197
  226. #define KEYPAD_GTHAN 198
  227. #define KEYPAD_AND 199
  228. #define KEYPAD_AND_AND 200
  229. #define KEYPAD_OR 201
  230. #define KEYPAD_OR_OR 202
  231. #define KEYPAD_COLON 203
  232. #define KEYPAD_POUND 204
  233. #define KEYPAD_SPACE 205
  234. #define KEYPAD_AT 206
  235. #define KEYPAD_EXCLAIM 207
  236. #define KEYPAD_MEM_STORE 208
  237. #define KEYPAD_MEM_RECALL 209
  238. #define KEYPAD_MEM_CLEAR 210
  239. #define KEYPAD_MEM_ADD 211
  240. #define KEYPAD_MEM_SUB 212
  241. #define KEYPAD_MEM_MULT 213
  242. #define KEYPAD_MEM_DIV 214
  243. #define KEYPAD_PLUS_MINUS 215
  244. #define KEYPAD_CLEAR 216
  245. #define KEYPAD_CLEAR_ENTRY 217
  246. #define KEYPAD_BINARY 218
  247. #define KEYPAD_OCTAL 219
  248. #define KEYPAD_DECIMAL 220
  249. #define KEYPAD_HEX 221
  250. // 222 - 223 Reserved
  251. #define KEYS_LCTRL 224
  252. #define KEYS_LSHIFT 225
  253. #define KEYS_LALT 226
  254. #define KEYS_LGUI 227
  255. #define KEYS_RCTRL 228
  256. #define KEYS_RSHIFT 229
  257. #define KEYS_RALT 230
  258. #define KEYS_RGUI 231
  259. // 232 - 65535 Reserved
  260. #endif