diff options
author | Drashna Jael're <drashna@live.com> | 2020-08-05 01:53:59 -0700 |
---|---|---|
committer | Drashna Jael're <drashna@live.com> | 2020-08-05 01:57:56 -0700 |
commit | b8b71a7be2565331f242c31f76a35f1229249325 (patch) | |
tree | a04238c77a6e743e703c8c2f5c074005e8d7fb82 | |
parent | f4f158ad55068068b8ddce05cdd401825ccd7e67 (diff) |
Add RGB Sleep toggle featurefeat/rgb_sleep
-rw-r--r-- | keyboards/moonlander/moonlander.c | 31 | ||||
-rw-r--r-- | keyboards/moonlander/moonlander.h | 6 | ||||
-rw-r--r-- | keyboards/moonlander/rules.mk | 4 |
3 files changed, 38 insertions, 3 deletions
diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index ae043080f1..6dbea363be 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -319,7 +319,7 @@ led_config_t g_led_config = { { // clang-format on void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); + rgb_matrix_set_suspend_state(keyboard_config.rgb_matrix_sleep_enable); suspend_power_down_user(); } @@ -416,7 +416,36 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { eeconfig_update_kb(keyboard_config.raw); } return false; + case RGB_SLEEP_TOG: + if (record->event.pressed) { + keyboard_config.rgb_matrix_sleep_enable ^= true; + eeconfig_update_kb(keyboard_config.raw); + } + break; #endif } return process_record_user(keycode, record); } + +void matrix_init_kb(void) { + keyboard_config.raw = eeconfig_read_kb(); + +#ifdef RGB_MATRIX_ENABLE + if (keyboard_config.rgb_matrix_enable) { + rgb_matrix_set_flags(LED_FLAG_ALL); + } else { + rgb_matrix_set_flags(LED_FLAG_NONE); + } +#endif +} + +void eeconfig_init_kb(void) { // EEPROM is getting reset! + keyboard_config.raw = 0; + keyboard_config.rgb_matrix_enable = true; +#ifndef MOONLANDER_PRODUCTION_TESTING + keyboard_config.rgb_matrix_sleep_enable = true; +#endif + eeconfig_update_kb(keyboard_config.raw); + eeconfig_update_rgb_matrix_default(); + eeconfig_init_user(); +} diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index 399a6a6ec3..123ba5f5b7 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -57,14 +57,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. enum planck_ez_keycodes { TOGGLE_LAYER_COLOR = SAFE_RANGE, + RGB_SLEEP_TOG, ML_SAFE_RANGE, }; typedef union { uint32_t raw; struct { - bool disable_layer_led :1; - bool rgb_matrix_enable :1; + bool disable_layer_led :1; + bool rgb_matrix_enable :1; + bool rgb_matrix_sleep_enable :1; }; } keyboard_config_t; diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk index f481b60763..1be872f49b 100644 --- a/keyboards/moonlander/rules.mk +++ b/keyboards/moonlander/rules.mk @@ -22,3 +22,7 @@ EEPROM_DRIVER = i2c #project specific files SRC = matrix.c QUANTUM_LIB_SRC += i2c_master.c + +ifeq ($(strip $(MOONLANDER_PRODUCTION_TESTING)), yes) + OPT_DEFS += -DMOONLANDER_PRODUCTION_TESTING +endif |