summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrashna Jael're <drashna@live.com>2020-01-14 17:48:23 -0800
committerFlorian Didron <fdidron@users.noreply.github.com>2020-02-26 10:15:12 +0900
commit5ed3ecdd73913ee484777ab33840f3ece5d3571f (patch)
treefefde0dbeadfa6cbf379e63784fdc5b48c769431
parent259cc072029c3358827c7ef6c2462a3d4a6a1f52 (diff)
Add toggle for live training
-rw-r--r--keyboards/ergodox_ez/ergodox_ez.c12
-rw-r--r--keyboards/planck/ez/ez.c12
-rw-r--r--quantum/oryx.c33
-rw-r--r--quantum/oryx.h11
-rw-r--r--tmk_core/common/webusb.h5
5 files changed, 51 insertions, 22 deletions
diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c
index 5d121133aa..bd4a6fa78d 100644
--- a/keyboards/ergodox_ez/ergodox_ez.c
+++ b/keyboards/ergodox_ez/ergodox_ez.c
@@ -336,11 +336,11 @@ void keyboard_post_init_kb(void) {
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
-#ifdef WEBUSB_ENABLE
- if(webusb_state.paired == true) {
+#ifdef ORYX_ENABLE
+ if(is_oryx_live_training_enabled()) {
uint8_t event[5];
event[0] = WEBUSB_STATUS_OK;
- event[1] = record->event.pressed ? WEBUSB_EVT_KEYDOWN : WEBUSB_EVT_KEYUP;
+ event[1] = record->event.pressed ? ORYX_EVT_KEYDOWN : ORYX_EVT_KEYUP;
event[2] = record->event.key.col;
event[3] = record->event.key.row;
event[4] = WEBUSB_STOP_BIT;
@@ -399,7 +399,7 @@ void eeconfig_init_kb(void) { // EEPROM is getting reset!
eeconfig_init_user();
}
-#ifdef WEBUSB_ENABLE
+#ifdef ORYX_ENABLE
static uint16_t loops = 0;
static bool is_on = false;
@@ -436,10 +436,10 @@ void matrix_scan_kb(void) {
uint32_t layer_state_set_kb(uint32_t state) {
state = layer_state_set_user(state);
uint8_t layer = biton32(state);
- if(webusb_state.paired == true) {
+ if(is_oryx_live_training_enabled()) {
uint8_t event[4];
event[0] = WEBUSB_STATUS_OK;
- event[1] = WEBUSB_EVT_LAYER;
+ event[1] = ORYX_EVT_LAYER;
event[2] = layer;
event[3] = WEBUSB_STOP_BIT;
webusb_send(event, sizeof(event));
diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c
index fdb470b2e2..1e8a9d4e12 100644
--- a/keyboards/planck/ez/ez.c
+++ b/keyboards/planck/ez/ez.c
@@ -247,11 +247,11 @@ uint32_t layer_state_set_kb(uint32_t state) {
planck_ez_right_led_off();
state = layer_state_set_user(state);
uint8_t layer = biton32(state);
-#ifdef WEBUSB_ENABLE
- if(webusb_state.paired == true) {
+#ifdef ORXY_ENABLE
+ if(is_oryx_live_training_enabled()) {
uint8_t event[4];
event[0] = WEBUSB_STATUS_OK;
- event[1] = WEBUSB_EVT_LAYER;
+ event[1] = ORYX_EVT_LAYER;
event[2] = layer;
event[3] = WEBUSB_STOP_BIT;
webusb_send(event, sizeof(event));
@@ -275,11 +275,11 @@ uint32_t layer_state_set_kb(uint32_t state) {
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
-#ifdef WEBUSB_ENABLE
- if(webusb_state.paired == true) {
+#ifdef ORYX_ENABLE
+ if(is_oryx_live_training_enabled()) {
uint8_t event[5];
event[0] = WEBUSB_STATUS_OK;
- event[1] = record->event.pressed ? WEBUSB_EVT_KEYDOWN : WEBUSB_EVT_KEYUP;
+ event[1] = record->event.pressed ? ORYX_EVT_KEYDOWN : ORYX_EVT_KEYUP;
event[2] = record->event.key.col;
event[3] = record->event.key.row;
event[4] = WEBUSB_STOP_BIT;
diff --git a/quantum/oryx.c b/quantum/oryx.c
index 93ee50e935..7f0b60a797 100644
--- a/quantum/oryx.c
+++ b/quantum/oryx.c
@@ -1,18 +1,41 @@
#include "oryx.h"
-bool webusb_state_live_training_enabled;
+bool oryx_state_live_training_enabled;
bool webusb_receive_oryx(uint8_t *data, uint8_t length) {
uint8_t command = data[0];
+ uint8_t param = data[1];
switch (command) {
case ORYX_GET_LAYER:
oryx_layer_event();
return true; break;
+ case ORYX_CMD_LIVE_TRAINING: {
+ uint8_t event[4];
+ switch (param) { // 0 for state, 1 for off, 2 for on
+ case 0:
+ break;
+ case 1:
+ oryx_state_live_training_enabled = false;
+ break;
+ case 2:
+ oryx_state_live_training_enabled = true;
+ break;
+ default:
+ webusb_error(WEBUSB_STATUS_UNKNOWN_COMMAND);
+ return true;
+ }
+ event[0] = WEBUSB_STATUS_OK;
+ event[1] = WEBUSB_EVT_PAIRED;
+ event[2] = oryx_state_live_training_enabled;
+ event[3] = WEBUSB_STOP_BIT;
+ webusb_send(event, sizeof(event));
+ return true;
+ }
+ default:
+ return webusb_receive_kb(data, length);
}
-
- return false;
}
@@ -28,3 +51,7 @@ void oryx_layer_event(void) {
webusb_send(event, sizeof(event));
#endif
}
+
+bool is_oryx_live_training_enabled(void) {
+ return oryx_state_live_training_enabled;
+}
diff --git a/quantum/oryx.h b/quantum/oryx.h
index eaef5bd335..13ef72d548 100644
--- a/quantum/oryx.h
+++ b/quantum/oryx.h
@@ -8,12 +8,16 @@
#endif
#ifndef DYNAMIC_KEYMAP_ENABLE
-# error "Dynamic Keymaps are not enabled. It must be aenbled "
+# error "Dynamic Keymaps are not enabled. It must be enabled"
#endif
+// enum Oryx_Status_code {
+// PLACEHOLDER = WEBUSB_STATUS_SAFE_RANGE,
+// }
enum Oryx_Command_Code {
ORYX_GET_LAYER = WEBUSB_CMD_SAFE_RANGE,
+ ORYX_CMD_LIVE_TRAINING,
};
@@ -21,14 +25,15 @@ enum Oryx_Event_Code {
ORYX_EVT_KEYDOWN = WEBUSB_EVT_SAFE_RANGE,
ORYX_EVT_KEYUP,
ORYX_EVT_LAYER,
+ ORYX_EVT_LIVE_TRAINING
};
-extern bool webusb_state_live_training_enabled;
+extern bool oryx_state_live_training_enabled;
bool webusb_receive_oryx(uint8_t *data, uint8_t length);
void oryx_layer_event(void);
-
+bool is_oryx_live_training_enabled(void);
void keyboard_pre_init_oryx(void);
diff --git a/tmk_core/common/webusb.h b/tmk_core/common/webusb.h
index 7958cb4586..7bec7c50e1 100644
--- a/tmk_core/common/webusb.h
+++ b/tmk_core/common/webusb.h
@@ -28,6 +28,7 @@ enum Webusb_Status_Code {
WEBUSB_STATUS_NOT_PAIRED = -1,
WEBUSB_STATUS_OK,
WEBUSB_STATUS_UNKNOWN_COMMAND,
+ WEBUSB_STATUS_SAFE_RANGE,
};
enum Webusb_Command_Code {
@@ -35,7 +36,6 @@ enum Webusb_Command_Code {
WEBUSB_CMD_GET_FW_VERSION,
WEBUSB_CMD_SAFE_RANGE,
- WEBUSB_GET_LAYER,
};
enum Webusb_Event_Code {
@@ -43,7 +43,4 @@ enum Webusb_Event_Code {
WEBUSB_EVT_FW_VERSION,
WEBUSB_EVT_SAFE_RANGE,
- WEBUSB_EVT_KEYDOWN,
- WEBUSB_EVT_KEYUP,
- WEBUSB_EVT_LAYER,
};