全屏滑条统一路径+对比色(112/115) + 字体索引+查列表+丢失降级(113) + 文档刷新(114) + svcd CLI文档+mips-repo拆bins/mpk(116)

This commit is contained in:
MeowOS Dev committed 2026-08-30 14:14:30 +08:00
1 parent b75ecce5de
commit 19a001f007
22 files changed
+666 -129

No files matched your search

+48
View File
@@ -117,6 +117,54 @@ int meow_font_config_multifont(int on,
int meow_font_import_zip(const char *zip_path); /* TODO:MeowPanel */
int meow_font_export_zip(const char *family, const char *out_zip); /* TODO:MeowPanel */
/* ================================================================== */
/* M2.58 字体索引 + 应用字库查询(规格 §5.7:索引文件 / 查列表 / 丢失降级默认) */
/* ================================================================== */
/* 系统字体列表的持久化快照 = TF 卡 <card_root>/MeowOS/config/fonts/index(CSV,每套一条:
* "family","weight","path","label","tier",glyph_count
* path = 卡根相对 font.png(如 MeowOS/fonts/misans/regular/font.png)
* label = 显示名(含字重 + 尺寸标记,如 `MiSans Regular(common≈4k)`)
* tier = common|gbk|full(档位,信息用 + 驱动按需加载)
* launcher 扫描 MeowOS/fonts/<family>/<weight>/ 后写该文件(覆盖,含默认行 index0);
* SDK 侧 meow_font_get_available_count()/enumerate() 只从这个文件读,不依赖 launcher 内存数组;
* 无卡/无 index → 仅 1 项板载默认(family=default)。 */
#define MEOW_FONT_INDEX_REL "MeowOS/config/fonts/index"
/* 权威列表数据模型(SDK 侧快照,枚举时填充;规格 §5.7.1)。 */
#ifndef MEOW_FONT_INFO_DEFINED
#define MEOW_FONT_INFO_DEFINED
typedef struct meow_font_info {
char family[64]; /* family slug = MeowOS/fonts/<family>/ 一级目录名 */
char name[64]; /* 显示名(index 无单列 → 回退 family) */
char weight[32]; /* weight slug(regular|bold|…,缺省 regular) */
char tier[8]; /* 档位 common|gbk|full(info 用) */
int glyph_count; /* font.json glyph_count(info 用) */
char label[128]; /* index 显示名(含字重 + 尺寸标记) */
int size_list[16]; /* 原生字号表(index 无 → 空) */
int size_count; /* 有效字号数 */
int bit_depth; /* 4|8(index 无 → 0) */
char path_png[320]; /* 卡根相对 MeowOS/fonts/<family>/<weight>/font.png */
} meow_font_info;
#endif
/* 卡根:env MEOW_CARD_ROOT 优先,否则默认 /usr/data/mnt/sd_0。 */
const char *meow_font_card_root(void);
/* <card_root>/MeowOS/config/fonts/index 绝对路径写入 out;0=成功。 */
int meow_font_index_path(char *out, int olen);
/* 读 index → 填充 out 数组(最多 max 条),返回「总条数」(无 index/不可读/空 → 1=合成默认行)。
* 注意 out[i].path_png 为「卡根相对」路径,需经卡根解析为绝对路径再使用。 */
int meow_font_index_load(meow_font_info *out, int max);
/* 应用可读 TF 卡字体列表(规格 §5.7.2):
* - get_available_count():可用字库数(含默认;无卡 → 1)。
* - enumerate(idx, out):按序号取,越界返回 0;idx=0=默认行(family=default)。
* - select_by_id(id):id=0 跟随系统默认(font.file,经 env MEOW_FONT_PNG/IDX);
* id>0 会话内固定用该套;该套字库缺失 → 降级默认(不丢请求)+ WARN 日志
* (meow_log→app 日志)。成功 0,越界负值。 */
int meow_font_get_available_count(void);
int meow_font_enumerate(int idx, meow_font_info *out);
int meow_font_select_by_id(int id);
#ifdef __cplusplus
}
#endif