#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)
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);
}
_delay_ms(1000);
}
-*/
#endif
else if (IS_KEY(code)) {
host_add_key(code);
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
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);
+}