From ac7de6603c8a6f08aaddcc6ae0d278ef53aa7f30 Mon Sep 17 00:00:00 2001 From: Florian Didron Date: Wed, 4 Dec 2019 19:15:04 +0900 Subject: feat: add get layer command --- tmk_core/common/webusb.c | 19 ++++++++++++++++++- tmk_core/common/webusb.h | 4 +++- 2 files changed, 21 insertions(+), 2 deletions(-) (limited to 'tmk_core/common') diff --git a/tmk_core/common/webusb.c b/tmk_core/common/webusb.c index e11e63a9da..2488e75de7 100644 --- a/tmk_core/common/webusb.c +++ b/tmk_core/common/webusb.c @@ -1,3 +1,4 @@ +#include QMK_KEYBOARD_H #include #include "webusb.h" #include "wait.h" @@ -41,13 +42,29 @@ void webusb_receive(uint8_t *data, uint8_t length) { if(webusb_state.paired == true) { switch(command) { - //Handle commands in here + //Handle commands in here + case WEBUSB_GET_LAYER: + webusb_layer_event(); + break; + default: + break; } } else { webusb_error(WEBUSB_STATUS_NOT_PAIRED); } }; +void webusb_layer_event() { + uint8_t layer; + uint8_t event[4]; + layer = biton32(layer_state); + event[0] = WEBUSB_STATUS_OK; + event[1] = WEBUSB_EVT_LAYER; + event[2] = layer; + event[3] = WEBUSB_STOP_BIT; + webusb_send(event, sizeof(event)); +} + void webusb_error(uint8_t code) { uint8_t buffer[1]; buffer[0] = code; diff --git a/tmk_core/common/webusb.h b/tmk_core/common/webusb.h index 561a1f52dd..18e884f1ab 100644 --- a/tmk_core/common/webusb.h +++ b/tmk_core/common/webusb.h @@ -12,6 +12,7 @@ void webusb_receive(uint8_t *data, uint8_t length); void webusb_send(uint8_t *data, uint8_t length); +void webusb_layer_event(void); void webusb_error(uint8_t); void webusb_set_pairing_state(void); @@ -30,7 +31,8 @@ enum Webusb_Status_Code { enum Webusb_Command_Code { WEBUSB_CMD_PAIR, - WEBUSB_GET_FW_VERSION + WEBUSB_GET_FW_VERSION, + WEBUSB_GET_LAYER }; enum Webusb_Event_Code { -- cgit v1.2.3