#include "esp_err.h"
#include <stdint.h>
#include <stdbool.h>
#include "lvgl.h"

void app_test_display();    // 测试显示
void app_img_display();     // 显示图片
esp_err_t nvs_change_img(char *imgname);    // 改变NVS中的图片路径
void app_img_change();     // 改变图片
void img_switch_task(void *pvParameters);// 图片切换任务
void img_loop_task(void *pvParameters);  // 图片循环任务
void pwm_init();   // 初始化PWM背光
void pwm_set_brightness(uint8_t percent);  // 设置屏幕亮度(0=关闭, 10-100%)
uint8_t pwm_get_brightness(void);  // 获取当前亮度值

// 图片管理函数
const char* get_current_image(void);  // 获取当前图片文件名
bool delete_current_image(void);      // 删除当前图片
void init_spiffs_image_list(void);    // 初始化/扫描SPIFFS图片列表
void free_spiffs_image_list(void);    // 重置图片列表
bool set_image_index_by_name(const char *name);  // 根据文件名设置当前图片索引
void ble_image_navigate(const char *filename);   // BLE接收后导航到ScreenImg显示
void ble_image_navigate_with_data(const char *filename, uint8_t *data, size_t data_size);  // BLE接收后直通显示（跳过SPIFFS重读）
#if LV_USE_GIF
void pages_cleanup_gif(void);  // 清理 GIF 控件资源
#endif
