feat: update examples + pairing process
This commit is contained in:
committed by
Florian Didron
parent
b3c0f3b0ef
commit
925c43c4c0
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user