X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=keyboard.c;h=03db3257a2d83e4dac6295a2740f32f7618daf39;hb=068c31a7ba9fc6aea33f69c0edb30ad195c320ec;hp=cb1c745e26bd2d3d50d2ad0157091a35fa0c5445;hpb=2b8cd88ab142068eed0a3f230a3de79deb567536;p=max%2Ftmk_keyboard.git diff --git a/keyboard.c b/keyboard.c index cb1c745e..03db3257 100644 --- a/keyboard.c +++ b/keyboard.c @@ -1,7 +1,7 @@ #include "keyboard.h" #include "host.h" #include "layer.h" -#include "matrix_skel.h" +#include "matrix.h" #include "led.h" #include "usb_keycodes.h" #include "timer.h" @@ -11,9 +11,14 @@ #ifdef MOUSEKEY_ENABLE #include "mousekey.h" #endif +/* TODO: shoud make new API */ +#ifdef USB_EXTRA_ENABLE +#include "usb_extra.h" +#include +#endif -static uint8_t last_led = 0; +static uint8_t last_leds = 0; void keyboard_init(void) @@ -61,7 +66,6 @@ void keyboard_proc(void) fn_bits |= FN_BIT(code); } #ifdef USB_EXTRA_ENABLE -/* TODO: use new API // audio control & system control else if (code == KB_MUTE) { usb_extra_audio_send(AUDIO_MUTE); @@ -83,7 +87,6 @@ void keyboard_proc(void) } _delay_ms(1000); } -*/ #endif else if (IS_KEY(code)) { host_add_key(code); @@ -102,10 +105,10 @@ void keyboard_proc(void) layer_switching(fn_bits); if (command_proc()) { - // not send report return; } + // TODO: should send only when changed from last report if (matrix_is_modified()) { host_send_keyboard_report(); #ifdef DEBUG_LED @@ -125,8 +128,13 @@ void keyboard_proc(void) ps2_mouse_usb_send(); #endif - if (last_led != host_keyboard_led()) { - led_set(host_keyboard_led()); - last_led = host_keyboard_led(); + if (last_leds != host_keyboard_leds()) { + keyboard_set_leds(host_keyboard_leds()); + last_leds = host_keyboard_leds(); } } + +void keyboard_set_leds(uint8_t leds) +{ + led_set(leds); +}