@ -7,7 +7,7 @@ typedef HSV (*reactive_f)(HSV hsv, uint16_t offset);
bool effect_runner_reactive ( effect_params_t * params , reactive_f effect_func ) {
bool effect_runner_reactive ( effect_params_t * params , reactive_f effect_func ) {
RGB_MATRIX_USE_LIMITS ( led_min , led_max ) ;
RGB_MATRIX_USE_LIMITS ( led_min , led_max ) ;
uint16_t max_tick = 65535 / rgb_matrix_config . speed ;
uint16_t max_tick = 65535 / qadd8 ( rgb_matrix_config . speed , 1 ) ;
for ( uint8_t i = led_min ; i < led_max ; i + + ) {
for ( uint8_t i = led_min ; i < led_max ; i + + ) {
RGB_MATRIX_TEST_LED_FLAGS ( ) ;
RGB_MATRIX_TEST_LED_FLAGS ( ) ;
uint16_t tick = max_tick ;
uint16_t tick = max_tick ;
@ -19,7 +19,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
}
}
}
}
uint16_t offset = scale16by8 ( tick , rgb_matrix_config . speed ) ;
uint16_t offset = scale16by8 ( tick , qadd8 ( rgb_matrix_config . speed , 1 ) ) ;
RGB rgb = rgb_matrix_hsv_to_rgb ( effect_func ( rgb_matrix_config . hsv , offset ) ) ;
RGB rgb = rgb_matrix_hsv_to_rgb ( effect_func ( rgb_matrix_config . hsv , offset ) ) ;
rgb_matrix_set_color ( i , rgb . r , rgb . g , rgb . b ) ;
rgb_matrix_set_color ( i , rgb . r , rgb . g , rgb . b ) ;
}
}