summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrashna Jael're <drashna@live.com>2020-08-05 01:53:59 -0700
committerDrashna Jael're <drashna@live.com>2020-08-05 01:57:56 -0700
commitb8b71a7be2565331f242c31f76a35f1229249325 (patch)
treea04238c77a6e743e703c8c2f5c074005e8d7fb82
parentf4f158ad55068068b8ddce05cdd401825ccd7e67 (diff)
Add RGB Sleep toggle featurefeat/rgb_sleep
-rw-r--r--keyboards/moonlander/moonlander.c31
-rw-r--r--keyboards/moonlander/moonlander.h6
-rw-r--r--keyboards/moonlander/rules.mk4
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