From bfd2d969b48eb2f381137383c6262b60e03cf5b1 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 22 Sep 2014 14:20:49 +0900 Subject: [PATCH] Add keyboard LED control via Bluetooth --- keyboard/hhkb_rn42/rn42/rn42.c | 6 ++++-- keyboard/hhkb_rn42/rn42/rn42.h | 1 + keyboard/hhkb_rn42/rn42/rn42_task.c | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/keyboard/hhkb_rn42/rn42/rn42.c b/keyboard/hhkb_rn42/rn42/rn42.c index bdffad766..1565b4cf1 100644 --- a/keyboard/hhkb_rn42/rn42/rn42.c +++ b/keyboard/hhkb_rn42/rn42/rn42.c @@ -101,7 +101,9 @@ bool rn42_linked(void) } -static uint8_t keyboard_leds(void) { return 0; } +static uint8_t leds = 0; +static uint8_t keyboard_leds(void) { return leds; } +void rn42_set_leds(uint8_t l) { leds = l; } static void send_keyboard(report_keyboard_t *report) { @@ -199,7 +201,7 @@ host_driver_t rn42_config_driver = { config_send_consumer }; -static uint8_t config_keyboard_leds(void) { return 0; } +static uint8_t config_keyboard_leds(void) { return leds; } static void config_send_keyboard(report_keyboard_t *report) {} static void config_send_mouse(report_mouse_t *report) {} static void config_send_system(uint16_t data) {} diff --git a/keyboard/hhkb_rn42/rn42/rn42.h b/keyboard/hhkb_rn42/rn42/rn42.h index 72cbb2d72..5283a3648 100644 --- a/keyboard/hhkb_rn42/rn42/rn42.h +++ b/keyboard/hhkb_rn42/rn42/rn42.h @@ -15,5 +15,6 @@ bool rn42_rts(void); void rn42_cts_hi(void); void rn42_cts_lo(void); bool rn42_linked(void); +void rn42_set_leds(uint8_t l); #endif diff --git a/keyboard/hhkb_rn42/rn42/rn42_task.c b/keyboard/hhkb_rn42/rn42/rn42_task.c index 31a415ced..c3359ed50 100644 --- a/keyboard/hhkb_rn42/rn42/rn42_task.c +++ b/keyboard/hhkb_rn42/rn42/rn42_task.c @@ -7,6 +7,7 @@ #include "lufa.h" #include "rn42_task.h" #include "print.h" +#include "debug.h" #include "timer.h" #include "command.h" #include "battery.h" @@ -45,7 +46,6 @@ void rn42_task(void) // LED Out report: 0xFE, 0x02, 0x01, // To get the report over UART set bit3 with SH, command. static enum {LED_INIT, LED_FE, LED_02, LED_01} state = LED_INIT; - xprintf("%02X\n", c); switch (state) { case LED_INIT: if (c == 0xFE) state = LED_FE; @@ -60,8 +60,8 @@ void rn42_task(void) else state = LED_INIT; break; case LED_01: - // TODO: move to rn42.c and make accessible with keyboard_leds() - xprintf("LED status: %02X\n", c); + dprintf("LED status: %02X\n", c); + rn42_set_leds(c); state = LED_INIT; break; default: