From 334c93d81bb526dabe1b67c9a0ee821d675e0f4e Mon Sep 17 00:00:00 2001 From: Adam Lickel Date: Mon, 17 Jan 2022 16:04:29 -0800 Subject: [PATCH 1/3] RGB Matrix: Reload from EEPROM --- docs/feature_rgb_matrix.md | 1 + quantum/rgb_matrix/rgb_matrix.c | 17 +++++++++++++++++ quantum/rgb_matrix/rgb_matrix.h | 3 +++ 3 files changed, 21 insertions(+) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 676588b75053..65b4efdcff75 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -707,6 +707,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 51e9554e2dc4..bf9d160713cf 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -164,6 +164,23 @@ void eeconfig_debug_rgb_matrix(void) { dprintf("rgb_matrix_config.flags = %d\n", rgb_matrix_config.flags); } +uint32_t eeconfig_read_rgb_matrix(void) { +#ifdef EEPROM_ENABLE + return eeprom_read_dword(EECONFIG_RGB_MATRIX); +#else + return 0; +#endif +} + +void rgb_matrix_reload_from_eeprom(void) { + /* Reset back to what we have in eeprom */ + rgb_matrix_config.raw = eeconfig_read_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 a804d99abcc2..3cd77857be93 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 From d37bfefe30c12ada188c5667d972f50049a3eb9e Mon Sep 17 00:00:00 2001 From: Adam Lickel Date: Tue, 18 Jan 2022 09:07:02 -0800 Subject: [PATCH 2/3] Update quantum/rgb_matrix/rgb_matrix.c Review suggestion Co-authored-by: Sergey Vlasov --- quantum/rgb_matrix/rgb_matrix.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index bf9d160713cf..2a277266fbc7 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -164,17 +164,9 @@ void eeconfig_debug_rgb_matrix(void) { dprintf("rgb_matrix_config.flags = %d\n", rgb_matrix_config.flags); } -uint32_t eeconfig_read_rgb_matrix(void) { -#ifdef EEPROM_ENABLE - return eeprom_read_dword(EECONFIG_RGB_MATRIX); -#else - return 0; -#endif -} - void rgb_matrix_reload_from_eeprom(void) { /* Reset back to what we have in eeprom */ - rgb_matrix_config.raw = eeconfig_read_rgb_matrix(); + 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); From e8a9f696ec871d99f3957c5f78a2b14c530555e3 Mon Sep 17 00:00:00 2001 From: Adam Lickel Date: Mon, 31 Jan 2022 12:41:13 -0800 Subject: [PATCH 3/3] Update quantum/rgb_matrix/rgb_matrix.c Co-authored-by: Sergey Vlasov --- quantum/rgb_matrix/rgb_matrix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 2a277266fbc7..5a4556f09752 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -165,6 +165,7 @@ void eeconfig_debug_rgb_matrix(void) { } 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