@@ -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 () \
6974HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ), \
7075HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), \
7176HID_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
130121uint8_t const desc_hid_report [] =
131122{
0 commit comments