summaryrefslogtreecommitdiff
path: root/keyboard
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2014-09-22 14:20:49 +0900
committertmk <nobody@nowhere>2014-09-22 14:20:49 +0900
commitbfd2d969b48eb2f381137383c6262b60e03cf5b1 (patch)
treeeac3531c090ec37fe58e416157642927b3c30aa9 /keyboard
parent2015027da325e9f9b602af1f36ceeeebbcd6c78d (diff)
Add keyboard LED control via Bluetooth
Diffstat (limited to 'keyboard')
-rw-r--r--keyboard/hhkb_rn42/rn42/rn42.c6
-rw-r--r--keyboard/hhkb_rn42/rn42/rn42.h1
-rw-r--r--keyboard/hhkb_rn42/rn42/rn42_task.c6
3 files changed, 8 insertions, 5 deletions
diff --git a/keyboard/hhkb_rn42/rn42/rn42.c b/keyboard/hhkb_rn42/rn42/rn42.c
index bdffad7667..1565b4cf14 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 72cbb2d724..5283a3648c 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 31a415cedf..c3359ed506 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, <leds>
// 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: