[Keyboard] Updates to ZSA boards (#6513)
* Update Layer functions to use layer_state_t in ZSA Boards * Update Music Mask for ZSA boards Fixes an issue with the board getting stuck on Adjust layer when activating music mode * Add Support for SMART LED Toggle to Planck EZ * Add support for SMART LED toggle in Ergodox EZ * Ifdef swiss cheeze for Oryx Configurator * Documentation and updates * Add Oryx Keymap * Add option to configure the layers for the Layer Indicator * Update keymap with better examples * Make sure eeprom is initialized before reading from it * Force flush of LED matrix when suspending board This fixes an issue where the LEDs don't fully clear sometimes when the host system goes to sleep * Enable RGB Sleeping by default * Add clarification about planck ez led layer config
This commit is contained in:
parent
1c5b0cbbeb
commit
94efa18c28
12 changed files with 629 additions and 11 deletions
|
@ -16,8 +16,8 @@
|
|||
#include "ez.h"
|
||||
#include "ch.h"
|
||||
#include "hal.h"
|
||||
keyboard_config_t keyboard_config;
|
||||
|
||||
keyboard_config_t keyboard_config;
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
|
@ -106,6 +106,7 @@ led_config_t g_led_config = { {
|
|||
} };
|
||||
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
@ -207,33 +208,65 @@ void led_initialize_hardware(void) {
|
|||
}
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
// read kb settings from eeprom
|
||||
keyboard_config.raw = eeconfig_read_kb();
|
||||
|
||||
// initialize settings for front LEDs
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR)
|
||||
if (keyboard_config.rgb_matrix_enable) {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
} else {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
}
|
||||
#endif
|
||||
led_initialize_hardware();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR)
|
||||
void keyboard_post_init_kb(void) {
|
||||
rgb_matrix_enable_noeeprom();
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
#endif
|
||||
|
||||
void eeconfig_init_kb(void) { // EEPROM is getting reset!
|
||||
keyboard_config.raw = 0;
|
||||
keyboard_config.rgb_matrix_enable = true;
|
||||
keyboard_config.led_level = 4;
|
||||
eeconfig_update_kb(keyboard_config.raw);
|
||||
eeconfig_init_user();
|
||||
}
|
||||
|
||||
|
||||
#ifdef ORYX_CONFIGURATOR
|
||||
|
||||
#ifndef PLANCK_EZ_USER_LEDS
|
||||
|
||||
#ifndef PLANCK_EZ_LED_LOWER
|
||||
# define PLANCK_EZ_LED_LOWER 3
|
||||
#endif
|
||||
#ifndef PLANCK_EZ_LED_RAISE
|
||||
# define PLANCK_EZ_LED_RAISE 4
|
||||
#endif
|
||||
#ifndef PLANCK_EZ_LED_ADJUST
|
||||
# define PLANCK_EZ_LED_ADJUST 6
|
||||
#endif
|
||||
|
||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||
planck_ez_left_led_off();
|
||||
planck_ez_right_led_off();
|
||||
state = layer_state_set_user(state);
|
||||
uint8_t layer = biton32(state);
|
||||
switch (layer) {
|
||||
case 3:
|
||||
case PLANCK_EZ_LED_LOWER:
|
||||
planck_ez_left_led_on();
|
||||
break;
|
||||
case 4:
|
||||
case PLANCK_EZ_LED_RAISE:
|
||||
planck_ez_right_led_on();
|
||||
break;
|
||||
case 6:
|
||||
case PLANCK_EZ_LED_ADJUST:
|
||||
planck_ez_right_led_on();
|
||||
planck_ez_left_led_on();
|
||||
break;
|
||||
|
@ -242,7 +275,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
|
|||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
|
@ -258,6 +291,51 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
|||
layer_state_set_kb(layer_state);
|
||||
}
|
||||
break;
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
case TOGGLE_LAYER_COLOR:
|
||||
if (record->event.pressed) {
|
||||
keyboard_config.disable_layer_led ^= 1;
|
||||
if (keyboard_config.disable_layer_led)
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
eeconfig_update_kb(keyboard_config.raw);
|
||||
}
|
||||
break;
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
keyboard_config.rgb_matrix_enable = false;
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
keyboard_config.rgb_matrix_enable = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
eeconfig_update_kb(keyboard_config.raw);
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
bool music_mask_kb(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case QK_LAYER_TAP ... QK_ONE_SHOT_LAYER_MAX:
|
||||
case QK_LAYER_TAP_TOGGLE ... QK_LAYER_MOD_MAX:
|
||||
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
|
||||
case AU_ON ... MUV_DE:
|
||||
case RESET:
|
||||
case EEP_RST:
|
||||
return false;
|
||||
default:
|
||||
return music_mask_user(keycode);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue