tinyusb  0.4
Click here to lend your support to tinyusb donation and make a donation at pledgie.com
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
hid.h
Go to the documentation of this file.
1 /**************************************************************************/
37 /**************************************************************************/
38 
43 #ifndef _TUSB_HID_H_
44 #define _TUSB_HID_H_
45 
46 #include "common/common.h"
47 
48 #ifdef __cplusplus
49  extern "C" {
50 #endif
51 
52 //--------------------------------------------------------------------+
53 // Common Definitions
54 //--------------------------------------------------------------------+
58 typedef enum {
63 
65 typedef enum {
70 
72 typedef enum {
77 
79 typedef enum {
84 
86 typedef enum {
94 
96 typedef ATTR_PACKED_STRUCT(struct) {
97  uint8_t bLength;
98  uint8_t bDescriptorType;
100  uint16_t bcdHID;
101  uint8_t bCountryCode;
102  uint8_t bNumDescriptors;
104  uint8_t bReportType;
105  uint16_t wReportLength;
107 
109 typedef enum
110 {
148 
151 //--------------------------------------------------------------------+
152 // MOUSE
153 //--------------------------------------------------------------------+
157 typedef ATTR_PACKED_STRUCT(struct)
159 {
160  uint8_t buttons;
161  int8_t x;
162  int8_t y;
163  int8_t wheel;
165 
167 typedef enum {
172 
174 
175 //--------------------------------------------------------------------+
176 // Keyboard
177 //--------------------------------------------------------------------+
181 typedef ATTR_PACKED_STRUCT(struct)
183 {
184  uint8_t modifier;
185  uint8_t reserved;
186  uint8_t keycode[6];
188 
190 typedef enum {
200 
201 typedef enum {
208 
210 
211 #define HID_KEYCODE_TABLE(ENTRY) \
212  ENTRY( 0x04, 'a' , 'A' )\
213  ENTRY( 0x05, 'b' , 'B' )\
214  ENTRY( 0x06, 'c' , 'C' )\
215  ENTRY( 0x07, 'd' , 'D' )\
216  ENTRY( 0x08, 'e' , 'E' )\
217  ENTRY( 0x09, 'f' , 'F' )\
218  ENTRY( 0x0a, 'g' , 'G' )\
219  ENTRY( 0x0b, 'h' , 'H' )\
220  ENTRY( 0x0c, 'i' , 'I' )\
221  ENTRY( 0x0d, 'j' , 'J' )\
222  ENTRY( 0x0e, 'k' , 'K' )\
223  ENTRY( 0x0f, 'l' , 'L' )\
224  ENTRY( 0x10, 'm' , 'M' )\
225  ENTRY( 0x11, 'n' , 'N' )\
226  ENTRY( 0x12, 'o' , 'O' )\
227  ENTRY( 0x13, 'p' , 'P' )\
228  ENTRY( 0x14, 'q' , 'Q' )\
229  ENTRY( 0x15, 'r' , 'R' )\
230  ENTRY( 0x16, 's' , 'S' )\
231  ENTRY( 0x17, 't' , 'T' )\
232  ENTRY( 0x18, 'u' , 'U' )\
233  ENTRY( 0x19, 'v' , 'V' )\
234  ENTRY( 0x1a, 'w' , 'W' )\
235  ENTRY( 0x1b, 'x' , 'X' )\
236  ENTRY( 0x1c, 'y' , 'Y' )\
237  ENTRY( 0x1d, 'z' , 'Z' )\
238  \
239  ENTRY( 0x1e, '1' , '!' )\
240  ENTRY( 0x1f, '2' , '@' )\
241  ENTRY( 0x20, '3' , '#' )\
242  ENTRY( 0x21, '4' , '$' )\
243  ENTRY( 0x22, '5' , '%' )\
244  ENTRY( 0x23, '6' , '^' )\
245  ENTRY( 0x24, '7' , '&' )\
246  ENTRY( 0x25, '8' , '*' )\
247  ENTRY( 0x26, '9' , '(' )\
248  ENTRY( 0x27, '0' , ')' )\
249  \
250  ENTRY( 0x28, '\r' , '\r' )\
251  ENTRY( 0x29, '\x1b', '\x1b' )\
252  ENTRY( 0x2a, '\b' , '\b' )\
253  ENTRY( 0x2b, '\t' , '\t' )\
254  ENTRY( 0x2c, ' ' , ' ' )\
255  ENTRY( 0x2d, '-' , '_' )\
256  ENTRY( 0x2e, '=' , '+' )\
257  ENTRY( 0x2f, '[' , '{' )\
258  ENTRY( 0x30, ']' , '}' )\
259  ENTRY( 0x31, '\\' , '|' )\
260  ENTRY( 0x32, '#' , '~' ) /* TODO non-US keyboard */ \
261  ENTRY( 0x33, ';' , ':' )\
262  ENTRY( 0x34, '\'' , '\"' )\
263  ENTRY( 0x35, 0 , 0 )\
264  ENTRY( 0x36, ',' , '<' )\
265  ENTRY( 0x37, '.' , '>' )\
266  ENTRY( 0x38, '/' , '?' )\
267  ENTRY( 0x39, 0 , 0 ) /* TODO CapsLock, non-locking key implementation*/ \
268  \
269  ENTRY( 0x54, '/' , '/' )\
270  ENTRY( 0x55, '*' , '*' )\
271  ENTRY( 0x56, '-' , '-' )\
272  ENTRY( 0x57, '+' , '+' )\
273  ENTRY( 0x58, '\r' , '\r' )\
274  ENTRY( 0x59, '1' , 0 ) /* numpad1 & end */ \
275  ENTRY( 0x5a, '2' , 0 )\
276  ENTRY( 0x5b, '3' , 0 )\
277  ENTRY( 0x5c, '4' , 0 )\
278  ENTRY( 0x5d, '5' , '5' )\
279  ENTRY( 0x5e, '6' , 0 )\
280  ENTRY( 0x5f, '7' , 0 )\
281  ENTRY( 0x60, '8' , 0 )\
282  ENTRY( 0x61, '9' , 0 )\
283  ENTRY( 0x62, '0' , 0 )\
284  ENTRY( 0x63, '0' , 0 )\
285  ENTRY( 0x67, '=' , '=' )\
286 
287 
288 
289 // TODO HID complete keycode table
290 
291 //enum
292 //{
293 // KEYBOARD_KEYCODE_A = 0x04,
294 // KEYBOARD_KEYCODE_Z = 0x1d,
295 //
296 // KEYBOARD_KEYCODE_1 = 0x1e,
297 // KEYBOARD_KEYCODE_0 = 0x27,
298 //
299 // KEYBOARD_KEYCODE_ENTER = 0x28,
300 // KEYBOARD_KEYCODE_ESCAPE = 0x29,
301 // KEYBOARD_KEYCODE_BACKSPACE = 0x2a,
302 // KEYBOARD_KEYCODE_TAB = 0x2b,
303 // KEYBOARD_KEYCODE_SPACEBAR = 0x2c,
304 //
305 //};
306 
307 //--------------------------------------------------------------------+
308 // REPORT DESCRIPTOR
309 //--------------------------------------------------------------------+
310 //------------- ITEM & TAG -------------//
311 #define HID_REPORT_DATA_0(data)
312 #define HID_REPORT_DATA_1(data) , data
313 #define HID_REPORT_DATA_2(data) , U16_TO_U8S_LE(data)
314 #define HID_REPORT_DATA_3(data) , U32_TO_U8S_LE(data)
315 
316 #define HID_REPORT_ITEM(data, tag, type, size) \
317  (((tag) << 4) | ((type) << 2) | (size)) HID_REPORT_DATA_##size(data)
318 
319 #define RI_TYPE_MAIN 0
320 #define RI_TYPE_GLOBAL 1
321 #define RI_TYPE_LOCAL 2
322 
323 //------------- MAIN ITEMS 6.2.2.4 -------------//
324 #define HID_INPUT(x) HID_REPORT_ITEM(x, 8, RI_TYPE_MAIN, 1)
325 #define HID_OUTPUT(x) HID_REPORT_ITEM(x, 9, RI_TYPE_MAIN, 1)
326 #define HID_COLLECTION(x) HID_REPORT_ITEM(x, 10, RI_TYPE_MAIN, 1)
327 #define HID_FEATURE(x) HID_REPORT_ITEM(x, 11, RI_TYPE_MAIN, 1)
328 #define HID_COLLECTION_END HID_REPORT_ITEM(x, 12, RI_TYPE_MAIN, 0)
329 
330 //------------- INPUT, OUTPUT, FEATURE 6.2.2.5 -------------//
331 #define HID_DATA (0<<0)
332 #define HID_CONSTANT (1<<0)
333 
334 #define HID_ARRAY (0<<1)
335 #define HID_VARIABLE (1<<1)
336 
337 #define HID_ABSOLUTE (0<<2)
338 #define HID_RELATIVE (1<<2)
339 
340 #define HID_WRAP_NO (0<<3)
341 #define HID_WRAP (1<<3)
342 
343 #define HID_LINEAR (0<<4)
344 #define HID_NONLINEAR (1<<4)
345 
346 #define HID_PREFERRED_STATE (0<<5)
347 #define HID_PREFERRED_NO (1<<5)
348 
349 #define HID_NO_NULL_POSITION (0<<6)
350 #define HID_NULL_STATE (1<<6)
351 
352 #define HID_NON_VOLATILE (0<<7)
353 #define HID_VOLATILE (1<<7)
354 
355 #define HID_BITFIELD (0<<8)
356 #define HID_BUFFERED_BYTES (1<<8)
357 
358 //------------- COLLECTION ITEM 6.2.2.6 -------------//
359 enum {
360  HID_COLLECTION_PHYSICAL = 0,
361  HID_COLLECTION_APPLICATION,
362  HID_COLLECTION_LOGICAL,
363  HID_COLLECTION_REPORT,
364  HID_COLLECTION_NAMED_ARRAY,
365  HID_COLLECTION_USAGE_SWITCH,
366  HID_COLLECTION_USAGE_MODIFIER
367 };
368 
369 //------------- GLOBAL ITEMS 6.2.2.7 -------------//
370 #define HID_USAGE_PAGE(x) HID_REPORT_ITEM(x, 0, RI_TYPE_GLOBAL, 1)
371 #define HID_USAGE_PAGE_N(x, n) HID_REPORT_ITEM(x, 0, RI_TYPE_GLOBAL, n)
372 
373 #define HID_LOGICAL_MIN(x) HID_REPORT_ITEM(x, 1, RI_TYPE_GLOBAL, 1)
374 #define HID_LOGICAL_MIN_N(x, n) HID_REPORT_ITEM(x, 1, RI_TYPE_GLOBAL, n)
375 
376 #define HID_LOGICAL_MAX(x) HID_REPORT_ITEM(x, 2, RI_TYPE_GLOBAL, 1)
377 #define HID_LOGICAL_MAX_N(x, n) HID_REPORT_ITEM(x, 2, RI_TYPE_GLOBAL, n)
378 
379 #define HID_PHYSICAL_MIN(x) HID_REPORT_ITEM(x, 3, RI_TYPE_GLOBAL, 1)
380 #define HID_PHYSICAL_MIN_N(x, n) HID_REPORT_ITEM(x, 3, RI_TYPE_GLOBAL, n)
381 
382 #define HID_PHYSICAL_MAX(x) HID_REPORT_ITEM(x, 4, RI_TYPE_GLOBAL, 1)
383 #define HID_PHYSICAL_MAX_N(x, n) HID_REPORT_ITEM(x, 4, RI_TYPE_GLOBAL, n)
384 
385 #define HID_UNIT_EXPONENT(x) HID_REPORT_ITEM(x, 5, RI_TYPE_GLOBAL, 1)
386 #define HID_UNIT_EXPONENT_N(x, n) HID_REPORT_ITEM(x, 5, RI_TYPE_GLOBAL, n)
387 
388 #define HID_UNIT(x) HID_REPORT_ITEM(x, 6, RI_TYPE_GLOBAL, 1)
389 #define HID_UNIT_N(x, n) HID_REPORT_ITEM(x, 6, RI_TYPE_GLOBAL, n)
390 
391 #define HID_REPORT_SIZE(x) HID_REPORT_ITEM(x, 7, RI_TYPE_GLOBAL, 1)
392 #define HID_REPORT_SIZE_N(x, n) HID_REPORT_ITEM(x, 7, RI_TYPE_GLOBAL, n)
393 
394 #define HID_REPORT_ID(x) HID_REPORT_ITEM(x, 8, RI_TYPE_GLOBAL, 1)
395 #define HID_REPORT_ID_N(x) HID_REPORT_ITEM(x, 8, RI_TYPE_GLOBAL, n)
396 
397 #define HID_REPORT_COUNT(x) HID_REPORT_ITEM(x, 9, RI_TYPE_GLOBAL, 1)
398 #define HID_REPORT_COUNT_N(x, n) HID_REPORT_ITEM(x, 9, RI_TYPE_GLOBAL, n)
399 
400 #define HID_PUSH HID_REPORT_ITEM(x, 10, RI_TYPE_GLOBAL, 0)
401 #define HID_POP HID_REPORT_ITEM(x, 11, RI_TYPE_GLOBAL, 0)
402 
403 //------------- LOCAL ITEMS 6.2.2.8 -------------//
404 #define HID_USAGE(x) HID_REPORT_ITEM(x, 0, RI_TYPE_LOCAL, 1)
405 #define HID_USAGE_N(x, n) HID_REPORT_ITEM(x, 0, RI_TYPE_LOCAL, n)
406 
407 #define HID_USAGE_MIN(x) HID_REPORT_ITEM(x, 1, RI_TYPE_LOCAL, 1)
408 #define HID_USAGE_MIN_N(x, n) HID_REPORT_ITEM(x, 1, RI_TYPE_LOCAL, n)
409 
410 #define HID_USAGE_MAX(x) HID_REPORT_ITEM(x, 2, RI_TYPE_LOCAL, 1)
411 #define HID_USAGE_MAX_N(x, n) HID_REPORT_ITEM(x, 2, RI_TYPE_LOCAL, n)
412 
413 //--------------------------------------------------------------------+
414 // Usage Table
415 //--------------------------------------------------------------------+
416 
418 enum {
419  HID_USAGE_PAGE_DESKTOP = 0x01,
420  HID_USAGE_PAGE_SIMULATE = 0x02,
421  HID_USAGE_PAGE_VIRTUAL_REALITY = 0x03,
422  HID_USAGE_PAGE_SPORT = 0x04,
423  HID_USAGE_PAGE_GAME = 0x05,
424  HID_USAGE_PAGE_GENERIC_DEVICE = 0x06,
425  HID_USAGE_PAGE_KEYBOARD = 0x07,
426  HID_USAGE_PAGE_LED = 0x08,
427  HID_USAGE_PAGE_BUTTON = 0x09,
428  HID_USAGE_PAGE_ORDINAL = 0x0a,
429  HID_USAGE_PAGE_TELEPHONY = 0x0b,
430  HID_USAGE_PAGE_CONSUMER = 0x0c,
431  HID_USAGE_PAGE_DIGITIZER = 0x0d,
432  HID_USAGE_PAGE_PID = 0x0f,
433  HID_USAGE_PAGE_UNICODE = 0x10,
434  HID_USAGE_PAGE_ALPHA_DISPLAY = 0x14,
435  HID_USAGE_PAGE_MEDICAL = 0x40,
436  HID_USAGE_PAGE_MONITOR = 0x80, //0x80 - 0x83
437  HID_USAGE_PAGE_POWER = 0x84, // 0x084 - 0x87
438  HID_USAGE_PAGE_BARCODE_SCANNER = 0x8c,
439  HID_USAGE_PAGE_SCALE = 0x8d,
440  HID_USAGE_PAGE_MSR = 0x8e,
441  HID_USAGE_PAGE_CAMERA = 0x90,
442  HID_USAGE_PAGE_ARCADE = 0x91,
443  HID_USAGE_PAGE_VENDOR = 0xFFFF // 0xFF00 - 0xFFFF
444 };
445 
447 enum {
448  HID_USAGE_DESKTOP_POINTER = 0x01,
449  HID_USAGE_DESKTOP_MOUSE = 0x02,
450  HID_USAGE_DESKTOP_JOYSTICK = 0x04,
451  HID_USAGE_DESKTOP_GAMEPAD = 0x05,
452  HID_USAGE_DESKTOP_KEYBOARD = 0x06,
453  HID_USAGE_DESKTOP_KEYPAD = 0x07,
454  HID_USAGE_DESKTOP_MULTI_AXIS_CONTROLLER = 0x08,
455  HID_USAGE_DESKTOP_TABLET_PC_SYSTEM = 0x09,
456  HID_USAGE_DESKTOP_X = 0x30,
457  HID_USAGE_DESKTOP_Y = 0x31,
458  HID_USAGE_DESKTOP_Z = 0x32,
459  HID_USAGE_DESKTOP_RX = 0x33,
460  HID_USAGE_DESKTOP_RY = 0x34,
461  HID_USAGE_DESKTOP_RZ = 0x35,
462  HID_USAGE_DESKTOP_SLIDER = 0x36,
463  HID_USAGE_DESKTOP_DIAL = 0x37,
464  HID_USAGE_DESKTOP_WHEEL = 0x38,
465  HID_USAGE_DESKTOP_HAT_SWITCH = 0x39,
466  HID_USAGE_DESKTOP_COUNTED_BUFFER = 0x3a,
467  HID_USAGE_DESKTOP_BYTE_COUNT = 0x3b,
468  HID_USAGE_DESKTOP_MOTION_WAKEUP = 0x3c,
469  HID_USAGE_DESKTOP_START = 0x3d,
470  HID_USAGE_DESKTOP_SELECT = 0x3e,
471  HID_USAGE_DESKTOP_VX = 0x40,
472  HID_USAGE_DESKTOP_VY = 0x41,
473  HID_USAGE_DESKTOP_VZ = 0x42,
474  HID_USAGE_DESKTOP_VBRX = 0x43,
475  HID_USAGE_DESKTOP_VBRY = 0x44,
476  HID_USAGE_DESKTOP_VBRZ = 0x45,
477  HID_USAGE_DESKTOP_VNO = 0x46,
478  HID_USAGE_DESKTOP_FEATURE_NOTIFICATION = 0x47,
479  HID_USAGE_DESKTOP_RESOLUTION_MULTIPLIER = 0x48,
480  HID_USAGE_DESKTOP_SYSTEM_CONTROL = 0x80,
481  HID_USAGE_DESKTOP_SYSTEM_POWER_DOWN = 0x81,
482  HID_USAGE_DESKTOP_SYSTEM_SLEEP = 0x82,
483  HID_USAGE_DESKTOP_SYSTEM_WAKE_UP = 0x83,
484  HID_USAGE_DESKTOP_SYSTEM_CONTEXT_MENU = 0x84,
485  HID_USAGE_DESKTOP_SYSTEM_MAIN_MENU = 0x85,
486  HID_USAGE_DESKTOP_SYSTEM_APP_MENU = 0x86,
487  HID_USAGE_DESKTOP_SYSTEM_MENU_HELP = 0x87,
488  HID_USAGE_DESKTOP_SYSTEM_MENU_EXIT = 0x88,
489  HID_USAGE_DESKTOP_SYSTEM_MENU_SELECT = 0x89,
490  HID_USAGE_DESKTOP_SYSTEM_MENU_RIGHT = 0x8A,
491  HID_USAGE_DESKTOP_SYSTEM_MENU_LEFT = 0x8B,
492  HID_USAGE_DESKTOP_SYSTEM_MENU_UP = 0x8C,
493  HID_USAGE_DESKTOP_SYSTEM_MENU_DOWN = 0x8D,
494  HID_USAGE_DESKTOP_SYSTEM_COLD_RESTART = 0x8E,
495  HID_USAGE_DESKTOP_SYSTEM_WARM_RESTART = 0x8F,
496  HID_USAGE_DESKTOP_DPAD_UP = 0x90,
497  HID_USAGE_DESKTOP_DPAD_DOWN = 0x91,
498  HID_USAGE_DESKTOP_DPAD_RIGHT = 0x92,
499  HID_USAGE_DESKTOP_DPAD_LEFT = 0x93,
500  HID_USAGE_DESKTOP_SYSTEM_DOCK = 0xA0,
501  HID_USAGE_DESKTOP_SYSTEM_UNDOCK = 0xA1,
502  HID_USAGE_DESKTOP_SYSTEM_SETUP = 0xA2,
503  HID_USAGE_DESKTOP_SYSTEM_BREAK = 0xA3,
504  HID_USAGE_DESKTOP_SYSTEM_DEBUGGER_BREAK = 0xA4,
505  HID_USAGE_DESKTOP_APPLICATION_BREAK = 0xA5,
506  HID_USAGE_DESKTOP_APPLICATION_DEBUGGER_BREAK = 0xA6,
507  HID_USAGE_DESKTOP_SYSTEM_SPEAKER_MUTE = 0xA7,
508  HID_USAGE_DESKTOP_SYSTEM_HIBERNATE = 0xA8,
509  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_INVERT = 0xB0,
510  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_INTERNAL = 0xB1,
511  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_EXTERNAL = 0xB2,
512  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_BOTH = 0xB3,
513  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_DUAL = 0xB4,
514  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_TOGGLE_INT_EXT = 0xB5,
515  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_SWAP_PRIMARY_SECONDARY = 0xB6,
516  HID_USAGE_DESKTOP_SYSTEM_DISPLAY_LCD_AUTOSCALE = 0xB7
517 };
518 
519 #ifdef __cplusplus
520  }
521 #endif
522 
523 #endif /* _TUSB_HID_H__ */
524 
Switzerland.
Definition: hid.h:140
Report Descriptor.
Definition: hid.h:74
Boot Interface Subclass.
Definition: hid.h:61
Right button.
Definition: hid.h:169
International.
Definition: hid.h:124
uint8_t buttons
Definition: hid.h:160
Canadian_French.
Definition: hid.h:115
Kana mode.
Definition: hid.h:206
#define BIT_(n)
n-th Bit
Definition: binary.h:54
Arabic.
Definition: hid.h:112
int8_t x
Definition: hid.h:161
NotSupported.
Definition: hid.h:111
Netherlands/Dutch.
Definition: hid.h:129
Scroll Lock LED.
Definition: hid.h:204
Swedish.
Definition: hid.h:137
Standard HID Boot Protocol Mouse Report.
Definition: hid.h:158
Left Window.
Definition: hid.h:194
Taiwan.
Definition: hid.h:141
Danish.
Definition: hid.h:117
Portuguese.
Definition: hid.h:133
uint8_t bNumDescriptors
Definition: hid.h:102
Persian (Farsi)
Definition: hid.h:131
Swiss/German.
Definition: hid.h:139
US.
Definition: hid.h:144
Hebrew.
Definition: hid.h:122
Swiss/French.
Definition: hid.h:138
hid_keyboard_led_bm_t
Definition: hid.h:201
Turkish-Q.
Definition: hid.h:142
HID Descriptor.
Definition: hid.h:73
Left button.
Definition: hid.h:168
Left Shift.
Definition: hid.h:192
Composition Mode.
Definition: hid.h:205
hid_request_report_type_t
HID Request Report Type.
Definition: hid.h:79
Latin_American.
Definition: hid.h:128
French.
Definition: hid.h:119
Korean.
Definition: hid.h:127
Spanish.
Definition: hid.h:136
Norwegian.
Definition: hid.h:130
Belgian.
Definition: hid.h:113
Finnish.
Definition: hid.h:118
Left Control.
Definition: hid.h:191
Physical Descriptor.
Definition: hid.h:75
Italian.
Definition: hid.h:125
int8_t y
Definition: hid.h:162
Right Window.
Definition: hid.h:198
hid_mouse_button_bm_t
Standard Mouse Buttons Bitmap.
Definition: hid.h:167
UK.
Definition: hid.h:143
Greek.
Definition: hid.h:121
Yugoslavia.
Definition: hid.h:145
uint8_t modifier
Definition: hid.h:184
Right Shift.
Definition: hid.h:196
Standard HID Boot Protocol Keyboard Report.
Definition: hid.h:182
Russia.
Definition: hid.h:134
hid_subclass_type_t
HID Subclass.
Definition: hid.h:59
uint8_t bDescriptorType
Definition: hid.h:98
uint8_t reserved
Definition: hid.h:185
hid_descriptor_type_t
HID Descriptor Type.
Definition: hid.h:72
German.
Definition: hid.h:120
Middle button.
Definition: hid.h:170
USB HID Descriptor.
Definition: hid.h:96
Keyboard.
Definition: hid.h:67
hid_keyboard_modifier_bm_t
Keyboard modifier codes bitmap.
Definition: hid.h:190
int8_t wheel
Definition: hid.h:163
Caps Lock LED.
Definition: hid.h:203
Slovakia.
Definition: hid.h:135
Hungary.
Definition: hid.h:123
No Subclass.
Definition: hid.h:60
Num Lock LED.
Definition: hid.h:202
Canadian_Bilingual.
Definition: hid.h:114
Right Control.
Definition: hid.h:195
hid_protocol_type_t
HID Protocol.
Definition: hid.h:65
Czech_Republic.
Definition: hid.h:116
Poland.
Definition: hid.h:132
hid_country_code_t
HID Country Code.
Definition: hid.h:109
uint8_t bCountryCode
Definition: hid.h:101
hid_request_type_t
HID Class Specific Control Request.
Definition: hid.h:86
None.
Definition: hid.h:66
uint16_t wReportLength
Definition: hid.h:105
Mouse.
Definition: hid.h:68
Japan_Katakana.
Definition: hid.h:126
Turkish-F.
Definition: hid.h:146