Compare commits

...

3 Commits

Author SHA1 Message Date
taudris cbf85f8aa8 Merge remote-tracking branch 'origin/master' into report_mods_separately 2023-07-02 12:57:16 -07:00
taudris 1f6524968b Keep PROTOCOL_VUSB path. 2022-12-28 01:18:40 -08:00
taudris 97821dc425 Add logic for REPORT_MODS_SEPARATELY. 2022-12-27 23:54:33 -08:00
1 changed files with 17 additions and 4 deletions

View File

@ -282,15 +282,28 @@ void send_keyboard_report(void) {
keyboard_report->mods |= weak_override_mods;
#endif
#ifdef PROTOCOL_VUSB
host_keyboard_send(keyboard_report);
#else
static report_keyboard_t last_report;
#ifdef REPORT_MODS_SEPARATELY
if (last_report.mods != keyboard_report->mods) {
//build a keyboard report that only updates the mods
report_keyboard_t mod_report;
memcpy(&mod_report, &last_report, sizeof(report_keyboard_t));
mod_report.mods = keyboard_report->mods;
host_keyboard_send(&mod_report);
memcpy(&last_report, &mod_report, sizeof(report_keyboard_t));
}
#endif
#ifdef PROTOCOL_VUSB
host_keyboard_send(keyboard_report);
memcpy(&last_report, keyboard_report, sizeof(report_keyboard_t));
#else
/* Only send the report if there are changes to propagate to the host. */
if (memcmp(keyboard_report, &last_report, sizeof(report_keyboard_t)) != 0) {
memcpy(&last_report, keyboard_report, sizeof(report_keyboard_t));
host_keyboard_send(keyboard_report);
memcpy(&last_report, keyboard_report, sizeof(report_keyboard_t));
}
#endif
}