1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
const u8 g_KeyboardReportDescriptor[] =
{
// Keyboard
0x05, 0x01, /* Usage Page(Generic Desktop) */
0x09, 0x06, /* Usage(Keyboard) */
0xA1, 0x01, /* Collection(Application) */
0x05, 0x07, /* Usage Page(Key Codes) */
0x19, 0xE0, /* Usage Minimum(224) */
0x29, 0xE7, /* Usage Maximum(231) */
0x15, 0x00, /* Logical Minimum(0) */
0x25, 0x01, /* Logical Maximum(1) */
0x75, 0x01, /* Report Size(1) */
0x95, 0x08, /* Report Count(8) */
0x81, 0x02, /* Input(Data, Variable, Absolute), Modifier byte */
0x95, 0x01, /* Report Count(1) */
0x75, 0x08, /* Report Size(8) */
0x81, 0x01, /* Input(Constant), Reserved byte */
0x95, 0x05, /* Report Count(5) */
0x75, 0x01, /* Report Size(1) */
0x05, 0x08, /* Usage Page(LED) */
0x19, 0x01, /* Usage Minimum(1) */
0x29, 0x05, /* Usage Minimum(5) */
0x91, 0x02, /* Output(Data, Variable, Absolute), LED report */
0x95, 0x01, /* Report Count(1) */
0x75, 0x03, /* Report Size(3) */
0x91, 0x01, /* Output(Constant), LED report padding */
0x95, 0x06, /* Report Count(6) */
0x75, 0x08, /* Report Size(8) */
0x15, 0x00, /* Logical Minimum(0) */
0x25, 0x65, /* Logical Maximum(101) */
0x05, 0x07, /* Usage Page(Key Codes) */
0x19, 0x00, /* Usage Minimum(0) */
0x29, 0x65, /* Usage Minimum(101) */
0x81, 0x00, /* Input(Data, Array), Key arrays(6 bytes) */
0xC0 /* End Collection */
};
|