Fix chibios/usb_main GET_REPORT handing.
This commit is contained in:
parent
19bb28d102
commit
3c08375616
@ -43,6 +43,12 @@ extern bool keyboard_nkro;
|
|||||||
#endif /* NKRO_ENABLE */
|
#endif /* NKRO_ENABLE */
|
||||||
|
|
||||||
report_keyboard_t keyboard_report_sent = {{0}};
|
report_keyboard_t keyboard_report_sent = {{0}};
|
||||||
|
#ifdef MOUSE_ENABLE
|
||||||
|
report_mouse_t mouse_report_blank = {0};
|
||||||
|
#endif /* MOUSE_ENABLE */
|
||||||
|
#ifdef EXTRAKEY_ENABLE
|
||||||
|
uint8_t extra_report_blank[3] = {0};
|
||||||
|
#endif /* EXTRAKEY_ENABLE */
|
||||||
|
|
||||||
#ifdef CONSOLE_ENABLE
|
#ifdef CONSOLE_ENABLE
|
||||||
/* The emission queue */
|
/* The emission queue */
|
||||||
@ -858,6 +864,43 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef MOUSE_ENABLE
|
||||||
|
case MOUSE_INTERFACE:
|
||||||
|
usbSetupTransfer(usbp, (uint8_t *)&mouse_report_blank, sizeof(mouse_report_blank), NULL);
|
||||||
|
return TRUE;
|
||||||
|
break;
|
||||||
|
#endif /* MOUSE_ENABLE */
|
||||||
|
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
case CONSOLE_INTERFACE:
|
||||||
|
usbSetupTransfer(usbp, console_queue_buffer, CONSOLE_EPSIZE, NULL);
|
||||||
|
return TRUE;
|
||||||
|
break;
|
||||||
|
#endif /* CONSOLE_ENABLE */
|
||||||
|
|
||||||
|
#ifdef EXTRAKEY_ENABLE
|
||||||
|
case EXTRA_INTERFACE:
|
||||||
|
if(usbp->setup[3] == 1) { /* MSB(wValue) [Report Type] == 1 [Input Report] */
|
||||||
|
switch(usbp->setup[2]) { /* LSB(wValue) [Report ID] */
|
||||||
|
case REPORT_ID_SYSTEM:
|
||||||
|
extra_report_blank[0] = REPORT_ID_SYSTEM;
|
||||||
|
usbSetupTransfer(usbp, (uint8_t *)extra_report_blank, sizeof(extra_report_blank), NULL);
|
||||||
|
return TRUE;
|
||||||
|
break;
|
||||||
|
case REPORT_ID_CONSUMER:
|
||||||
|
extra_report_blank[0] = REPORT_ID_CONSUMER;
|
||||||
|
usbSetupTransfer(usbp, (uint8_t *)extra_report_blank, sizeof(extra_report_blank), NULL);
|
||||||
|
return TRUE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif /* EXTRAKEY_ENABLE */
|
||||||
|
|
||||||
default:
|
default:
|
||||||
usbSetupTransfer(usbp, NULL, 0, NULL);
|
usbSetupTransfer(usbp, NULL, 0, NULL);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Reference in New Issue
Block a user