~ruther/qmk_firmware

eb8ace0855b36be04d2fc348a9afde7f74d64d1a — Adam Lickel 3 years ago 119cadb
RGB Matrix: Reload from EEPROM (#15923)

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
3 files changed, 14 insertions(+), 0 deletions(-)

M docs/feature_rgb_matrix.md
M quantum/rgb_matrix/rgb_matrix.c
M quantum/rgb_matrix/rgb_matrix.h
M docs/feature_rgb_matrix.md => docs/feature_rgb_matrix.md +1 -0
@@ 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  |

M quantum/rgb_matrix/rgb_matrix.c => quantum/rgb_matrix/rgb_matrix.c +10 -0
@@ 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) {

M quantum/rgb_matrix/rgb_matrix.h => quantum/rgb_matrix/rgb_matrix.h +3 -0
@@ 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