summary refs log tree commit diff
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2022-07-12 22:18:02 -0700
committerGitHub <noreply@github.com>2022-07-12 22:18:02 -0700
commit1dfe2bb49ab9cae1450697bf95d7a4c7bfc18bab (patch)
tree6804cb3119b6d2a78cc86fb2428d780daba15196
parent34fec2c07d8ac8129be06cd31d69aa98b21e64dd (diff)
Update LED/RGB Matrix flag function behavior (#17651)
-rw-r--r--quantum/led_matrix/led_matrix.c14
-rw-r--r--quantum/led_matrix/led_matrix.h1
-rw-r--r--quantum/rgb_matrix/rgb_matrix.c12
-rw-r--r--quantum/rgb_matrix/rgb_matrix.h1
4 files changed, 25 insertions, 3 deletions
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c
index 38ed79bed0..75a0aba5a0 100644
--- a/quantum/led_matrix/led_matrix.c
+++ b/quantum/led_matrix/led_matrix.c
@@ -618,10 +618,20 @@ void led_matrix_decrease_speed(void) {
     led_matrix_decrease_speed_helper(true);
 }
 
+void led_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) {
+    led_matrix_config.flags = flags;
+    eeconfig_flag_led_matrix(write_to_eeprom);
+    dprintf("led matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_config.flags);
+}
+
 led_flags_t led_matrix_get_flags(void) {
-    return led_matrix_eeconfig.flags;
+    return led_matrix_config.flags;
 }
 
 void led_matrix_set_flags(led_flags_t flags) {
-    led_matrix_eeconfig.flags = flags;
+    led_matrix_set_flags_eeprom_helper(flags, true);
+}
+
+void led_matrix_set_flags_noeeprom(led_flags_t flags) {
+    led_matrix_set_flags_eeprom_helper(flags, false);
 }
diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h
index d21f36e295..b2abec7eb1 100644
--- a/quantum/led_matrix/led_matrix.h
+++ b/quantum/led_matrix/led_matrix.h
@@ -158,6 +158,7 @@ void        led_matrix_decrease_speed(void);
 void        led_matrix_decrease_speed_noeeprom(void);
 led_flags_t led_matrix_get_flags(void);
 void        led_matrix_set_flags(led_flags_t flags);
+void        led_matrix_set_flags_noeeprom(led_flags_t flags);
 
 typedef struct {
     /* Perform any initialisation required for the other driver functions to work. */
diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c
index a51e379025..2730686839 100644
--- a/quantum/rgb_matrix/rgb_matrix.c
+++ b/quantum/rgb_matrix/rgb_matrix.c
@@ -731,10 +731,20 @@ void rgb_matrix_decrease_speed(void) {
     rgb_matrix_decrease_speed_helper(true);
 }
 
+void rgb_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) {
+    rgb_matrix_config.flags = flags;
+    eeconfig_flag_rgb_matrix(write_to_eeprom);
+    dprintf("rgb matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags);
+}
+
 led_flags_t rgb_matrix_get_flags(void) {
     return rgb_matrix_config.flags;
 }
 
 void rgb_matrix_set_flags(led_flags_t flags) {
-    rgb_matrix_config.flags = flags;
+    rgb_matrix_set_flags_eeprom_helper(flags, true);
+}
+
+void rgb_matrix_set_flags_noeeprom(led_flags_t flags) {
+    rgb_matrix_set_flags_eeprom_helper(flags, false);
 }
diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h
index 359d507a4d..fc9fc3e020 100644
--- a/quantum/rgb_matrix/rgb_matrix.h
+++ b/quantum/rgb_matrix/rgb_matrix.h
@@ -182,6 +182,7 @@ void        rgb_matrix_increase_speed_noeeprom(void);
 void        rgb_matrix_decrease_speed(void);
 void        rgb_matrix_decrease_speed_noeeprom(void);
 led_flags_t rgb_matrix_get_flags(void);
+led_flags_t rgb_matrix_get_flags_noeeprom(void);
 void        rgb_matrix_set_flags(led_flags_t flags);
 
 #ifndef RGBLIGHT_ENABLE