My Project
Main Page
Related Pages
Classes
Files
File List
All
Classes
Functions
Variables
Pages
HIDKeyboardTypes.h
1
/* Copyright (c) 2015 mbed.org, MIT License
2
*
3
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
4
* and associated documentation files (the "Software"), to deal in the Software without
5
* restriction, including without limitation the rights to use, copy, modify, merge, publish,
6
* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
7
* Software is furnished to do so, subject to the following conditions:
8
*
9
* The above copyright notice and this permission notice shall be included in all copies or
10
* substantial portions of the Software.
11
*
12
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
13
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
14
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
15
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17
*
18
* Note: this file was pulled from different parts of the USBHID library, in mbed SDK
19
*/
20
21
#ifndef KEYBOARD_DEFS_H
22
#define KEYBOARD_DEFS_H
23
24
#define REPORT_ID_KEYBOARD 1
25
#define REPORT_ID_VOLUME 3
26
27
/* Modifiers */
28
enum
MODIFIER_KEY {
29
KEY_CTRL = 1,
30
KEY_SHIFT = 2,
31
KEY_ALT = 4,
32
};
33
34
35
enum
MEDIA_KEY {
36
KEY_NEXT_TRACK,
37
KEY_PREVIOUS_TRACK,
38
KEY_STOP,
39
KEY_PLAY_PAUSE,
40
KEY_MUTE,
41
KEY_VOLUME_UP,
42
KEY_VOLUME_DOWN,
43
};
44
45
enum
FUNCTION_KEY {
46
KEY_F1 = 128,
/* F1 key */
47
KEY_F2,
/* F2 key */
48
KEY_F3,
/* F3 key */
49
KEY_F4,
/* F4 key */
50
KEY_F5,
/* F5 key */
51
KEY_F6,
/* F6 key */
52
KEY_F7,
/* F7 key */
53
KEY_F8,
/* F8 key */
54
KEY_F9,
/* F9 key */
55
KEY_F10,
/* F10 key */
56
KEY_F11,
/* F11 key */
57
KEY_F12,
/* F12 key */
58
59
KEY_PRINT_SCREEN,
/* Print Screen key */
60
KEY_SCROLL_LOCK,
/* Scroll lock */
61
KEY_CAPS_LOCK,
/* caps lock */
62
KEY_NUM_LOCK,
/* num lock */
63
KEY_INSERT,
/* Insert key */
64
KEY_HOME,
/* Home key */
65
KEY_PAGE_UP,
/* Page Up key */
66
KEY_PAGE_DOWN,
/* Page Down key */
67
68
RIGHT_ARROW,
/* Right arrow */
69
LEFT_ARROW,
/* Left arrow */
70
DOWN_ARROW,
/* Down arrow */
71
UP_ARROW,
/* Up arrow */
72
};
73
74
typedef
struct
{
75
unsigned
char
usage;
76
unsigned
char
modifier;
77
}
KEYMAP
;
78
79
#ifdef US_KEYBOARD
80
/* US keyboard (as HID standard) */
81
#define KEYMAP_SIZE (152)
82
const
KEYMAP
keymap[KEYMAP_SIZE] = {
83
{0, 0},
/* NUL */
84
{0, 0},
/* SOH */
85
{0, 0},
/* STX */
86
{0, 0},
/* ETX */
87
{0, 0},
/* EOT */
88
{0, 0},
/* ENQ */
89
{0, 0},
/* ACK */
90
{0, 0},
/* BEL */
91
{0x2a, 0},
/* BS */
/* Keyboard Delete (Backspace) */
92
{0x2b, 0},
/* TAB */
/* Keyboard Tab */
93
{0x28, 0},
/* LF */
/* Keyboard Return (Enter) */
94
{0, 0},
/* VT */
95
{0, 0},
/* FF */
96
{0, 0},
/* CR */
97
{0, 0},
/* SO */
98
{0, 0},
/* SI */
99
{0, 0},
/* DEL */
100
{0, 0},
/* DC1 */
101
{0, 0},
/* DC2 */
102
{0, 0},
/* DC3 */
103
{0, 0},
/* DC4 */
104
{0, 0},
/* NAK */
105
{0, 0},
/* SYN */
106
{0, 0},
/* ETB */
107
{0, 0},
/* CAN */
108
{0, 0},
/* EM */
109
{0, 0},
/* SUB */
110
{0, 0},
/* ESC */
111
{0, 0},
/* FS */
112
{0, 0},
/* GS */
113
{0, 0},
/* RS */
114
{0, 0},
/* US */
115
{0x2c, 0},
/* */
116
{0x1e, KEY_SHIFT},
/* ! */
117
{0x34, KEY_SHIFT},
/* " */
118
{0x20, KEY_SHIFT},
/* # */
119
{0x21, KEY_SHIFT},
/* $ */
120
{0x22, KEY_SHIFT},
/* % */
121
{0x24, KEY_SHIFT},
/* & */
122
{0x34, 0},
/* ' */
123
{0x26, KEY_SHIFT},
/* ( */
124
{0x27, KEY_SHIFT},
/* ) */
125
{0x25, KEY_SHIFT},
/* * */
126
{0x2e, KEY_SHIFT},
/* + */
127
{0x36, 0},
/* , */
128
{0x2d, 0},
/* - */
129
{0x37, 0},
/* . */
130
{0x38, 0},
/* / */
131
{0x27, 0},
/* 0 */
132
{0x1e, 0},
/* 1 */
133
{0x1f, 0},
/* 2 */
134
{0x20, 0},
/* 3 */
135
{0x21, 0},
/* 4 */
136
{0x22, 0},
/* 5 */
137
{0x23, 0},
/* 6 */
138
{0x24, 0},
/* 7 */
139
{0x25, 0},
/* 8 */
140
{0x26, 0},
/* 9 */
141
{0x33, KEY_SHIFT},
/* : */
142
{0x33, 0},
/* ; */
143
{0x36, KEY_SHIFT},
/* < */
144
{0x2e, 0},
/* = */
145
{0x37, KEY_SHIFT},
/* > */
146
{0x38, KEY_SHIFT},
/* ? */
147
{0x1f, KEY_SHIFT},
/* @ */
148
{0x04, KEY_SHIFT},
/* A */
149
{0x05, KEY_SHIFT},
/* B */
150
{0x06, KEY_SHIFT},
/* C */
151
{0x07, KEY_SHIFT},
/* D */
152
{0x08, KEY_SHIFT},
/* E */
153
{0x09, KEY_SHIFT},
/* F */
154
{0x0a, KEY_SHIFT},
/* G */
155
{0x0b, KEY_SHIFT},
/* H */
156
{0x0c, KEY_SHIFT},
/* I */
157
{0x0d, KEY_SHIFT},
/* J */
158
{0x0e, KEY_SHIFT},
/* K */
159
{0x0f, KEY_SHIFT},
/* L */
160
{0x10, KEY_SHIFT},
/* M */
161
{0x11, KEY_SHIFT},
/* N */
162
{0x12, KEY_SHIFT},
/* O */
163
{0x13, KEY_SHIFT},
/* P */
164
{0x14, KEY_SHIFT},
/* Q */
165
{0x15, KEY_SHIFT},
/* R */
166
{0x16, KEY_SHIFT},
/* S */
167
{0x17, KEY_SHIFT},
/* T */
168
{0x18, KEY_SHIFT},
/* U */
169
{0x19, KEY_SHIFT},
/* V */
170
{0x1a, KEY_SHIFT},
/* W */
171
{0x1b, KEY_SHIFT},
/* X */
172
{0x1c, KEY_SHIFT},
/* Y */
173
{0x1d, KEY_SHIFT},
/* Z */
174
{0x2f, 0},
/* [ */
175
{0x31, 0},
/* \ */
176
{0x30, 0},
/* ] */
177
{0x23, KEY_SHIFT},
/* ^ */
178
{0x2d, KEY_SHIFT},
/* _ */
179
{0x35, 0},
/* ` */
180
{0x04, 0},
/* a */
181
{0x05, 0},
/* b */
182
{0x06, 0},
/* c */
183
{0x07, 0},
/* d */
184
{0x08, 0},
/* e */
185
{0x09, 0},
/* f */
186
{0x0a, 0},
/* g */
187
{0x0b, 0},
/* h */
188
{0x0c, 0},
/* i */
189
{0x0d, 0},
/* j */
190
{0x0e, 0},
/* k */
191
{0x0f, 0},
/* l */
192
{0x10, 0},
/* m */
193
{0x11, 0},
/* n */
194
{0x12, 0},
/* o */
195
{0x13, 0},
/* p */
196
{0x14, 0},
/* q */
197
{0x15, 0},
/* r */
198
{0x16, 0},
/* s */
199
{0x17, 0},
/* t */
200
{0x18, 0},
/* u */
201
{0x19, 0},
/* v */
202
{0x1a, 0},
/* w */
203
{0x1b, 0},
/* x */
204
{0x1c, 0},
/* y */
205
{0x1d, 0},
/* z */
206
{0x2f, KEY_SHIFT},
/* { */
207
{0x31, KEY_SHIFT},
/* | */
208
{0x30, KEY_SHIFT},
/* } */
209
{0x35, KEY_SHIFT},
/* ~ */
210
{0,0},
/* DEL */
211
212
{0x3a, 0},
/* F1 */
213
{0x3b, 0},
/* F2 */
214
{0x3c, 0},
/* F3 */
215
{0x3d, 0},
/* F4 */
216
{0x3e, 0},
/* F5 */
217
{0x3f, 0},
/* F6 */
218
{0x40, 0},
/* F7 */
219
{0x41, 0},
/* F8 */
220
{0x42, 0},
/* F9 */
221
{0x43, 0},
/* F10 */
222
{0x44, 0},
/* F11 */
223
{0x45, 0},
/* F12 */
224
225
{0x46, 0},
/* PRINT_SCREEN */
226
{0x47, 0},
/* SCROLL_LOCK */
227
{0x39, 0},
/* CAPS_LOCK */
228
{0x53, 0},
/* NUM_LOCK */
229
{0x49, 0},
/* INSERT */
230
{0x4a, 0},
/* HOME */
231
{0x4b, 0},
/* PAGE_UP */
232
{0x4e, 0},
/* PAGE_DOWN */
233
234
{0x4f, 0},
/* RIGHT_ARROW */
235
{0x50, 0},
/* LEFT_ARROW */
236
{0x51, 0},
/* DOWN_ARROW */
237
{0x52, 0},
/* UP_ARROW */
238
};
239
240
#else
241
/* UK keyboard */
242
#define KEYMAP_SIZE (152)
243
const
KEYMAP
keymap[KEYMAP_SIZE] = {
244
{0, 0},
/* NUL */
245
{0, 0},
/* SOH */
246
{0, 0},
/* STX */
247
{0, 0},
/* ETX */
248
{0, 0},
/* EOT */
249
{0, 0},
/* ENQ */
250
{0, 0},
/* ACK */
251
{0, 0},
/* BEL */
252
{0x2a, 0},
/* BS */
/* Keyboard Delete (Backspace) */
253
{0x2b, 0},
/* TAB */
/* Keyboard Tab */
254
{0x28, 0},
/* LF */
/* Keyboard Return (Enter) */
255
{0, 0},
/* VT */
256
{0, 0},
/* FF */
257
{0, 0},
/* CR */
258
{0, 0},
/* SO */
259
{0, 0},
/* SI */
260
{0, 0},
/* DEL */
261
{0, 0},
/* DC1 */
262
{0, 0},
/* DC2 */
263
{0, 0},
/* DC3 */
264
{0, 0},
/* DC4 */
265
{0, 0},
/* NAK */
266
{0, 0},
/* SYN */
267
{0, 0},
/* ETB */
268
{0, 0},
/* CAN */
269
{0, 0},
/* EM */
270
{0, 0},
/* SUB */
271
{0, 0},
/* ESC */
272
{0, 0},
/* FS */
273
{0, 0},
/* GS */
274
{0, 0},
/* RS */
275
{0, 0},
/* US */
276
{0x2c, 0},
/* */
277
{0x1e, KEY_SHIFT},
/* ! */
278
{0x1f, KEY_SHIFT},
/* " */
279
{0x32, 0},
/* # */
280
{0x21, KEY_SHIFT},
/* $ */
281
{0x22, KEY_SHIFT},
/* % */
282
{0x24, KEY_SHIFT},
/* & */
283
{0x34, 0},
/* ' */
284
{0x26, KEY_SHIFT},
/* ( */
285
{0x27, KEY_SHIFT},
/* ) */
286
{0x25, KEY_SHIFT},
/* * */
287
{0x2e, KEY_SHIFT},
/* + */
288
{0x36, 0},
/* , */
289
{0x2d, 0},
/* - */
290
{0x37, 0},
/* . */
291
{0x38, 0},
/* / */
292
{0x27, 0},
/* 0 */
293
{0x1e, 0},
/* 1 */
294
{0x1f, 0},
/* 2 */
295
{0x20, 0},
/* 3 */
296
{0x21, 0},
/* 4 */
297
{0x22, 0},
/* 5 */
298
{0x23, 0},
/* 6 */
299
{0x24, 0},
/* 7 */
300
{0x25, 0},
/* 8 */
301
{0x26, 0},
/* 9 */
302
{0x33, KEY_SHIFT},
/* : */
303
{0x33, 0},
/* ; */
304
{0x36, KEY_SHIFT},
/* < */
305
{0x2e, 0},
/* = */
306
{0x37, KEY_SHIFT},
/* > */
307
{0x38, KEY_SHIFT},
/* ? */
308
{0x34, KEY_SHIFT},
/* @ */
309
{0x04, KEY_SHIFT},
/* A */
310
{0x05, KEY_SHIFT},
/* B */
311
{0x06, KEY_SHIFT},
/* C */
312
{0x07, KEY_SHIFT},
/* D */
313
{0x08, KEY_SHIFT},
/* E */
314
{0x09, KEY_SHIFT},
/* F */
315
{0x0a, KEY_SHIFT},
/* G */
316
{0x0b, KEY_SHIFT},
/* H */
317
{0x0c, KEY_SHIFT},
/* I */
318
{0x0d, KEY_SHIFT},
/* J */
319
{0x0e, KEY_SHIFT},
/* K */
320
{0x0f, KEY_SHIFT},
/* L */
321
{0x10, KEY_SHIFT},
/* M */
322
{0x11, KEY_SHIFT},
/* N */
323
{0x12, KEY_SHIFT},
/* O */
324
{0x13, KEY_SHIFT},
/* P */
325
{0x14, KEY_SHIFT},
/* Q */
326
{0x15, KEY_SHIFT},
/* R */
327
{0x16, KEY_SHIFT},
/* S */
328
{0x17, KEY_SHIFT},
/* T */
329
{0x18, KEY_SHIFT},
/* U */
330
{0x19, KEY_SHIFT},
/* V */
331
{0x1a, KEY_SHIFT},
/* W */
332
{0x1b, KEY_SHIFT},
/* X */
333
{0x1c, KEY_SHIFT},
/* Y */
334
{0x1d, KEY_SHIFT},
/* Z */
335
{0x2f, 0},
/* [ */
336
{0x64, 0},
/* \ */
337
{0x30, 0},
/* ] */
338
{0x23, KEY_SHIFT},
/* ^ */
339
{0x2d, KEY_SHIFT},
/* _ */
340
{0x35, 0},
/* ` */
341
{0x04, 0},
/* a */
342
{0x05, 0},
/* b */
343
{0x06, 0},
/* c */
344
{0x07, 0},
/* d */
345
{0x08, 0},
/* e */
346
{0x09, 0},
/* f */
347
{0x0a, 0},
/* g */
348
{0x0b, 0},
/* h */
349
{0x0c, 0},
/* i */
350
{0x0d, 0},
/* j */
351
{0x0e, 0},
/* k */
352
{0x0f, 0},
/* l */
353
{0x10, 0},
/* m */
354
{0x11, 0},
/* n */
355
{0x12, 0},
/* o */
356
{0x13, 0},
/* p */
357
{0x14, 0},
/* q */
358
{0x15, 0},
/* r */
359
{0x16, 0},
/* s */
360
{0x17, 0},
/* t */
361
{0x18, 0},
/* u */
362
{0x19, 0},
/* v */
363
{0x1a, 0},
/* w */
364
{0x1b, 0},
/* x */
365
{0x1c, 0},
/* y */
366
{0x1d, 0},
/* z */
367
{0x2f, KEY_SHIFT},
/* { */
368
{0x64, KEY_SHIFT},
/* | */
369
{0x30, KEY_SHIFT},
/* } */
370
{0x32, KEY_SHIFT},
/* ~ */
371
{0,0},
/* DEL */
372
373
{0x3a, 0},
/* F1 */
374
{0x3b, 0},
/* F2 */
375
{0x3c, 0},
/* F3 */
376
{0x3d, 0},
/* F4 */
377
{0x3e, 0},
/* F5 */
378
{0x3f, 0},
/* F6 */
379
{0x40, 0},
/* F7 */
380
{0x41, 0},
/* F8 */
381
{0x42, 0},
/* F9 */
382
{0x43, 0},
/* F10 */
383
{0x44, 0},
/* F11 */
384
{0x45, 0},
/* F12 */
385
386
{0x46, 0},
/* PRINT_SCREEN */
387
{0x47, 0},
/* SCROLL_LOCK */
388
{0x39, 0},
/* CAPS_LOCK */
389
{0x53, 0},
/* NUM_LOCK */
390
{0x49, 0},
/* INSERT */
391
{0x4a, 0},
/* HOME */
392
{0x4b, 0},
/* PAGE_UP */
393
{0x4e, 0},
/* PAGE_DOWN */
394
395
{0x4f, 0},
/* RIGHT_ARROW */
396
{0x50, 0},
/* LEFT_ARROW */
397
{0x51, 0},
/* DOWN_ARROW */
398
{0x52, 0},
/* UP_ARROW */
399
};
400
#endif
401
402
#endif
KEYMAP
Definition:
HIDKeyboardTypes.h:74
Generated on Tue Dec 25 2018 12:36:33 for My Project by
1.8.6