Add U8X8 carousel screens

This commit is contained in:
2026-05-26 22:07:04 +03:00
parent db5ae6eb6b
commit 68ee8c210b
6 changed files with 263 additions and 6 deletions
+31
View File
@@ -0,0 +1,31 @@
#ifndef CAROUSEL_H
#define CAROUSEL_H
#include <Arduino.h>
#include <U8g2lib.h>
#include "screens.h"
class Carousel {
public:
Carousel(Screen *screens, size_t screenCount);
void begin(unsigned long now);
void update(unsigned long now);
void next(unsigned long now);
void render(U8X8 &display) const;
bool consumeDirty();
private:
Screen *screens_;
size_t screenCount_;
size_t currentIndex_;
unsigned long nextAutoAdvanceAt_;
unsigned long manualModeUntil_;
bool dirty_;
void scheduleNextAdvance(unsigned long now);
void drawIndicators(U8X8 &display) const;
};
#endif