diff options
author | William Chang <william@factual.com> | 2019-11-20 22:17:07 -0800 |
---|---|---|
committer | William Chang <william@factual.com> | 2019-11-20 22:17:07 -0800 |
commit | e7f4d56592b3975c38af329e77b4efd9108495e8 (patch) | |
tree | 0a416bccbf70bfdbdb9ffcdb3bf136b47378c014 /tmk_core/common/host.c | |
parent | 71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (diff) | |
parent | 8416a94ad27b3ff058576f09f35f0704a8b39ff3 (diff) |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'tmk_core/common/host.c')
-rw-r--r-- | tmk_core/common/host.c | 52 |
1 files changed, 20 insertions, 32 deletions
diff --git a/tmk_core/common/host.c b/tmk_core/common/host.c index f5d0416996..e7d92cfac6 100644 --- a/tmk_core/common/host.c +++ b/tmk_core/common/host.c @@ -23,40 +23,37 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "debug.h" #ifdef NKRO_ENABLE - #include "keycode_config.h" - extern keymap_config_t keymap_config; +# include "keycode_config.h" +extern keymap_config_t keymap_config; #endif static host_driver_t *driver; -static uint16_t last_system_report = 0; -static uint16_t last_consumer_report = 0; +static uint16_t last_system_report = 0; +static uint16_t last_consumer_report = 0; +void host_set_driver(host_driver_t *d) { driver = d; } -void host_set_driver(host_driver_t *d) -{ - driver = d; -} - -host_driver_t *host_get_driver(void) -{ - return driver; -} +host_driver_t *host_get_driver(void) { return driver; } -uint8_t host_keyboard_leds(void) -{ +uint8_t host_keyboard_leds(void) { if (!driver) return 0; return (*driver->keyboard_leds)(); } + +led_t host_keyboard_led_state(void) { + if (!driver) return (led_t){0}; + return (led_t)((*driver->keyboard_leds)()); +} + /* send report */ -void host_keyboard_send(report_keyboard_t *report) -{ +void host_keyboard_send(report_keyboard_t *report) { if (!driver) return; #if defined(NKRO_ENABLE) && defined(NKRO_SHARED_EP) if (keyboard_protocol && keymap_config.nkro) { /* The callers of this function assume that report->mods is where mods go in. * But report->nkro.mods can be at a different offset if core keyboard does not have a report ID. */ - report->nkro.mods = report->mods; + report->nkro.mods = report->mods; report->nkro.report_id = REPORT_ID_NKRO; } else #endif @@ -76,8 +73,7 @@ void host_keyboard_send(report_keyboard_t *report) } } -void host_mouse_send(report_mouse_t *report) -{ +void host_mouse_send(report_mouse_t *report) { if (!driver) return; #ifdef MOUSE_SHARED_EP report->report_id = REPORT_ID_MOUSE; @@ -85,8 +81,7 @@ void host_mouse_send(report_mouse_t *report) (*driver->send_mouse)(report); } -void host_system_send(uint16_t report) -{ +void host_system_send(uint16_t report) { if (report == last_system_report) return; last_system_report = report; @@ -94,8 +89,7 @@ void host_system_send(uint16_t report) (*driver->send_system)(report); } -void host_consumer_send(uint16_t report) -{ +void host_consumer_send(uint16_t report) { if (report == last_consumer_report) return; last_consumer_report = report; @@ -103,12 +97,6 @@ void host_consumer_send(uint16_t report) (*driver->send_consumer)(report); } -uint16_t host_last_system_report(void) -{ - return last_system_report; -} +uint16_t host_last_system_report(void) { return last_system_report; } -uint16_t host_last_consumer_report(void) -{ - return last_consumer_report; -} +uint16_t host_last_consumer_report(void) { return last_consumer_report; } |