41 Display(DisplayType displayType) : displayType(displayType) {}
43 virtual ~Display() =
default;
45 constexpr virtual size_t getNumBrowserAndMenuLines() = 0;
47 virtual void setText(std::string_view newText,
bool alignRight =
false, uint8_t drawDot = 255,
bool doBlink =
false,
48 uint8_t* newBlinkMask =
nullptr,
bool blinkImmediately =
false,
bool shouldBlinkFast =
false,
49 int32_t scrollPos = 0, uint8_t* blinkAddition =
nullptr,
50 bool justReplaceBottomLayer =
false) {};
52 virtual void displayPopup(std::string_view newText, int8_t numFlashes = 3,
bool alignRight =
false,
53 uint8_t drawDot = 255, int32_t blinkSpeed = 1, PopupType type = PopupType::GENERAL) = 0;
55 virtual void displayPopup(uint8_t val, int8_t numFlashes = 3,
bool alignRight =
false, uint8_t drawDot = 255,
56 int32_t blinkSpeed = 1, PopupType type = PopupType::GENERAL) {
57 displayPopup(deluge::string::fromInt(val), numFlashes, alignRight, drawDot, blinkSpeed, type);
60 virtual void popupText(std::string_view text, PopupType type = PopupType::GENERAL) = 0;
61 virtual void popupTextTemporary(std::string_view text, PopupType type = PopupType::GENERAL) = 0;
63 virtual void setNextTransitionDirection(int8_t thisDirection) {};
65 virtual void cancelPopup() = 0;
66 virtual void freezeWithError(std::string_view text) = 0;
67 virtual bool isLayerCurrentlyOnTop(
NumericLayer* layer) = 0;
68 virtual void displayError(Error error) = 0;
70 virtual void removeWorkingAnimation() = 0;
73 virtual void displayLoadingAnimation() {};
74 virtual void displayLoadingAnimationText(std::string_view text,
bool delayed =
false,
bool transparent =
false) = 0;
75 virtual void removeLoadingAnimation() = 0;
77 virtual bool hasPopup() = 0;
78 virtual bool hasPopupOfType(PopupType type) = 0;
80 virtual void consoleText(std::string_view text) = 0;
82 virtual void timerRoutine() = 0;
84 virtual void setTextAsNumber(int16_t number, uint8_t drawDot = 255,
bool doBlink =
false) {}
85 virtual int32_t getEncodedPosFromLeft(int32_t textPos, std::string_view text,
bool* andAHalf) {
return 0; }
86 virtual void setTextAsSlot(int16_t currentSlot, int8_t currentSubSlot,
bool currentSlotExists,
bool doBlink =
false,
87 int32_t blinkPos = -1,
bool blinkImmediately =
false) {}
89 int32_t initialDelay = 600,
int count = -1,
90 uint8_t fixedDot = 255) {
94 virtual std::array<uint8_t, kNumericDisplayLength> getLast() {
return {0}; };
96 bool haveOLED() {
return displayType == DisplayType::OLED; }
97 bool have7SEG() {
return displayType == DisplayType::SEVENSEG; }
100 DisplayType displayType;