diff options
author | Drashna Jael're <drashna@live.com> | 2020-01-15 02:14:48 -0800 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2020-02-26 10:15:12 +0900 |
commit | 3b71e1e8196d5db7e82a36edc3f0f0a8d3d46ee3 (patch) | |
tree | cdcdf7a4f55eeef6f74c5dcd72f6a19e4c84f6b9 /quantum/oryx.c | |
parent | 5c1c41462a1f9d4002e5955ba749f616b4d13ca0 (diff) |
Implement core communication
Diffstat (limited to 'quantum/oryx.c')
-rw-r--r-- | quantum/oryx.c | 37 |
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)); + } +} |