diff options
author | fauxpark <fauxpark@gmail.com> | 2020-02-03 07:17:05 +1100 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2020-02-26 10:15:12 +0900 |
commit | df6e5f16b6c334f464ac444f6c0e350daf7ec873 (patch) | |
tree | 601dbb44b560888cb6679ec56234da7124a6c814 /tmk_core/protocol/vusb | |
parent | 4c88e39d157e59d42e83100d2c1c54417b804c23 (diff) |
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
Diffstat (limited to 'tmk_core/protocol/vusb')
-rw-r--r-- | tmk_core/protocol/vusb/vusb.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 72445e00bb..1a2acc11b7 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -113,31 +113,25 @@ static void send_mouse(report_mouse_t *report) { } } -typedef struct { - uint8_t report_id; - uint16_t usage; -} __attribute__((packed)) report_extra_t; - -static void send_system(uint16_t data) { +static void send_extra(uint8_t report_id, uint16_t data) { + static uint8_t last_id = 0; static uint16_t last_data = 0; - if (data == last_data) return; + if ((report_id == last_id) && (data == last_data)) return; + last_id = report_id; last_data = data; - report_extra_t report = {.report_id = REPORT_ID_SYSTEM, .usage = data}; + report_extra_t report = {.report_id = report_id, .usage = data}; if (usbInterruptIsReady3()) { usbSetInterrupt3((void *)&report, sizeof(report)); } } -static void send_consumer(uint16_t data) { - static uint16_t last_data = 0; - if (data == last_data) return; - last_data = data; +static void send_system(uint16_t data) { + send_extra(REPORT_ID_SYSTEM, data); +} - report_extra_t report = {.report_id = REPORT_ID_CONSUMER, .usage = data}; - if (usbInterruptIsReady3()) { - usbSetInterrupt3((void *)&report, sizeof(report)); - } +static void send_consumer(uint16_t data) { + send_extra(REPORT_ID_CONSUMER, data); } /*------------------------------------------------------------------* |