// keyframe update functions
int current_frame;
int time_left_in_frame;
+ bool first_update_of_frame;
+ bool last_update_of_frame;
bool need_update;
} keyframe_animation_t;
void start_keyframe_animation(keyframe_animation_t* animation);
void stop_keyframe_animation(keyframe_animation_t* animation);
+// This runs the next keyframe, but does not update the animation state
+// Useful for crossfades for example
+void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* state);
// Some predefined keyframe functions that can be used by the user code
// Does nothing, useful for adding delays