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