Dedupe extrakey report struct, and send functions in V-USB & LUFA (#7993)

* Dedupe extrakey report struct, and send functions in V-USB & LUFA

* Doc comment for consistency

* Wrap it in ifdef to prevent unused function error

* Do the same for ATSAM
This commit is contained in:
fauxpark 2020-02-03 07:17:05 +11:00 committed by GitHub
parent 5b91c3e0a0
commit b2ce2f8a34
Failed to generate hash of commit
6 changed files with 39 additions and 65 deletions

View file

@ -662,17 +662,17 @@ static void send_mouse(report_mouse_t *report) {
#endif
}
/** \brief Send System
/** \brief Send Extra
*
* FIXME: Needs doc
*/
static void send_system(uint16_t data) {
#ifdef EXTRAKEY_ENABLE
static void send_extra(uint8_t report_id, uint16_t data) {
uint8_t timeout = 255;
if (USB_DeviceState != DEVICE_STATE_Configured) return;
report_extra_t r = {.report_id = REPORT_ID_SYSTEM, .usage = data - SYSTEM_POWER_DOWN + 1};
report_extra_t r = {.report_id = report_id, .usage = data};
Endpoint_SelectEndpoint(SHARED_IN_EPNUM);
/* Check if write ready for a polling interval around 10ms */
@ -681,6 +681,16 @@ static void send_system(uint16_t data) {
Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL);
Endpoint_ClearIN();
}
#endif
/** \brief Send System
*
* FIXME: Needs doc
*/
static void send_system(uint16_t data) {
#ifdef EXTRAKEY_ENABLE
send_extra(REPORT_ID_SYSTEM, data - SYSTEM_POWER_DOWN + 1);
#endif
}
@ -690,7 +700,6 @@ static void send_system(uint16_t data) {
*/
static void send_consumer(uint16_t data) {
#ifdef EXTRAKEY_ENABLE
uint8_t timeout = 255;
uint8_t where = where_to_send();
# ifdef BLUETOOTH_ENABLE
@ -729,15 +738,7 @@ static void send_consumer(uint16_t data) {
return;
}
report_extra_t r = {.report_id = REPORT_ID_CONSUMER, .usage = data};
Endpoint_SelectEndpoint(SHARED_IN_EPNUM);
/* Check if write ready for a polling interval around 10ms */
while (timeout-- && !Endpoint_IsReadWriteAllowed()) _delay_us(40);
if (!Endpoint_IsReadWriteAllowed()) return;
Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL);
Endpoint_ClearIN();
send_extra(REPORT_ID_CONSUMER, data);
#endif
}