~ruther/qmk_firmware

bfd2d969b48eb2f381137383c6262b60e03cf5b1 — tmk 11 years ago 2015027
Add keyboard LED control via Bluetooth
M keyboard/hhkb_rn42/rn42/rn42.c => keyboard/hhkb_rn42/rn42/rn42.c +4 -2
@@ 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) {}

M keyboard/hhkb_rn42/rn42/rn42.h => keyboard/hhkb_rn42/rn42/rn42.h +1 -0
@@ 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

M keyboard/hhkb_rn42/rn42/rn42_task.c => keyboard/hhkb_rn42/rn42/rn42_task.c +3 -3
@@ 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: