forked from xiaozhi/xiaozhi-esp32
otto更新V2分区使用官方gif管理器 (#1359)
* otto v1.4.0 MCP 1.使用MCP协议控制机器人 2.gif继承lcdDisplay,避免修改lcdDisplay * otto v1.4.1 gif as components gif as components * electronBot v1.1.0 mcp 1.增加electronBot支持 2.mcp协议 3.gif 作为组件 4.display子类 * 规范代码 1.规范代码 2.修复切换主题死机bug * fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug * 1.增加robot舵机初始位置校准 2.fix(mcp_sever) 超出范围异常捕获类型 bug * refactor: Update Electron and Otto emoji display implementations - Removed GIF selection from Kconfig for Electron and Otto boards. - Updated Electron and Otto bot versions to 2.0.4 in their respective config files. - Refactored emoji display classes to utilize EmojiCollection for managing emojis. - Enhanced chat label setup and status display functionality in both classes. - Cleaned up unused code and improved initialization logging for emoji displays. * Rename OTTO_ICON_FONT.c to otto_icon_font.c * Rename OTTO_ICON_FONT.c to otto_icon_font.c
This commit is contained in:
@@ -1,48 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include <libs/gif/lv_gif.h>
|
||||
|
||||
#include "display/lcd_display.h"
|
||||
|
||||
// Electron Bot表情GIF声明 - 使用与Otto相同的6个表情
|
||||
LV_IMAGE_DECLARE(staticstate); // 静态状态/中性表情
|
||||
LV_IMAGE_DECLARE(sad); // 悲伤
|
||||
LV_IMAGE_DECLARE(happy); // 开心
|
||||
LV_IMAGE_DECLARE(scare); // 惊吓/惊讶
|
||||
LV_IMAGE_DECLARE(buxue); // 不学/困惑
|
||||
LV_IMAGE_DECLARE(anger); // 愤怒
|
||||
|
||||
/**
|
||||
* @brief Electron Bot GIF表情显示类
|
||||
* 继承LcdDisplay,添加GIF表情支持
|
||||
* @brief Electron机器人GIF表情显示类
|
||||
* 继承SpiLcdDisplay,通过EmojiCollection添加GIF表情支持
|
||||
*/
|
||||
class ElectronEmojiDisplay : public SpiLcdDisplay {
|
||||
public:
|
||||
public:
|
||||
/**
|
||||
* @brief 构造函数,参数与SpiLcdDisplay相同
|
||||
*/
|
||||
ElectronEmojiDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel,
|
||||
int width, int height, int offset_x, int offset_y, bool mirror_x,
|
||||
bool mirror_y, bool swap_xy);
|
||||
ElectronEmojiDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel, int width, int height, int offset_x, int offset_y, bool mirror_x, bool mirror_y, bool swap_xy);
|
||||
|
||||
virtual ~ElectronEmojiDisplay() = default;
|
||||
virtual void SetStatus(const char* status) override;
|
||||
|
||||
// 重写表情设置方法
|
||||
virtual void SetEmotion(const char* emotion) override;
|
||||
|
||||
// 重写聊天消息设置方法
|
||||
virtual void SetChatMessage(const char* role, const char* content) override;
|
||||
|
||||
private:
|
||||
void SetupGifContainer();
|
||||
|
||||
lv_obj_t* emotion_gif_; ///< GIF表情组件
|
||||
|
||||
// 表情映射
|
||||
struct EmotionMap {
|
||||
const char* name;
|
||||
const lv_image_dsc_t* gif;
|
||||
};
|
||||
|
||||
static const EmotionMap emotion_maps_[];
|
||||
private:
|
||||
void InitializeElectronEmojis();
|
||||
void SetupChatLabel();
|
||||
};
|
||||
Reference in New Issue
Block a user