printer-monitor/src/Display/OledDisplay.h

47 lines
1.7 KiB
C++

#pragma once
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include "../Global/GlobalDataController.h"
#include <OLEDDisplayUi.h>
#include <OLEDDisplay.h>
#include "../../include/WeatherStationFonts.h"
#include "BaseDisplayClient.h"
class OledDisplay : public BaseDisplayClient {
private:
GlobalDataController *globalDataController;
DebugController *debugController;
OLEDDisplay *oledDisplay;
OLEDDisplayUi *ui;
boolean displayOn = true;
long displayOffEpoch = 0;
FrameCallback frames[3];
FrameCallback clockFrame[2];
boolean isClockOn = false;
OverlayCallback overlays[1];
OverlayCallback clockOverlay[1];
public:
OledDisplay(OLEDDisplay *oledDisplay, GlobalDataController *globalDataController, DebugController *debugController);
void preSetup();
void postSetup();
void handleUpdate();
void flipDisplayUpdate();
void showBootScreen();
void showApAccessScreen(String apSsid, String apIp);
void showWebserverSplashScreen(bool isEnabled);
void checkDisplay();
void enableDisplay(boolean enable);
void drawScreen1(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
void drawScreen2(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
void drawScreen3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
void drawClock(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
void drawWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y);
void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state);
void drawClockHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state);
void drawRssi(OLEDDisplay *display);
};