 |
RSeries astromech firmware
|
|
Go to the documentation of this file. 1 #ifndef CommandScreenDisplay_h
2 #define CommandScreenDisplay_h
14 template <
typename COMMAND_DISPLAY>
20 fDial(pinManager, PIN_ENCODER_A,
79 int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h)
81 fDisplay.getTextBounds(
string, x, y, x1, y1, w, h);
114 fString += String(
"\n") + String(val);
122 fString += String(
"\n") + text;
149 fDisplay.getTextBounds(text, 0, 0, &x1, &y1, &w, &h);
150 fDisplay.setCursor(SCREEN_WIDTH / 2 - w / 2, 0);
161 fNewDialValue = newValue;
169 fButtonPressed = pressed;
170 fButtonRepeat = repeat;
178 fRemoteActive =
true;
189 fRemoteActive =
false;
193 if (currentScr !=
nullptr)
196 if (
fDialValue != fNewDialValue || fButtonID != 0)
209 if (fButtonID == 1 && fButtonPressed)
211 if (fButtonID == 2 && fButtonPressed)
213 if (fButtonID == 3 && fButtonPressed)
215 if (fButtonID == 4 && fButtonPressed)
217 if (fButtonID == 5 && fButtonPressed)
221 if (fButtonID == 1 && !fButtonPressed)
223 if (fButtonID == 2 && !fButtonPressed)
225 if (fButtonID == 3 && !fButtonPressed)
227 if (fButtonID == 4 && !fButtonPressed)
229 if (fButtonID == 5 && !fButtonPressed)
236 if (fButtonID == 1 && fButtonPressed && fButtonRepeat)
240 else if (fButtonID == 2 && fButtonPressed && fButtonRepeat)
244 else if (fButtonID == 3 && fButtonPressed && fButtonRepeat)
248 else if (fButtonID == 4 && fButtonPressed && fButtonRepeat)
252 else if (fButtonID == 5 && fButtonPressed && fButtonRepeat)
259 if (keyRepeatRate == 0)
260 keyRepeatRate = KEY_REPEAT_RATE_MS;
358 fButtonPressed =
false;
359 fButtonRepeat =
false;
373 long fNewDialValue = 0;
374 uint8_t fButtonID = 0;
375 bool fRemoteActive =
false;
376 bool fButtonPressed =
false;
377 bool fButtonRepeat =
false;
390 fClearDisplay =
false;
void display()
Definition: CommandScreenDisplay.h:127
Definition: CommandScreen.h:273
void setTextColor(uint16_t c)
Definition: CommandScreenDisplay.h:89
uint32_t fLastKeyEvent
Definition: CommandScreenDisplay.h:369
virtual void buttonLeftPressed(bool repeat=false)
Definition: CommandScreen.h:328
ScreenID fLastScreenID
Definition: CommandScreenDisplay.h:370
void switchToScreen(ScreenID id, bool popStack=true)
Definition: CommandScreen.h:175
virtual void wakeDevice() override
Definition: CommandScreenDisplay.h:40
void getTextBounds(const char *string, int16_t x, int16_t y, int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h)
Definition: CommandScreenDisplay.h:78
CommandScreen * current()
Definition: CommandScreen.h:154
CommandScreenDisplay(COMMAND_DISPLAY &display, PinManager &pinManager, bool(*init)(void)=nullptr)
Definition: CommandScreenDisplay.h:18
virtual void buttonInReleased()
Definition: CommandScreen.h:336
virtual void sleepDevice() override
Definition: CommandScreenDisplay.h:45
void println(String text)
Definition: CommandScreenDisplay.h:119
uint8_t getButtonPressedMask() const
Definition: AnoRotaryEncoder.h:50
Definition: CommandScreenDisplay.h:15
Definition: AnoRotaryEncoder.h:7
void clearDisplay()
Definition: CommandScreenDisplay.h:62
void drawTextCentered(String text)
Definition: CommandScreenDisplay.h:145
Definition: CommandScreen.h:147
bool isButtonReleased(byte pin) const
Definition: AnoRotaryEncoder.h:71
long getValue()
Returns current value.
Definition: RotaryEncoder.h:102
long fDialValue
Definition: CommandScreenDisplay.h:368
void setEnabled(bool enabled)
Definition: CommandScreen.h:236
void resetDisplay()
Definition: CommandScreenDisplay.h:386
AnoRotaryEncoder fDial
Definition: CommandScreenDisplay.h:366
void remoteActive()
Definition: CommandScreenDisplay.h:174
virtual void buttonRightPressed(bool repeat=false)
Definition: CommandScreen.h:330
void setRotation(uint8_t r)
Definition: CommandScreenDisplay.h:84
void setCursor(uint8_t x, uint8_t y)
Definition: CommandScreenDisplay.h:94
void invertDisplay(bool invert)
Definition: CommandScreenDisplay.h:54
void remoteButtonEvent(uint8_t id, bool pressed, bool repeat)
Definition: CommandScreenDisplay.h:165
virtual void buttonLeftReleased()
Definition: CommandScreen.h:333
ScreenID ID() const
Definition: CommandScreen.h:286
void remoteDialEvent(long newValue, long oldValue)
Definition: CommandScreenDisplay.h:158
bool isSleeping() const
Definition: CommandScreen.h:223
unsigned getKeyRepeatRate() const
Definition: CommandScreen.h:319
virtual void buttonDial(long newValue, long oldValue=0)
Definition: CommandScreen.h:337
virtual void buttonUpPressed(bool repeat=false)
Definition: CommandScreen.h:327
Definition: PinManager.h:6
virtual bool handleEvent() override
Definition: CommandScreenDisplay.h:182
bool hasChanged()
Returns true if value has changed since last animated event.
Definition: RotaryEncoder.h:94
void print(String text)
Definition: CommandScreenDisplay.h:103
COMMAND_DISPLAY & fDisplay
Definition: CommandScreenDisplay.h:365
void println(unsigned val)
Definition: CommandScreenDisplay.h:111
virtual void buttonDownReleased()
Definition: CommandScreen.h:334
virtual void buttonUpReleased()
Definition: CommandScreen.h:332
bool isButtonPressed(byte pin) const
Definition: AnoRotaryEncoder.h:61
virtual void buttonRightReleased()
Definition: CommandScreen.h:335
virtual void buttonInPressed(bool repeat=false)
Definition: CommandScreen.h:331
virtual void buttonDownPressed(bool repeat=false)
Definition: CommandScreen.h:329
bool(* fInitProc)(void)
Definition: CommandScreenDisplay.h:367
void setTextSize(int siz)
Definition: CommandScreenDisplay.h:70
bool fSkipButtonReleased
Definition: CommandScreenDisplay.h:371
bool hasButtonStateChanged() const
Definition: AnoRotaryEncoder.h:45
bool begin()
Definition: CommandScreenDisplay.h:35