47 Display(DisplayType displayType) : displayType(displayType) {}
49 virtual ~Display() =
default;
51 constexpr virtual size_t getNumBrowserAndMenuLines() = 0;
53 virtual void setText(std::string_view newText,
bool alignRight =
false, uint8_t drawDot = 255,
bool doBlink =
false,
54 uint8_t* newBlinkMask =
nullptr,
bool blinkImmediately =
false,
bool shouldBlinkFast =
false,
55 int32_t scrollPos = 0, uint8_t* blinkAddition =
nullptr,
56 bool justReplaceBottomLayer =
false) {};
58 virtual void displayPopup(
char const* newText, int8_t numFlashes = 3,
bool alignRight =
false,
59 uint8_t drawDot = 255, int32_t blinkSpeed = 1, PopupType type = PopupType::GENERAL) = 0;
61 virtual void displayPopup(uint8_t val, int8_t numFlashes = 3,
bool alignRight =
false, uint8_t drawDot = 255,
62 int32_t blinkSpeed = 1, PopupType type = PopupType::GENERAL) {
64 intToString(val, valStr, 1);
65 displayPopup(valStr, numFlashes, alignRight, drawDot, blinkSpeed, type);
68 virtual void displayPopup(
char const* shortLong[2], int8_t numFlashes = 3,
bool alignRight =
false,
69 uint8_t drawDot = 255, int32_t blinkSpeed = 1, PopupType type = PopupType::GENERAL) {
70 displayPopup(have7SEG() ? shortLong[0] : shortLong[1], numFlashes, alignRight, drawDot, blinkSpeed, type);
73 virtual void popupText(
char const* text, PopupType type = PopupType::GENERAL) = 0;
74 virtual void popupTextTemporary(
char const* text, PopupType type = PopupType::GENERAL) = 0;
76 virtual void setNextTransitionDirection(int8_t thisDirection) {};
78 virtual void cancelPopup() = 0;
79 virtual void freezeWithError(
char const* text) = 0;
80 virtual bool isLayerCurrentlyOnTop(
NumericLayer* layer) = 0;
81 virtual void displayError(Error error) = 0;
83 virtual void removeWorkingAnimation() = 0;
86 virtual void displayLoadingAnimation() {};
87 virtual void displayLoadingAnimationText(
char const* text,
bool delayed =
false,
bool transparent =
false) = 0;
88 virtual void removeLoadingAnimation() = 0;
90 virtual void displayNotification(std::string_view paramTitle, std::optional<std::string_view> paramValue) {}
92 virtual bool hasPopup() = 0;
93 virtual bool hasPopupOfType(PopupType type) = 0;
95 virtual void consoleText(
char const* text) = 0;
97 virtual void timerRoutine() = 0;
99 virtual void setTextAsNumber(int16_t number, uint8_t drawDot = 255,
bool doBlink =
false) {}
100 virtual int32_t getEncodedPosFromLeft(int32_t textPos,
char const* text,
bool* andAHalf) {
return 0; }
101 virtual void setTextAsSlot(int16_t currentSlot, int8_t currentSubSlot,
bool currentSlotExists,
bool doBlink =
false,
102 int32_t blinkPos = -1,
bool blinkImmediately =
false) {}
103 virtual void setTextWithMultipleDots(std::string_view newText, std::vector<uint8_t> dotPositions,
104 bool alignRight =
false,
bool doBlink =
false, uint8_t* newBlinkMask =
nullptr,
105 bool blinkImmediately =
false) {}
107 int32_t initialDelay = 600,
int count = -1,
108 uint8_t fixedDot = 255) {
112 virtual std::array<uint8_t, kNumericDisplayLength> getLast() {
return {0}; };
114 bool haveOLED() {
return displayType == DisplayType::OLED; }
115 bool have7SEG() {
return displayType == DisplayType::SEVENSEG; }
118 DisplayType displayType;