diff options
author | Florian Didron <fd@librem.one> | 2019-11-20 09:41:42 +0900 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2019-12-06 08:20:51 +0900 |
commit | 925c43c4c0e9360d2fe0032b3c41c2a84e1a4d8b (patch) | |
tree | 1d2bcbbf5db10d3eddd249c3ac4835d4b6734e64 /keyboards/planck/ez | |
parent | b3c0f3b0eff91172ced5b51fb1232e47dfbd6753 (diff) |
feat: update examples + pairing process
Diffstat (limited to 'keyboards/planck/ez')
-rw-r--r-- | keyboards/planck/ez/ez.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 79310da10a..f34af7a290 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -16,6 +16,9 @@ #include "ez.h" #include "ch.h" #include "hal.h" +#ifdef WEBUSB_ENABLE +#include "webusb.h" +#endif keyboard_config_t keyboard_config; @@ -247,6 +250,16 @@ 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) { + uint8_t event[4]; + event[0] = WEBUSB_STATUS_OK; + event[1] = WEBUSB_EVT_LAYER; + event[2] = layer; + event[3] = WEBUSB_STOP_BIT; + webusb_send(event, sizeof(event)); + } +#endif switch (layer) { case 1: planck_ez_left_led_on(); @@ -265,6 +278,17 @@ 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) { + uint8_t event[5]; + event[0] = WEBUSB_STATUS_OK; + event[1] = record->event.pressed ? WEBUSB_EVT_KEYDOWN : WEBUSB_EVT_KEYUP; + event[2] = record->event.key.col; + event[3] = record->event.key.row; + event[4] = WEBUSB_STOP_BIT; + webusb_send(event, sizeof(event)); + } +#endif switch (keycode) { case LED_LEVEL: if (record->event.pressed) { @@ -325,3 +349,38 @@ bool music_mask_kb(uint16_t keycode) { } } #endif +#ifdef WEBUSB_ENABLE +static uint16_t loops = 0; +static bool is_on = false; + +void matrix_scan_kb(void) { + if(webusb_state.pairing == true) { + if(loops == 0) { + //lights off + } + if(loops % WEBUSB_BLINK_STEPS == 0) { + if(is_on) { + planck_ez_left_led_on(); + planck_ez_right_led_off(); + } + else { + planck_ez_left_led_off(); + planck_ez_right_led_on(); + } + is_on ^= 1; + } + if(loops > WEBUSB_BLINK_END * 2) { + webusb_state.pairing = false; + loops = 0; + planck_ez_left_led_off(); + planck_ez_right_led_off(); + } + loops++; + } + else if(loops > 0) { + loops = 0; + planck_ez_left_led_off(); + planck_ez_right_led_off(); + } +} +#endif |