Add preview image to lcd display

This commit is contained in:
Terrence
2025-05-25 07:02:44 +08:00
parent 0204b8800b
commit ecfebc4a29
4 changed files with 160 additions and 125 deletions

View File

@@ -9,6 +9,20 @@
#include <atomic>
// Theme color structure
struct ThemeColors {
lv_color_t background;
lv_color_t text;
lv_color_t chat_background;
lv_color_t user_bubble;
lv_color_t assistant_bubble;
lv_color_t system_bubble;
lv_color_t system_text;
lv_color_t border;
lv_color_t low_battery;
};
class LcdDisplay : public Display {
protected:
esp_lcd_panel_io_handle_t panel_io_ = nullptr;
@@ -19,8 +33,10 @@ protected:
lv_obj_t* content_ = nullptr;
lv_obj_t* container_ = nullptr;
lv_obj_t* side_bar_ = nullptr;
lv_obj_t* preview_image_ = nullptr;
DisplayFonts fonts_;
ThemeColors current_theme_;
void SetupUI();
virtual bool Lock(int timeout_ms = 0) override;
@@ -28,13 +44,13 @@ protected:
protected:
// 添加protected构造函数
LcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel, DisplayFonts fonts)
: panel_io_(panel_io), panel_(panel), fonts_(fonts) {}
LcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel, DisplayFonts fonts, int width, int height);
public:
~LcdDisplay();
virtual void SetEmotion(const char* emotion) override;
virtual void SetIcon(const char* icon) override;
virtual void SetPreviewImage(const lv_img_dsc_t* img_dsc) override;
#if CONFIG_USE_WECHAT_MESSAGE_STYLE
virtual void SetChatMessage(const char* role, const char* content) override;
#endif