Add keyboard LED control via Bluetooth
This commit is contained in:
parent
2015027da3
commit
bfd2d969b4
@ -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)
|
static void send_keyboard(report_keyboard_t *report)
|
||||||
{
|
{
|
||||||
@ -199,7 +201,7 @@ host_driver_t rn42_config_driver = {
|
|||||||
config_send_consumer
|
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_keyboard(report_keyboard_t *report) {}
|
||||||
static void config_send_mouse(report_mouse_t *report) {}
|
static void config_send_mouse(report_mouse_t *report) {}
|
||||||
static void config_send_system(uint16_t data) {}
|
static void config_send_system(uint16_t data) {}
|
||||||
|
@ -15,5 +15,6 @@ bool rn42_rts(void);
|
|||||||
void rn42_cts_hi(void);
|
void rn42_cts_hi(void);
|
||||||
void rn42_cts_lo(void);
|
void rn42_cts_lo(void);
|
||||||
bool rn42_linked(void);
|
bool rn42_linked(void);
|
||||||
|
void rn42_set_leds(uint8_t l);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "lufa.h"
|
#include "lufa.h"
|
||||||
#include "rn42_task.h"
|
#include "rn42_task.h"
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
|
#include "debug.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
#include "battery.h"
|
#include "battery.h"
|
||||||
@ -45,7 +46,6 @@ void rn42_task(void)
|
|||||||
// LED Out report: 0xFE, 0x02, 0x01, <leds>
|
// LED Out report: 0xFE, 0x02, 0x01, <leds>
|
||||||
// To get the report over UART set bit3 with SH, command.
|
// To get the report over UART set bit3 with SH, command.
|
||||||
static enum {LED_INIT, LED_FE, LED_02, LED_01} state = LED_INIT;
|
static enum {LED_INIT, LED_FE, LED_02, LED_01} state = LED_INIT;
|
||||||
xprintf("%02X\n", c);
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case LED_INIT:
|
case LED_INIT:
|
||||||
if (c == 0xFE) state = LED_FE;
|
if (c == 0xFE) state = LED_FE;
|
||||||
@ -60,8 +60,8 @@ void rn42_task(void)
|
|||||||
else state = LED_INIT;
|
else state = LED_INIT;
|
||||||
break;
|
break;
|
||||||
case LED_01:
|
case LED_01:
|
||||||
// TODO: move to rn42.c and make accessible with keyboard_leds()
|
dprintf("LED status: %02X\n", c);
|
||||||
xprintf("LED status: %02X\n", c);
|
rn42_set_leds(c);
|
||||||
state = LED_INIT;
|
state = LED_INIT;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user