Initial Commit

This commit is contained in:
2026-03-31 10:19:59 -04:00
commit a1af89eef1
15 changed files with 444 additions and 0 deletions

75
include/Animation.h Normal file
View File

@@ -0,0 +1,75 @@
#ifndef ANIMATION_H
#define ANIMATION_H
#include <FastLED.h>
#include <elapsedMillis.h>
class Animation {
public:
Animation(long _updateTime, uint16_t _finishedAfterCycles) : updateTime(_updateTime),
finishedAfterCycles(_finishedAfterCycles), cycles(0), enabled(false),
initialized(false), timer(0) {}
virtual void initialize(CRGB* leds) {}
virtual void execute(CRGB* leds) {}
virtual bool isFinished() {
return cycles > finishedAfterCycles;
}
void update(CRGB* leds) {
if(enabled) {
if(timer >= updateTime) {
if(!initialized) {
initialize(leds);
cycles = 0;
initialized = true;
}
if(!isFinished()) {
execute(leds);
}
resetTimer();
}
}
}
void enable() {
enabled = true;
}
void disable() {
enabled = false;
}
void reinitialize() {
initialized = false;
}
bool isEnabled() {
return enabled;
}
protected:
void resetTimer() {
timer = 0;
}
void cycleCompleted() {
cycles = cycles += 1;
}
private:
long
updateTime;
uint16_t
cycles,
finishedAfterCycles;
bool
enabled,
initialized;
elapsedMillis
timer;
};
#endif