Fix Caps Lock LEDs once and for all (#4824)
* 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
This commit is contained in:
parent
d9c5e5870e
commit
2c4109394f
1 changed files with 12 additions and 9 deletions
|
@ -517,17 +517,20 @@ void EVENT_USB_Device_ControlRequest(void)
|
||||||
if (USB_DeviceState == DEVICE_STATE_Unattached)
|
if (USB_DeviceState == DEVICE_STATE_Unattached)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef KEYBOARD_SHARED_EP
|
|
||||||
|
if (Endpoint_BytesInEndpoint() == 2) {
|
||||||
uint8_t report_id = REPORT_ID_KEYBOARD;
|
uint8_t report_id = REPORT_ID_KEYBOARD;
|
||||||
|
|
||||||
if (keyboard_protocol) {
|
if (keyboard_protocol) {
|
||||||
report_id = Endpoint_Read_8();
|
report_id = Endpoint_Read_8();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) {
|
if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) {
|
||||||
keyboard_led_stats = Endpoint_Read_8();
|
keyboard_led_stats = Endpoint_Read_8();
|
||||||
}
|
}
|
||||||
#else
|
} else {
|
||||||
keyboard_led_stats = Endpoint_Read_8();
|
keyboard_led_stats = Endpoint_Read_8();
|
||||||
#endif
|
}
|
||||||
|
|
||||||
Endpoint_ClearOUT();
|
Endpoint_ClearOUT();
|
||||||
Endpoint_ClearStatusStage();
|
Endpoint_ClearStatusStage();
|
||||||
|
|
Loading…
Reference in a new issue