summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Didron <fd@librem.one>2019-12-04 19:15:04 +0900
committerDrashna Jael're <drashna@live.com>2019-12-05 16:03:55 -0800
commit52f5c344c4ee483f7a10ec6eae69557388cadfb7 (patch)
treea51a6bd431d848279d8c03357ac05ecfb25312ce
parent0f319b48e62d53bcb0c0601a723893afd1c93505 (diff)
feat: add get layer command
-rw-r--r--tmk_core/common/webusb.c19
-rw-r--r--tmk_core/common/webusb.h4
2 files changed, 21 insertions, 2 deletions
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 <string.h>
#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 {