Skip to content

Commit b79d2be

Browse files
ryantheleachDDRBoxman
authored andcommitted
Cleaned up USB HID Reports and added usages
1 parent d2ccdcf commit b79d2be

File tree

1 file changed

+48
-57
lines changed

1 file changed

+48
-57
lines changed

src/usb_descriptors.c

Lines changed: 48 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -64,68 +64,59 @@ uint8_t const * tud_descriptor_device_cb(void)
6464
//--------------------------------------------------------------------+
6565
// HID Report Descriptor
6666
//--------------------------------------------------------------------+
67+
#define PEDAL_INPUT_FLAGS HID_DATA | HID_VARIABLE | HID_ABSOLUTE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION
68+
#define PEDAL_OUTPUT_FLAGS HID_DATA | HID_VARIABLE | HID_ABSOLUTE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE
69+
#define PEDAL_FEATURE_FLAGS HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE
70+
#define PEDAL_REPORT_FIELD() HID_LOGICAL_MIN ( 0 ), HID_LOGICAL_MAX ( 0xFF ), HID_REPORT_SIZE ( 8 ),
71+
6772

6873
#define TUD_HID_REPORT_DESC_PEDAL() \
6974
HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ), \
7075
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
7176
HID_COLLECTION ( HID_COLLECTION_APPLICATION ), \
72-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
73-
HID_LOGICAL_MIN ( 0 ), \
74-
HID_LOGICAL_MAX ( 0xFF ), \
75-
HID_REPORT_SIZE ( 8 ), \
76-
HID_REPORT_COUNT_N( 1023, 2) , \
77-
HID_REPORT_ID ( 2 ) \
78-
HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ) ,\
79-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
80-
HID_LOGICAL_MIN ( 0 ), \
81-
HID_LOGICAL_MAX ( 0xFF ), \
82-
HID_REPORT_SIZE ( 8 ), \
83-
HID_REPORT_COUNT ( 7 ), \
84-
HID_REPORT_ID (0x01) \
85-
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE| HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION ), \
86-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
87-
HID_LOGICAL_MIN ( 0 ), \
88-
HID_LOGICAL_MAX ( 0xFF ), \
89-
HID_REPORT_SIZE ( 8 ), \
90-
HID_REPORT_COUNT ( 31 ), \
91-
HID_REPORT_ID (0x03) \
92-
HID_FEATURE ( HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ), \
93-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
94-
HID_LOGICAL_MIN ( 0 ), \
95-
HID_LOGICAL_MAX ( 0xFF ), \
96-
HID_REPORT_SIZE ( 8 ), \
97-
HID_REPORT_COUNT ( 31 ), \
98-
HID_REPORT_ID (0x06) \
99-
HID_FEATURE ( HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ), \
100-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
101-
HID_LOGICAL_MIN ( 0 ), \
102-
HID_LOGICAL_MAX ( 0xFF ), \
103-
HID_REPORT_SIZE ( 8 ), \
104-
HID_REPORT_COUNT ( 31 ), \
105-
HID_REPORT_ID (0x07) \
106-
HID_FEATURE ( HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ), \
107-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
108-
HID_LOGICAL_MIN ( 0 ), \
109-
HID_LOGICAL_MAX ( 0xFF ), \
110-
HID_REPORT_SIZE ( 8 ), \
111-
HID_REPORT_COUNT ( 31 ), \
112-
HID_REPORT_ID (0x05) \
113-
HID_FEATURE ( HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ), \
114-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
115-
HID_LOGICAL_MIN ( 0 ), \
116-
HID_LOGICAL_MAX ( 0xFF ), \
117-
HID_REPORT_SIZE ( 8 ), \
118-
HID_REPORT_COUNT ( 31 ), \
119-
HID_REPORT_ID (0x04) \
120-
HID_FEATURE ( HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ), \
121-
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
122-
HID_LOGICAL_MIN ( 0 ), \
123-
HID_LOGICAL_MAX ( 0xFF ), \
124-
HID_REPORT_SIZE ( 8 ), \
125-
HID_REPORT_COUNT ( 31 ), \
126-
HID_REPORT_ID (0x08) \
127-
HID_FEATURE ( HID_DATA | HID_ARRAY | HID_RELATIVE | HID_WRAP_NO | HID_LINEAR | HID_PREFERRED_STATE | HID_NO_NULL_POSITION | HID_NON_VOLATILE ), \
128-
HID_COLLECTION_END \
77+
/** Uses Vendor Page for whole collection unless redefined. **/ \
78+
HID_USAGE_PAGE_N(HID_USAGE_PAGE_VENDOR, 2), \
79+
PEDAL_REPORT_FIELD() \
80+
HID_REPORT_COUNT_N( 1023, 2) , \
81+
HID_REPORT_ID ( 2 ) \
82+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
83+
HID_OUTPUT ( PEDAL_OUTPUT_FLAGS ) ,\
84+
\
85+
HID_REPORT_COUNT ( 7 ), \
86+
HID_REPORT_ID (0x01) \
87+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
88+
HID_INPUT ( PEDAL_INPUT_FLAGS ), \
89+
\
90+
HID_REPORT_COUNT ( 31 ), \
91+
HID_REPORT_ID (0x03) \
92+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
93+
HID_FEATURE ( PEDAL_FEATURE_FLAGS ), \
94+
\
95+
HID_REPORT_COUNT ( 31 ), \
96+
HID_REPORT_ID (0x06) \
97+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
98+
HID_FEATURE ( PEDAL_FEATURE_FLAGS ), \
99+
\
100+
HID_REPORT_COUNT ( 31 ), \
101+
HID_REPORT_ID (0x07) \
102+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
103+
HID_FEATURE ( PEDAL_FEATURE_FLAGS ), \
104+
\
105+
HID_REPORT_COUNT ( 31 ), \
106+
HID_REPORT_ID (0x05) \
107+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
108+
HID_FEATURE ( PEDAL_FEATURE_FLAGS ), \
109+
\
110+
HID_REPORT_COUNT ( 31 ), \
111+
HID_REPORT_ID (0x04) \
112+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
113+
HID_FEATURE ( PEDAL_FEATURE_FLAGS ), \
114+
\
115+
HID_REPORT_COUNT ( 31 ), \
116+
HID_REPORT_ID (0x08) \
117+
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
118+
HID_FEATURE ( PEDAL_FEATURE_FLAGS ), \
119+
HID_COLLECTION_END \
129120

130121
uint8_t const desc_hid_report[] =
131122
{

0 commit comments

Comments
 (0)