summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Lickel <adam@lickel.com>2022-02-04 19:08:48 -0800
committerGitHub <noreply@github.com>2022-02-04 19:08:48 -0800
commiteb8ace0855b36be04d2fc348a9afde7f74d64d1a (patch)
tree94d119f71718e81b1ca7d94c0d29e8bac00e6662
parent119cadbaae15585b5140c1102a49364fbcf7cd0d (diff)
RGB Matrix: Reload from EEPROM (#15923)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
-rw-r--r--docs/feature_rgb_matrix.md1
-rw-r--r--quantum/rgb_matrix/rgb_matrix.c10
-rw-r--r--quantum/rgb_matrix/rgb_matrix.h3
3 files changed, 14 insertions, 0 deletions
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 0e2e68233f..53729ccc29 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -709,6 +709,7 @@ Where `28` is an unused index from `eeconfig.h`.
|`rgb_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) |
|`rgb_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 |
|`rgb_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) |
+|`rgb_matrix_reload_from_eeprom()` |Reload the effect configuration (enabled, mode and color) from EEPROM |
### Change Color :id=change-color
|Function |Description |
diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c
index 51e9554e2d..5a4556f097 100644
--- a/quantum/rgb_matrix/rgb_matrix.c
+++ b/quantum/rgb_matrix/rgb_matrix.c
@@ -164,6 +164,16 @@ void eeconfig_debug_rgb_matrix(void) {
dprintf("rgb_matrix_config.flags = %d\n", rgb_matrix_config.flags);
}
+void rgb_matrix_reload_from_eeprom(void) {
+ rgb_matrix_disable_noeeprom();
+ /* Reset back to what we have in eeprom */
+ eeconfig_init_rgb_matrix();
+ eeconfig_debug_rgb_matrix(); // display current eeprom values
+ if (rgb_matrix_config.enable) {
+ rgb_matrix_mode_noeeprom(rgb_matrix_config.mode);
+ }
+}
+
__attribute__((weak)) uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) { return 0; }
uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i) {
diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h
index a804d99abc..3cd77857be 100644
--- a/quantum/rgb_matrix/rgb_matrix.h
+++ b/quantum/rgb_matrix/rgb_matrix.h
@@ -136,6 +136,8 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max);
void rgb_matrix_init(void);
+void rgb_matrix_reload_from_eeprom(void);
+
void rgb_matrix_set_suspend_state(bool state);
bool rgb_matrix_get_suspend_state(void);
void rgb_matrix_toggle(void);
@@ -182,6 +184,7 @@ void rgb_matrix_set_flags(led_flags_t flags);
#ifndef RGBLIGHT_ENABLE
# define eeconfig_update_rgblight_current eeconfig_update_rgb_matrix
+# define rgblight_reload_from_eeprom rgb_matrix_reload_from_eeprom
# define rgblight_toggle rgb_matrix_toggle
# define rgblight_toggle_noeeprom rgb_matrix_toggle_noeeprom
# define rgblight_enable rgb_matrix_enable