]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - keyboard.c
fix for ps2_usb Makefile and circuit
[max/tmk_keyboard.git] / keyboard.c
index cb1c745e26bd2d3d50d2ad0157091a35fa0c5445..03db3257a2d83e4dac6295a2740f32f7618daf39 100644 (file)
@@ -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"
 #ifdef MOUSEKEY_ENABLE
 #include "mousekey.h"
 #endif
+/* TODO: shoud make new API */
+#ifdef USB_EXTRA_ENABLE
+#include "usb_extra.h"
+#include <util/delay.h>
+#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);
+}