47 lines
1.2 KiB
C++

#ifndef DISPLAY_H
#define DISPLAY_H
#include <esp_timer.h>
#include <esp_log.h>
#include <esp_pm.h>
#include <string>
// 前向声明或空类型定义
struct lv_font_t {};
struct DisplayFonts {
const lv_font_t* text_font = nullptr;
const lv_font_t* icon_font = nullptr;
const lv_font_t* emoji_font = nullptr;
};
class Display {
public:
Display() : width_(0), height_(0) {}
virtual ~Display() {}
virtual void SetStatus(const char* status) {}
virtual void ShowNotification(const char* notification, int duration_ms = 3000) {}
virtual void ShowNotification(const std::string &notification, int duration_ms = 3000) {}
virtual void SetEmotion(const char* emotion) {}
virtual void SetChatMessage(const char* role, const char* content) {}
virtual void SetIcon(const char* icon) {}
virtual void SetTheme(const std::string& theme_name) {}
virtual std::string GetTheme() { return current_theme_name_; }
inline int width() const { return width_; }
inline int height() const { return height_; }
virtual bool Lock(int timeout_ms = 0) { return true; }
virtual void Unlock() {}
virtual void Update() {}
protected:
int width_;
int height_;
std::string current_theme_name_;
};
#endif // DISPLAY_H