Refactor power saving logic into display drivers and add ST7789 support
This commit is contained in:
@@ -2,17 +2,7 @@
|
||||
#define LOW_LEVEL_DISPLAY_ST7789_H
|
||||
|
||||
#include "low_level_display.h"
|
||||
|
||||
// ST7789 configuration structure (similar to ST7796)
|
||||
struct st7789_config {
|
||||
void* spi; // SPI instance
|
||||
int gpio_din; // MOSI pin
|
||||
int gpio_clk; // Clock pin
|
||||
int gpio_cs; // Chip select pin
|
||||
int gpio_dc; // Data/Command pin
|
||||
int gpio_rst; // Reset pin
|
||||
int gpio_bl; // Backlight pin
|
||||
};
|
||||
#include "st7789.h"
|
||||
|
||||
class LowLevelDisplayST7789 : public LowLevelDisplay {
|
||||
private:
|
||||
@@ -42,8 +32,22 @@ public:
|
||||
// Backlight control
|
||||
void set_backlight(bool on) override;
|
||||
|
||||
// Brightness control
|
||||
void set_brightness(uint8_t brightness) override;
|
||||
uint8_t get_brightness() const override;
|
||||
|
||||
// Orientation control
|
||||
void set_rotation(uint8_t rotation) override;
|
||||
|
||||
// Power saving hooks
|
||||
void on_idle_2min() override;
|
||||
void on_idle_10min() override;
|
||||
void on_user_interaction() override;
|
||||
|
||||
private:
|
||||
uint8_t saved_brightness = 100;
|
||||
bool is_dimmed = false;
|
||||
bool is_sleeping = false;
|
||||
};
|
||||
|
||||
#endif // LOW_LEVEL_DISPLAY_ST7789_H
|
||||
|
||||
Reference in New Issue
Block a user