@ -120,7 +120,9 @@ const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT;
EECONFIG_DEBOUNCE_HELPER ( led_matrix , EECONFIG_LED_MATRIX , led_matrix_eeconfig ) ;
EECONFIG_DEBOUNCE_HELPER ( led_matrix , EECONFIG_LED_MATRIX , led_matrix_eeconfig ) ;
void eeconfig_update_led_matrix ( void ) { eeconfig_flush_led_matrix ( true ) ; }
void eeconfig_update_led_matrix ( void ) {
eeconfig_flush_led_matrix ( true ) ;
}
void eeconfig_update_led_matrix_default ( void ) {
void eeconfig_update_led_matrix_default ( void ) {
dprintf ( " eeconfig_update_led_matrix_default \n " ) ;
dprintf ( " eeconfig_update_led_matrix_default \n " ) ;
@ -141,7 +143,9 @@ void eeconfig_debug_led_matrix(void) {
dprintf ( " led_matrix_eeconfig.flags = %d \n " , led_matrix_eeconfig . flags ) ;
dprintf ( " led_matrix_eeconfig.flags = %d \n " , led_matrix_eeconfig . flags ) ;
}
}
__attribute__ ( ( weak ) ) uint8_t led_matrix_map_row_column_to_led_kb ( uint8_t row , uint8_t column , uint8_t * led_i ) { return 0 ; }
__attribute__ ( ( weak ) ) uint8_t led_matrix_map_row_column_to_led_kb ( uint8_t row , uint8_t column , uint8_t * led_i ) {
return 0 ;
}
uint8_t led_matrix_map_row_column_to_led ( uint8_t row , uint8_t column , uint8_t * led_i ) {
uint8_t led_matrix_map_row_column_to_led ( uint8_t row , uint8_t column , uint8_t * led_i ) {
uint8_t led_count = led_matrix_map_row_column_to_led_kb ( row , column , led_i ) ;
uint8_t led_count = led_matrix_map_row_column_to_led_kb ( row , column , led_i ) ;
@ -153,7 +157,9 @@ uint8_t led_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *l
return led_count ;
return led_count ;
}
}
void led_matrix_update_pwm_buffers ( void ) { led_matrix_driver . flush ( ) ; }
void led_matrix_update_pwm_buffers ( void ) {
led_matrix_driver . flush ( ) ;
}
void led_matrix_set_value ( int index , uint8_t value ) {
void led_matrix_set_value ( int index , uint8_t value ) {
# ifdef USE_CIE1931_CURVE
# ifdef USE_CIE1931_CURVE
@ -164,7 +170,8 @@ void led_matrix_set_value(int index, uint8_t value) {
void led_matrix_set_value_all ( uint8_t value ) {
void led_matrix_set_value_all ( uint8_t value ) {
# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
for ( uint8_t i = 0 ; i < DRIVER_LED_TOTAL ; i + + ) led_matrix_set_value ( i , value ) ;
for ( uint8_t i = 0 ; i < DRIVER_LED_TOTAL ; i + + )
led_matrix_set_value ( i , value ) ;
# else
# else
# ifdef USE_CIE1931_CURVE
# ifdef USE_CIE1931_CURVE
led_matrix_driver . set_value_all ( pgm_read_byte ( & CIE1931_CURVE [ value ] ) ) ;
led_matrix_driver . set_value_all ( pgm_read_byte ( & CIE1931_CURVE [ value ] ) ) ;
@ -447,7 +454,9 @@ void led_matrix_set_suspend_state(bool state) {
# endif
# endif
}
}
bool led_matrix_get_suspend_state ( void ) { return suspend_state ; }
bool led_matrix_get_suspend_state ( void ) {
return suspend_state ;
}
void led_matrix_toggle_eeprom_helper ( bool write_to_eeprom ) {
void led_matrix_toggle_eeprom_helper ( bool write_to_eeprom ) {
led_matrix_eeconfig . enable ^ = 1 ;
led_matrix_eeconfig . enable ^ = 1 ;
@ -455,8 +464,12 @@ void led_matrix_toggle_eeprom_helper(bool write_to_eeprom) {
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
dprintf ( " led matrix toggle [%s]: led_matrix_eeconfig.enable = %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . enable ) ;
dprintf ( " led matrix toggle [%s]: led_matrix_eeconfig.enable = %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . enable ) ;
}
}
void led_matrix_toggle_noeeprom ( void ) { led_matrix_toggle_eeprom_helper ( false ) ; }
void led_matrix_toggle_noeeprom ( void ) {
void led_matrix_toggle ( void ) { led_matrix_toggle_eeprom_helper ( true ) ; }
led_matrix_toggle_eeprom_helper ( false ) ;
}
void led_matrix_toggle ( void ) {
led_matrix_toggle_eeprom_helper ( true ) ;
}
void led_matrix_enable ( void ) {
void led_matrix_enable ( void ) {
led_matrix_enable_noeeprom ( ) ;
led_matrix_enable_noeeprom ( ) ;
@ -478,7 +491,9 @@ void led_matrix_disable_noeeprom(void) {
led_matrix_eeconfig . enable = 0 ;
led_matrix_eeconfig . enable = 0 ;
}
}
uint8_t led_matrix_is_enabled ( void ) { return led_matrix_eeconfig . enable ; }
uint8_t led_matrix_is_enabled ( void ) {
return led_matrix_eeconfig . enable ;
}
void led_matrix_mode_eeprom_helper ( uint8_t mode , bool write_to_eeprom ) {
void led_matrix_mode_eeprom_helper ( uint8_t mode , bool write_to_eeprom ) {
if ( ! led_matrix_eeconfig . enable ) {
if ( ! led_matrix_eeconfig . enable ) {
@ -495,24 +510,38 @@ void led_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
dprintf ( " led matrix mode [%s]: %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . mode ) ;
dprintf ( " led matrix mode [%s]: %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . mode ) ;
}
}
void led_matrix_mode_noeeprom ( uint8_t mode ) { led_matrix_mode_eeprom_helper ( mode , false ) ; }
void led_matrix_mode_noeeprom ( uint8_t mode ) {
void led_matrix_mode ( uint8_t mode ) { led_matrix_mode_eeprom_helper ( mode , true ) ; }
led_matrix_mode_eeprom_helper ( mode , false ) ;
}
void led_matrix_mode ( uint8_t mode ) {
led_matrix_mode_eeprom_helper ( mode , true ) ;
}
uint8_t led_matrix_get_mode ( void ) { return led_matrix_eeconfig . mode ; }
uint8_t led_matrix_get_mode ( void ) {
return led_matrix_eeconfig . mode ;
}
void led_matrix_step_helper ( bool write_to_eeprom ) {
void led_matrix_step_helper ( bool write_to_eeprom ) {
uint8_t mode = led_matrix_eeconfig . mode + 1 ;
uint8_t mode = led_matrix_eeconfig . mode + 1 ;
led_matrix_mode_eeprom_helper ( ( mode < LED_MATRIX_EFFECT_MAX ) ? mode : 1 , write_to_eeprom ) ;
led_matrix_mode_eeprom_helper ( ( mode < LED_MATRIX_EFFECT_MAX ) ? mode : 1 , write_to_eeprom ) ;
}
}
void led_matrix_step_noeeprom ( void ) { led_matrix_step_helper ( false ) ; }
void led_matrix_step_noeeprom ( void ) {
void led_matrix_step ( void ) { led_matrix_step_helper ( true ) ; }
led_matrix_step_helper ( false ) ;
}
void led_matrix_step ( void ) {
led_matrix_step_helper ( true ) ;
}
void led_matrix_step_reverse_helper ( bool write_to_eeprom ) {
void led_matrix_step_reverse_helper ( bool write_to_eeprom ) {
uint8_t mode = led_matrix_eeconfig . mode - 1 ;
uint8_t mode = led_matrix_eeconfig . mode - 1 ;
led_matrix_mode_eeprom_helper ( ( mode < 1 ) ? LED_MATRIX_EFFECT_MAX - 1 : mode , write_to_eeprom ) ;
led_matrix_mode_eeprom_helper ( ( mode < 1 ) ? LED_MATRIX_EFFECT_MAX - 1 : mode , write_to_eeprom ) ;
}
}
void led_matrix_step_reverse_noeeprom ( void ) { led_matrix_step_reverse_helper ( false ) ; }
void led_matrix_step_reverse_noeeprom ( void ) {
void led_matrix_step_reverse ( void ) { led_matrix_step_reverse_helper ( true ) ; }
led_matrix_step_reverse_helper ( false ) ;
}
void led_matrix_step_reverse ( void ) {
led_matrix_step_reverse_helper ( true ) ;
}
void led_matrix_set_val_eeprom_helper ( uint8_t val , bool write_to_eeprom ) {
void led_matrix_set_val_eeprom_helper ( uint8_t val , bool write_to_eeprom ) {
if ( ! led_matrix_eeconfig . enable ) {
if ( ! led_matrix_eeconfig . enable ) {
@ -522,37 +551,77 @@ void led_matrix_set_val_eeprom_helper(uint8_t val, bool write_to_eeprom) {
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
dprintf ( " led matrix set val [%s]: %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . val ) ;
dprintf ( " led matrix set val [%s]: %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . val ) ;
}
}
void led_matrix_set_val_noeeprom ( uint8_t val ) { led_matrix_set_val_eeprom_helper ( val , false ) ; }
void led_matrix_set_val_noeeprom ( uint8_t val ) {
void led_matrix_set_val ( uint8_t val ) { led_matrix_set_val_eeprom_helper ( val , true ) ; }
led_matrix_set_val_eeprom_helper ( val , false ) ;
}
void led_matrix_set_val ( uint8_t val ) {
led_matrix_set_val_eeprom_helper ( val , true ) ;
}
uint8_t led_matrix_get_val ( void ) { return led_matrix_eeconfig . val ; }
uint8_t led_matrix_get_val ( void ) {
return led_matrix_eeconfig . val ;
}
void led_matrix_increase_val_helper ( bool write_to_eeprom ) { led_matrix_set_val_eeprom_helper ( qadd8 ( led_matrix_eeconfig . val , LED_MATRIX_VAL_STEP ) , write_to_eeprom ) ; }
void led_matrix_increase_val_helper ( bool write_to_eeprom ) {
void led_matrix_increase_val_noeeprom ( void ) { led_matrix_increase_val_helper ( false ) ; }
led_matrix_set_val_eeprom_helper ( qadd8 ( led_matrix_eeconfig . val , LED_MATRIX_VAL_STEP ) , write_to_eeprom ) ;
void led_matrix_increase_val ( void ) { led_matrix_increase_val_helper ( true ) ; }
}
void led_matrix_increase_val_noeeprom ( void ) {
led_matrix_increase_val_helper ( false ) ;
}
void led_matrix_increase_val ( void ) {
led_matrix_increase_val_helper ( true ) ;
}
void led_matrix_decrease_val_helper ( bool write_to_eeprom ) { led_matrix_set_val_eeprom_helper ( qsub8 ( led_matrix_eeconfig . val , LED_MATRIX_VAL_STEP ) , write_to_eeprom ) ; }
void led_matrix_decrease_val_helper ( bool write_to_eeprom ) {
void led_matrix_decrease_val_noeeprom ( void ) { led_matrix_decrease_val_helper ( false ) ; }
led_matrix_set_val_eeprom_helper ( qsub8 ( led_matrix_eeconfig . val , LED_MATRIX_VAL_STEP ) , write_to_eeprom ) ;
void led_matrix_decrease_val ( void ) { led_matrix_decrease_val_helper ( true ) ; }
}
void led_matrix_decrease_val_noeeprom ( void ) {
led_matrix_decrease_val_helper ( false ) ;
}
void led_matrix_decrease_val ( void ) {
led_matrix_decrease_val_helper ( true ) ;
}
void led_matrix_set_speed_eeprom_helper ( uint8_t speed , bool write_to_eeprom ) {
void led_matrix_set_speed_eeprom_helper ( uint8_t speed , bool write_to_eeprom ) {
led_matrix_eeconfig . speed = speed ;
led_matrix_eeconfig . speed = speed ;
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
eeconfig_flag_led_matrix ( write_to_eeprom ) ;
dprintf ( " led matrix set speed [%s]: %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . speed ) ;
dprintf ( " led matrix set speed [%s]: %u \n " , ( write_to_eeprom ) ? " EEPROM " : " NOEEPROM " , led_matrix_eeconfig . speed ) ;
}
}
void led_matrix_set_speed_noeeprom ( uint8_t speed ) { led_matrix_set_speed_eeprom_helper ( speed , false ) ; }
void led_matrix_set_speed_noeeprom ( uint8_t speed ) {
void led_matrix_set_speed ( uint8_t speed ) { led_matrix_set_speed_eeprom_helper ( speed , true ) ; }
led_matrix_set_speed_eeprom_helper ( speed , false ) ;
}
void led_matrix_set_speed ( uint8_t speed ) {
led_matrix_set_speed_eeprom_helper ( speed , true ) ;
}
uint8_t led_matrix_get_speed ( void ) { return led_matrix_eeconfig . speed ; }
uint8_t led_matrix_get_speed ( void ) {
return led_matrix_eeconfig . speed ;
}
void led_matrix_increase_speed_helper ( bool write_to_eeprom ) { led_matrix_set_speed_eeprom_helper ( qadd8 ( led_matrix_eeconfig . speed , LED_MATRIX_SPD_STEP ) , write_to_eeprom ) ; }
void led_matrix_increase_speed_helper ( bool write_to_eeprom ) {
void led_matrix_increase_speed_noeeprom ( void ) { led_matrix_increase_speed_helper ( false ) ; }
led_matrix_set_speed_eeprom_helper ( qadd8 ( led_matrix_eeconfig . speed , LED_MATRIX_SPD_STEP ) , write_to_eeprom ) ;
void led_matrix_increase_speed ( void ) { led_matrix_increase_speed_helper ( true ) ; }
}
void led_matrix_increase_speed_noeeprom ( void ) {
led_matrix_increase_speed_helper ( false ) ;
}
void led_matrix_increase_speed ( void ) {
led_matrix_increase_speed_helper ( true ) ;
}
void led_matrix_decrease_speed_helper ( bool write_to_eeprom ) { led_matrix_set_speed_eeprom_helper ( qsub8 ( led_matrix_eeconfig . speed , LED_MATRIX_SPD_STEP ) , write_to_eeprom ) ; }
void led_matrix_decrease_speed_helper ( bool write_to_eeprom ) {
void led_matrix_decrease_speed_noeeprom ( void ) { led_matrix_decrease_speed_helper ( false ) ; }
led_matrix_set_speed_eeprom_helper ( qsub8 ( led_matrix_eeconfig . speed , LED_MATRIX_SPD_STEP ) , write_to_eeprom ) ;
void led_matrix_decrease_speed ( void ) { led_matrix_decrease_speed_helper ( true ) ; }
}
void led_matrix_decrease_speed_noeeprom ( void ) {
led_matrix_decrease_speed_helper ( false ) ;
}
void led_matrix_decrease_speed ( void ) {
led_matrix_decrease_speed_helper ( true ) ;
}
led_flags_t led_matrix_get_flags ( void ) { return led_matrix_eeconfig . flags ; }
led_flags_t led_matrix_get_flags ( void ) {
return led_matrix_eeconfig . flags ;
}
void led_matrix_set_flags ( led_flags_t flags ) { led_matrix_eeconfig . flags = flags ; }
void led_matrix_set_flags ( led_flags_t flags ) {
led_matrix_eeconfig . flags = flags ;
}