@@ -10,9 +10,38 @@ extern "C" {
10
10
11
11
extern USBHID HID;
12
12
13
+ #define TUD_HID_REPORT_DESC_R4_INOUT_FEATURE (report_size, ...) \
14
+ HID_USAGE_PAGE_N ( HID_USAGE_PAGE_VENDOR, 2 ),\
15
+ HID_USAGE ( 0x01 ),\
16
+ HID_COLLECTION ( HID_COLLECTION_APPLICATION ),\
17
+ /* Report ID if any */ \
18
+ __VA_ARGS__ \
19
+ /* Input */ \
20
+ HID_USAGE ( 0x02 ),\
21
+ HID_LOGICAL_MIN ( 0x00 ),\
22
+ HID_LOGICAL_MAX_N ( 0xff , 2 ),\
23
+ HID_REPORT_SIZE ( 8 ),\
24
+ HID_REPORT_COUNT( report_size ),\
25
+ HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
26
+ /* Output */ \
27
+ HID_USAGE ( 0x03 ),\
28
+ HID_LOGICAL_MIN ( 0x00 ),\
29
+ HID_LOGICAL_MAX_N ( 0xff , 2 ),\
30
+ HID_REPORT_SIZE ( 8 ),\
31
+ HID_REPORT_COUNT( report_size ),\
32
+ HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
33
+ /* Feature */ \
34
+ HID_USAGE ( 0x04 ),\
35
+ HID_LOGICAL_MIN ( 0x00 ),\
36
+ HID_LOGICAL_MAX_N ( 0xff , 2 ),\
37
+ HID_REPORT_SIZE (8 ),\
38
+ HID_REPORT_COUNT(report_size),\
39
+ HID_FEATURE (HID_DATA | HID_VARIABLE | HID_ABSOLUTE),\
40
+ HID_COLLECTION_END \
41
+
13
42
static uint8_t const report_descriptor[] =
14
43
{
15
- TUD_HID_REPORT_DESC_GENERIC_INOUT (CFG_TUD_HID_EP_BUFSIZE)
44
+ TUD_HID_REPORT_DESC_R4_INOUT_FEATURE (CFG_TUD_HID_EP_BUFSIZE)
16
45
};
17
46
18
47
class DAPHIDDevice : public USBHIDDevice {
0 commit comments