#include "lv_load_font_from_spiffs.h"

static const char *TAG = "LV_LOAD_FONT";

/**
 * @brief 从SPIFFS加载中文字体
 * @param font_path 字体文件路径，如"/spiffs/cn_font.bin"
 * @return lv_font_t* 成功返回字体指针，失败返回NULL
 */
lv_font_t* load_chinese_font_from_spiffs(const char* font_path)
{
    ESP_LOGI(TAG, "尝试加载字体: %s", font_path);
    
    // 检查文件是否存在
    // FILE* f = fopen(font_path, "rb");
    // if (f == NULL) {
    //     ESP_LOGE(TAG, "字体文件不存在: %s", font_path);
    //     return NULL;
    // }
    // fclose(f);

    //LV_LOG_USER("loadfile");
    
    // LVGL V8/V9通用方法：使用lv_binfont_create
    lv_font_t* font = lv_binfont_create(font_path);
    
    if (font == NULL) {
        ESP_LOGE(TAG, "字体加载失败: %s", font_path);
        return NULL;
    }
    
    ESP_LOGI(TAG, "字体加载成功: %s", font_path);
    return font;
}

/**
 * @brief 释放字体资源
 * @param font 要释放的字体指针
 */
void free_chinese_font(lv_font_t* font)
{
    if (font != NULL) {
        lv_binfont_destroy(font);
        ESP_LOGI(TAG, "字体资源已释放");
    }
}