Phase 4: Expunge STM32: TX device cleanup (#3024)
[ExpressLRS.git] / src / lib / SCREEN / display.h
blob616acc8290cdc1b6db28d534a0f3b52ae1c589d1
1 #pragma once
3 #include "targets.h"
4 #include "menu.h"
6 #define CHANGED_TEMP bit(0)
7 #define CHANGED_RATE bit(1)
8 #define CHANGED_POWER bit(2)
9 #define CHANGED_TELEMETRY bit(3)
10 #define CHANGED_MOTION bit(4)
11 #define CHANGED_FAN bit(5)
12 #define CHANGED_ALL 0xFF
14 typedef enum fsm_state_s menu_item_t;
16 typedef enum message_index_e {
17 MSG_NONE,
18 MSG_CONNECTED,
19 MSG_ARMED,
20 MSG_MISMATCH,
21 MSG_ERROR,
22 MSG_INVALID
23 } message_index_t;
25 typedef enum
27 SCREEN_BACKLIGHT_ON = 0,
28 SCREEN_BACKLIGHT_OFF = 1
29 } screen_backlight_t;
31 class Display
33 public:
34 virtual void init() = 0;
35 virtual void doScreenBackLight(screen_backlight_t state) = 0;
36 virtual void printScreenshot() = 0;
38 virtual void displaySplashScreen() = 0;
39 virtual void displayIdleScreen(uint8_t changed, uint8_t rate_index, uint8_t power_index, uint8_t ratio_index, uint8_t motion_index, uint8_t fan_index, bool dynamic, uint8_t running_power_index, uint8_t temperature, message_index_t message_index) = 0;
40 virtual void displayMainMenu(menu_item_t menu) = 0;
41 virtual void displayValue(menu_item_t menu, uint8_t value_index) = 0;
42 virtual void displayBLEConfirm() = 0;
43 virtual void displayBLEStatus() = 0;
44 virtual void displayBindConfirm() = 0;
45 virtual void displayBindStatus() = 0;
46 virtual void displayWiFiConfirm() = 0;
47 virtual void displayWiFiStatus() = 0;
48 virtual void displayRunning() = 0;
49 virtual void displaySending() = 0;
50 virtual void displayLinkstats() = 0;
52 int getValueCount(menu_item_t menu);
53 const char *getValue(menu_item_t menu, uint8_t value_index);
55 protected:
56 static const char *message_string[];
57 static const char *main_menu_strings[][2];