@ -66,10 +66,6 @@
# define RGB_DISABLE_WHEN_USB_SUSPENDED false
# endif
# ifndef EECONFIG_RGB_MATRIX
# define EECONFIG_RGB_MATRIX EECONFIG_RGBLIGHT
# endif
# if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
@ -116,12 +112,12 @@ uint8_t rgb_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}};
static last_hit_t last_hit_buffer ;
# endif // RGB_MATRIX_KEYREACTIVE_ENABLED
uint32_t eeconfig_read_rgb_matrix ( void ) {
return eeprom_read_dword ( EECONFIG_RGB_MATRIX ) ;
void eeconfig_read_rgb_matrix ( void ) {
eeprom_read_block ( & rgb_matrix_config , EECONFIG_RGB_MATRIX , sizeof ( rgb_matrix_config ) ) ;
}
void eeconfig_update_rgb_matrix ( uint32_t val ) {
eeprom_update_ dword( EECONFIG_RGB_MATRIX , val ) ;
void eeconfig_update_rgb_matrix ( void ) {
eeprom_update_ block( & rgb_matrix_config , EECONFIG_RGB_MATRIX , sizeof ( rgb_matrix_config ) ) ;
}
void eeconfig_update_rgb_matrix_default ( void ) {
@ -130,7 +126,7 @@ void eeconfig_update_rgb_matrix_default(void) {
rgb_matrix_config . mode = RGB_MATRIX_STARTUP_MODE ;
rgb_matrix_config . hsv = ( HSV ) { 0 , UINT8_MAX , RGB_MATRIX_MAXIMUM_BRIGHTNESS } ;
rgb_matrix_config . speed = UINT8_MAX / 2 ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void eeconfig_debug_rgb_matrix ( void ) {
@ -431,12 +427,10 @@ void rgb_matrix_init(void) {
eeconfig_update_rgb_matrix_default ( ) ;
}
rgb_matrix_config . raw = eeconfig_read_rgb_matrix ( ) ;
rgb_matrix_config . speed = UINT8_MAX / 2 ; //EECONFIG needs to be increased to support this
eeconfig_read_rgb_matrix ( ) ;
if ( ! rgb_matrix_config . mode ) {
dprintf ( " rgb_matrix_init_drivers rgb_matrix_config.mode = 0. Write default values to EEPROM. \n " ) ;
eeconfig_update_rgb_matrix_default ( ) ;
rgb_matrix_config . raw = eeconfig_read_rgb_matrix ( ) ;
}
eeconfig_debug_rgb_matrix ( ) ; // display current eeprom values
}
@ -448,12 +442,12 @@ void rgb_matrix_set_suspend_state(bool state) {
void rgb_matrix_toggle ( void ) {
rgb_matrix_config . enable ^ = 1 ;
rgb_task_state = STARTING ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_enable ( void ) {
rgb_matrix_enable_noeeprom ( ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_enable_noeeprom ( void ) {
@ -464,7 +458,7 @@ void rgb_matrix_enable_noeeprom(void) {
void rgb_matrix_disable ( void ) {
rgb_matrix_disable_noeeprom ( ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_disable_noeeprom ( void ) {
@ -478,7 +472,7 @@ void rgb_matrix_step(void) {
if ( rgb_matrix_config . mode > = RGB_MATRIX_EFFECT_MAX )
rgb_matrix_config . mode = 1 ;
rgb_task_state = STARTING ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_step_reverse ( void ) {
@ -486,49 +480,49 @@ void rgb_matrix_step_reverse(void) {
if ( rgb_matrix_config . mode < 1 )
rgb_matrix_config . mode = RGB_MATRIX_EFFECT_MAX - 1 ;
rgb_task_state = STARTING ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_increase_hue ( void ) {
rgb_matrix_config . hsv . h + = RGB_MATRIX_HUE_STEP ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_decrease_hue ( void ) {
rgb_matrix_config . hsv . h - = RGB_MATRIX_HUE_STEP ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_increase_sat ( void ) {
rgb_matrix_config . hsv . s = qadd8 ( rgb_matrix_config . hsv . s , RGB_MATRIX_SAT_STEP ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_decrease_sat ( void ) {
rgb_matrix_config . hsv . s = qsub8 ( rgb_matrix_config . hsv . s , RGB_MATRIX_SAT_STEP ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_increase_val ( void ) {
rgb_matrix_config . hsv . v = qadd8 ( rgb_matrix_config . hsv . v , RGB_MATRIX_VAL_STEP ) ;
if ( rgb_matrix_config . hsv . v > RGB_MATRIX_MAXIMUM_BRIGHTNESS )
rgb_matrix_config . hsv . v = RGB_MATRIX_MAXIMUM_BRIGHTNESS ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_decrease_val ( void ) {
rgb_matrix_config . hsv . v = qsub8 ( rgb_matrix_config . hsv . v , RGB_MATRIX_VAL_STEP ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_increase_speed ( void ) {
rgb_matrix_config . speed = qadd8 ( rgb_matrix_config . speed , RGB_MATRIX_SPD_STEP ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ; //EECONFIG needs to be increased to support this
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_decrease_speed ( void ) {
rgb_matrix_config . speed = qsub8 ( rgb_matrix_config . speed , RGB_MATRIX_SPD_STEP ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ; //EECONFIG needs to be increased to support this
eeconfig_update_rgb_matrix ( ) ;
}
led_flags_t rgb_matrix_get_flags ( void ) {
@ -542,7 +536,7 @@ void rgb_matrix_set_flags(led_flags_t flags) {
void rgb_matrix_mode ( uint8_t mode ) {
rgb_matrix_config . mode = mode ;
rgb_task_state = STARTING ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_mode_noeeprom ( uint8_t mode ) {
@ -555,7 +549,7 @@ uint8_t rgb_matrix_get_mode(void) {
void rgb_matrix_sethsv ( uint16_t hue , uint8_t sat , uint8_t val ) {
rgb_matrix_sethsv_noeeprom ( hue , sat , val ) ;
eeconfig_update_rgb_matrix ( rgb_matrix_config . raw ) ;
eeconfig_update_rgb_matrix ( ) ;
}
void rgb_matrix_sethsv_noeeprom ( uint16_t hue , uint8_t sat , uint8_t val ) {