summaryrefslogtreecommitdiff
path: root/keyboards/planck/ez/ez.c
diff options
context:
space:
mode:
authorFlorian Didron <fdidron@users.noreply.github.com>2019-12-06 09:25:39 +0900
committerGitHub <noreply@github.com>2019-12-06 09:25:39 +0900
commit13e1dd3d53a75840cce9c7fa52fd6d8d26a36a9a (patch)
treea51a6bd431d848279d8c03357ac05ecfb25312ce /keyboards/planck/ez/ez.c
parent1d600f09a8b813f77d8b6ff4cc55484b7154ae25 (diff)
parent038cef3054a816021a797c217d147057c8edd926 (diff)
Merge pull request #222 from zsa/staging
Firmware 15
Diffstat (limited to 'keyboards/planck/ez/ez.c')
-rw-r--r--keyboards/planck/ez/ez.c59
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