LEDS are flushed automatically
After running the animation, instead of having to do it manually. This avoids duplicate flushing, and better support for cross-fades.
This commit is contained in:
parent
0530ebb77d
commit
15906b86ae
|
@ -63,7 +63,6 @@ static void keyframe_fade_all_leds_from_to(keyframe_animation_t* animation, uint
|
||||||
uint8_t luma = fade_led_color(animation, from, to);
|
uint8_t luma = fade_led_color(animation, from, to);
|
||||||
color_t color = LUMA2COLOR(luma);
|
color_t color = LUMA2COLOR(luma);
|
||||||
gdispGClear(LED_DISPLAY, color);
|
gdispGClear(LED_DISPLAY, color);
|
||||||
gdispGFlush(LED_DISPLAY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Should be customizable per keyboard
|
// TODO: Should be customizable per keyboard
|
||||||
|
@ -102,7 +101,6 @@ bool keyframe_led_left_to_right_gradient(keyframe_animation_t* animation, visual
|
||||||
uint8_t color = compute_gradient_color(t, i, NUM_COLS);
|
uint8_t color = compute_gradient_color(t, i, NUM_COLS);
|
||||||
gdispGDrawLine(LED_DISPLAY, i, 0, i, NUM_ROWS - 1, LUMA2COLOR(color));
|
gdispGDrawLine(LED_DISPLAY, i, 0, i, NUM_ROWS - 1, LUMA2COLOR(color));
|
||||||
}
|
}
|
||||||
gdispGFlush(LED_DISPLAY);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,7 +113,6 @@ bool keyframe_led_top_to_bottom_gradient(keyframe_animation_t* animation, visual
|
||||||
uint8_t color = compute_gradient_color(t, i, NUM_ROWS);
|
uint8_t color = compute_gradient_color(t, i, NUM_ROWS);
|
||||||
gdispGDrawLine(LED_DISPLAY, 0, i, NUM_COLS - 1, i, LUMA2COLOR(color));
|
gdispGDrawLine(LED_DISPLAY, 0, i, NUM_COLS - 1, i, LUMA2COLOR(color));
|
||||||
}
|
}
|
||||||
gdispGFlush(LED_DISPLAY);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,6 +137,5 @@ bool keyframe_led_crossfade(keyframe_animation_t* animation, visualizer_state_t*
|
||||||
gdispGDrawPixel(LED_DISPLAY, j, i, color);
|
gdispGDrawPixel(LED_DISPLAY, j, i, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gdispGFlush(LED_DISPLAY);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,6 +127,7 @@ void stop_all_keyframe_animations(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool update_keyframe_animation(keyframe_animation_t* animation, visualizer_state_t* state, systime_t delta, systime_t* sleep_time) {
|
static bool update_keyframe_animation(keyframe_animation_t* animation, visualizer_state_t* state, systime_t delta, systime_t* sleep_time) {
|
||||||
|
// TODO: Clean up this messy code
|
||||||
dprintf("Animation frame%d, left %d, delta %d\n", animation->current_frame,
|
dprintf("Animation frame%d, left %d, delta %d\n", animation->current_frame,
|
||||||
animation->time_left_in_frame, delta);
|
animation->time_left_in_frame, delta);
|
||||||
if (animation->current_frame == animation->num_frames) {
|
if (animation->current_frame == animation->num_frames) {
|
||||||
|
@ -394,6 +395,9 @@ static THD_FUNCTION(visualizerThread, arg) {
|
||||||
update_keyframe_animation(animations[i], &state, delta, &sleep_time);
|
update_keyframe_animation(animations[i], &state, delta, &sleep_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef LED_ENABLE
|
||||||
|
gdispGFlush(LED_DISPLAY);
|
||||||
|
#endif
|
||||||
// The animation can enable the visualizer
|
// The animation can enable the visualizer
|
||||||
// And we might need to update the state when that happens
|
// And we might need to update the state when that happens
|
||||||
// so don't sleep
|
// so don't sleep
|
||||||
|
|
Loading…
Reference in New Issue