summaryrefslogtreecommitdiff
path: root/quantum/oryx.c
diff options
context:
space:
mode:
authorDrashna Jael're <drashna@live.com>2020-01-15 02:14:48 -0800
committerFlorian Didron <fdidron@users.noreply.github.com>2020-02-26 10:15:12 +0900
commit3b71e1e8196d5db7e82a36edc3f0f0a8d3d46ee3 (patch)
treecdcdf7a4f55eeef6f74c5dcd72f6a19e4c84f6b9 /quantum/oryx.c
parent5c1c41462a1f9d4002e5955ba749f616b4d13ca0 (diff)
Implement core communication
Diffstat (limited to 'quantum/oryx.c')
-rw-r--r--quantum/oryx.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/quantum/oryx.c b/quantum/oryx.c
index b99b0106dd..ea34481d84 100644
--- a/quantum/oryx.c
+++ b/quantum/oryx.c
@@ -191,3 +191,40 @@ void oryx_layer_event(void) {
}
bool is_oryx_live_training_enabled(void) { return oryx_state_live_training_enabled; }
+
+bool process_record_oryx(uint16_t keycode, keyrecord_t *record) {
+ if(is_oryx_live_training_enabled()) {
+ uint8_t event[5];
+ event[0] = WEBUSB_STATUS_OK;
+ 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;
+ webusb_send(event, sizeof(event));
+ }
+
+ switch (keycode) {
+ case WEBUSB_PAIR:
+ if (record->event.pressed) {
+ webusb_state.pairing = true;
+ }
+ return false;
+ case MACRO00 ... MACRO15:
+ if (record->event.pressed) {
+ dynamic_keymap_macro_send(keycode - MACRO00);
+ }
+ return false;
+ }
+ return true;
+}
+
+void layer_state_set_oryx(layer_state_t state) {
+ if(is_oryx_live_training_enabled()) {
+ uint8_t event[4];
+ event[0] = WEBUSB_STATUS_OK;
+ event[1] = ORYX_EVT_LAYER;
+ event[2] = get_highest_layer(state);
+ event[3] = WEBUSB_STOP_BIT;
+ webusb_send(event, sizeof(event));
+ }
+}