You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#define LGFX_AUTODETECT;
|
|
|
|
#define LGFX_USE_V1
|
|
|
|
#include <LovyanGFX.hpp>
|
|
|
|
|
|
|
|
#define UI_WIDTH (320)
|
|
|
|
#define UI_HEIGHT (240)
|
|
|
|
|
|
|
|
#define STATUS_BAR_HEIGHT (20)
|
|
|
|
|
|
|
|
static LGFX lcd;
|
|
|
|
static AppState lastAppState;
|
|
|
|
|
|
|
|
void uiDebug(AppState *state) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void uiLoop(AppState *state) {
|
|
|
|
lcd.startWrite();
|
|
|
|
|
|
|
|
lcd.setTextColor(0x000000U, 0x00FF00);
|
|
|
|
|
|
|
|
bool statusBarDirty = false;
|
|
|
|
statusBarDirty = state->wifiOnline != lastAppState.wifiOnline;
|
|
|
|
statusBarDirty = statusBarDirty || (state->volume != lastAppState.volume);
|
|
|
|
if (statusBarDirty) {
|
|
|
|
lcd.fillRect(0, 0, UI_WIDTH, STATUS_BAR_HEIGHT, 0x00FF00);
|
|
|
|
if (state->wifiOnline) {
|
|
|
|
lcd.drawString(state->wifiIP.toString(), 10, 10);
|
|
|
|
lcd.drawString(String(state->volume), UI_WIDTH - 20, 10);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
lcd.drawString("connecting...", 10, 10);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
lastAppState = *state;
|
|
|
|
|
|
|
|
lcd.endWrite();
|
|
|
|
}
|
|
|
|
|
|
|
|
void uiSetup(AppState *state) {
|
|
|
|
lcd.init();
|
|
|
|
lcd.setColorDepth(16);
|
|
|
|
lcd.fillScreen(0xFF0000);
|
|
|
|
lcd.setBrightness(128);
|
|
|
|
|
|
|
|
lastAppState = AppStateMake();
|
|
|
|
}
|