Sfoglia il codice sorgente

RGB Matrix: Reload from EEPROM (#15923)

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Adam Lickel 3 anni fa
parent
commit
eb8ace0855

+ 1 - 0
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  |

+ 10 - 0
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) {

+ 3 - 0
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