Skip to content

NeoPixelAnimator object API

Michael Miller edited this page Feb 27, 2016 · 5 revisions

Constructors

NeoPixelAnimator(uint16_t countAnimations, uint16_t timeScale = NEO_MILLISECONDS)

Construct an animator with the number of animation channels, using the given timescale for all time values.
The timescale is number of milliseconds per time unit. The following flags are available.

NEO_MILLISECONDS 
NEO_CENTISECONDS 
NEO_DECISECONDS  
NEO_SECONDS      
NEO_DECASECONDS  

Methods

bool IsAnimating()

Return true if there is at least one active running animation.

bool NextAvailableAnimation(uint16_t* indexAvailable, uint16_t indexStart = 0)

Return true if there is an available animation channel, and set the given indexAvailable variable to the channel index.
indexAvailable - a pointer to the variable to return the available channel index
indexStart - the index to start searching at

void StartAnimation(uint16_t indexAnimation, uint16_t duration, AnimUpdateCallback animUpdate)

Start an animation at the given index, set the length in time to duration, and provide a update callback that apply the effect.
indexAnimation - the animation channel to use. If there is an active animation on that channel, it will be stopped first and then the channel will be reused.
duration - the length of time the animation will run. The scale is based on the flags passed to the constructor of this manager class.
animUpdate - the callback function that will be called for every passage of time.

void StopAnimation(uint16_t indexAnimation)

Stop the animation on the given channel.
indexAnimation - the animation channel to stop.

void RestartAnimation(uint16_t indexAnimation)

Without changing any of the parameters of the animation, restart the animation. If the animation was running it will jump to the beginning and then progress from the start.
This provides an easy way to loop an animation if needed.
indexAnimation - the animation channel to restart.

bool IsAnimationActive(uint16_t indexAnimation)

Return true if the specified animation channel is running.
indexAnimation - the animation channel to check

uint16_t AnimationDuration(uint16_t indexAnimation)

Return the duration of the specified animation channel. The time is based on the flags passed to the constructor of this manager class. indexAnimation - the animation channel to retrieve from.

void UpdateAnimations()

Called to allow the animations to progress in time. This must be called periodically in the Loop(). Best if called at least once every 10ms but can be called as fast as the loop() runs.

void Pause()

Pause all animations. This will freeze the animations in their current state.

void Resume()

Resume all animations. This will unfreeze the animations from where Pause() was called.

bool IsPaused()

Return if the animations are paused. The Pause() method is called to pause and Resume() is called to resume.

uint16_t TimeScale()

Return the current time scale that was passed in at construction time. You can't modify the time scale once the animator is created.

Structs

AnimationParam

This struct contains three properties that provide state information to the animation callback.
float progress - the progress from 0.0 to 1.0 of the animation to apply
uint16_t index - the channel index of the animation
AnimationState state - the animation state, which can be one of the following...

  • AnimationState_Started - this is the first call to update, will only be set once unless the animation is restarted.
  • AnimationState_Progress - this is one of the many calls between the first and last.
  • AnimationState_Completed - this is the last call to update, will only be set once unless the animation is restarted
Clone this wiki locally