32 bool draw(uint32_t adjustable_time,
Frame* dst);
33 bool draw(uint32_t adjustable_time,
CRGB* leds, uint8_t* alpha, uint32_t* precise_timestamp =
nullptr);
36 bool add(
const Frame& frame);
39 bool pop_back(FrameRef* dst) {
return mFrames.pop_back(dst); }
40 bool push_front(FrameRef frame, uint32_t timestamp) {
44 if (!mFrames.empty() && timestamp <= mFrames.front()->getTimestamp()) {
47 frame->setTimestamp(timestamp);
48 return mFrames.push_front(frame);
51 bool pushNewest(FrameRef frame, uint32_t timestamp) {
52 frame->setTimestamp(timestamp);
53 return push_front(frame, timestamp);
55 bool popOldest(FrameRef* dst) {
return mFrames.pop_back(dst); }
57 bool addWithTimestamp(
const Frame& frame, uint32_t timestamp);
67 bool selectFrames(uint32_t now,
const Frame** frameMin,
const Frame** frameMax)
const;
68 bool full()
const {
return mFrames.full(); }
73 bool needsFrame(uint32_t now, uint32_t* precise_timestamp)
const {
74 return mInterval.needsFrame(now, precise_timestamp);
77 void reset(uint32_t startTime) { mInterval.reset(startTime); }
78 void incrementFrameCounter() { mInterval.incrementIntervalCounter(); }
80 void pause(uint32_t now) { mInterval.pause(now); }
81 void resume(uint32_t now) { mInterval.resume(now); }
82 bool isPaused()
const {
return mInterval.isPaused(); }