@@ -75,31 +75,27 @@ uint16_t Adafruit_USBD_HID::getDescriptor(uint8_t itfnum, uint8_t *buf,
75
75
if (!_desc_report_len)
76
76
return 0 ;
77
77
78
- if (_out_endpoint) {
79
- // usb core will automatically update endpoint number
80
- uint8_t desc[] = {
81
- TUD_HID_INOUT_DESCRIPTOR (itfnum, 0 , _protocol, _desc_report_len, EPOUT,
82
- EPIN, CFG_TUD_HID_BUFSIZE, _interval_ms)};
83
- uint16_t const len = sizeof (desc);
78
+ // usb core will automatically update endpoint number
79
+ uint8_t const desc_inout[] = { TUD_HID_INOUT_DESCRIPTOR (itfnum, 0 , _protocol, _desc_report_len, EPIN, EPOUT, CFG_TUD_HID_BUFSIZE, _interval_ms)};
80
+ uint8_t const desc_in_only[] = { TUD_HID_DESCRIPTOR (itfnum, 0 , _protocol, _desc_report_len, EPIN, CFG_TUD_HID_BUFSIZE, _interval_ms) };
84
81
85
- if (bufsize < len)
86
- return 0 ;
87
- memcpy (buf, desc, len);
82
+ uint8_t const * desc;
83
+ uint16_t len;
88
84
89
- return len;
85
+ if (_out_endpoint) {
86
+ desc = desc_inout;
87
+ len = sizeof (desc_inout);
90
88
} else {
91
- // usb core will automatically update endpoint number
92
- uint8_t desc[] = {TUD_HID_DESCRIPTOR (itfnum, 0 , _protocol, _desc_report_len,
93
- EPIN, CFG_TUD_HID_BUFSIZE,
94
- _interval_ms)};
95
- uint16_t const len = sizeof (desc);
96
-
97
- if (bufsize < len)
98
- return 0 ;
99
- memcpy (buf, desc, len);
89
+ desc = desc_in_only;
90
+ len = sizeof (desc_in_only);
91
+ }
100
92
101
- return len;
93
+ if (bufsize < len) {
94
+ return 0 ;
102
95
}
96
+
97
+ memcpy (buf, desc, len);
98
+ return len;
103
99
}
104
100
105
101
bool Adafruit_USBD_HID::begin (void ) {
0 commit comments