summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d9c5e58)
* Check the size of the SET_REPORT packet
If we have two bytes, that probably means the first is a report ID. The 6KRO interface may or may not have one, but the NKRO interface always does, so we need to check this regardless of whether KEYBOARD_SHARED_EP is defined.
* Fix indentation
if (USB_DeviceState == DEVICE_STATE_Unattached)
return;
}
if (USB_DeviceState == DEVICE_STATE_Unattached)
return;
}
-#ifdef KEYBOARD_SHARED_EP
- uint8_t report_id = REPORT_ID_KEYBOARD;
- if (keyboard_protocol) {
- report_id = Endpoint_Read_8();
- }
- if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) {
+
+ if (Endpoint_BytesInEndpoint() == 2) {
+ uint8_t report_id = REPORT_ID_KEYBOARD;
+
+ if (keyboard_protocol) {
+ report_id = Endpoint_Read_8();
+ }
+
+ if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) {
keyboard_led_stats = Endpoint_Read_8();
keyboard_led_stats = Endpoint_Read_8();
+ }
+ } else {
+ keyboard_led_stats = Endpoint_Read_8();
-#else
- keyboard_led_stats = Endpoint_Read_8();
-#endif
Endpoint_ClearOUT();
Endpoint_ClearStatusStage();
Endpoint_ClearOUT();
Endpoint_ClearStatusStage();