From 4ae979f6ef8dbf9e1d1f35be15322ad6d02e2958 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 6 Oct 2012 02:23:12 +0900 Subject: Initial version of new code for layer switch is added. --- common/host.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'common/host.c') diff --git a/common/host.c b/common/host.c index 8dd2abbee8..fddd5b6627 100644 --- a/common/host.c +++ b/common/host.c @@ -56,6 +56,19 @@ uint8_t host_keyboard_leds(void) return (*driver->keyboard_leds)(); } +/* new interface */ +void host_register_key(uint8_t key) +{ + host_add_key(key); + host_send_keyboard_report(); +} + +void host_unregister_key(uint8_t key) +{ + host_del_key(key); + host_send_keyboard_report(); +} + /* keyboard report operations */ void host_add_key(uint8_t key) { @@ -158,6 +171,14 @@ void host_send_keyboard_report(void) { if (!driver) return; (*driver->send_keyboard)(keyboard_report); + + if (debug_keyboard) { + print("keys: "); + for (int i = 0; i < REPORT_KEYS; i++) { + phex(keyboard_report->keys[i]); print(" "); + } + print(" mods: "); phex(keyboard_report->mods); print("\n"); + } } void host_mouse_send(report_mouse_t *report) @@ -216,7 +237,6 @@ static inline void del_key_byte(uint8_t code) for (; i < REPORT_KEYS; i++) { if (keyboard_report->keys[i] == code) { keyboard_report->keys[i] = 0; - break; } } } -- cgit v1.2.1