feat(tuku): 图库 M3 骨架——书库浏览/主题同步/阅读器与锁屏接缝
- 新增顶层 tuku/ 工程(package dev.tuku.app、二进制 tuku):app.c/internal 头/logic/ui 分层、app.json、build/pack 脚本 - 书库:从 TF 卡根浏览文件夹,含图目录=一本书;logic/library 纯 C 扫描+自然排序(page2<page10) - 流式缩略图:后台线程解码+meow_img_downscale(96),首帧/滚动不阻塞;磁盘缓存 MeowData/<pkg>/cache(mtime 失效+LRU) - 列表 meow_listview 虚拟化 + meow_scroll fling/snap;行=缩略图+目录名+页数 - 主题:全部语义色 + meow_theme_add_listener 即时重绘;明暗/风格族两态可读 - 导航:meow_view page push/pop、TopAppBar ⚙→设置;reader/settings/lock 最小桩 - 接缝:mr_reader_get/set_direction(默认 RTL)、lock_view_should_show()(桩 0) - 宿主 gcc 测试 46 项 PASS;交叉构建静态 MIPS32r2 ELF、-Wall -Wextra 零警告
This commit is contained in:
1 parent
c0396e40ce
commit
bed6a95485
17 files changed
+1676
No files matched your search
@@ -0,0 +1,64 @@
|
||||
/* tuku_internal.h — 图库应用内部共享头(只 extern 声明,不定义)。
|
||||
*
|
||||
* 分层(照 examples/hello):
|
||||
* - logic/ 纯 C(library 扫描/自然排序、reader 方向状态),不依赖 meow_ui.h,宿主可裸测;
|
||||
* - ui/ 每页一个 view 文件(library/reader/settings/lock),只碰 SDK;
|
||||
* - app.c main + 装配 + meow_ui_run 回调路由 + 主题监听。
|
||||
*
|
||||
* 页面:ACT_LIBRARY(0) 根页(保留状态栏)、ACT_READER(1) 全屏、ACT_SETTINGS(2)、ACT_LOCK(3)。
|
||||
* 并行开发接缝(后续任务只填自己的文件,不改 app.c/internal.h):
|
||||
* - M4 阅读器:ui/reader/reader.c 实现,方向状态用 logic/reader 的 mr_reader_get/set_direction;
|
||||
* 书库点入含图目录经 mr_reader_open_dir(path) 进入本页。
|
||||
* - M5 锁屏/PIN:ui/lock/lock.c 实现 lock_view_should_show();本批桩返回 0(不锁)。
|
||||
*/
|
||||
#ifndef TUKU_INTERNAL_H
|
||||
#define TUKU_INTERNAL_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "meow_ui.h"
|
||||
#include "meow_ui_view.h"
|
||||
#include "logic/library.h"
|
||||
#include "logic/reader.h"
|
||||
|
||||
/* ---- Activity 归属(稳定 id,< MEOW_VIEW_BY_ID_MAX) ---- */
|
||||
#define ACT_LIBRARY 0
|
||||
#define ACT_READER 1
|
||||
#define ACT_SETTINGS 2
|
||||
#define ACT_LOCK 3
|
||||
|
||||
#define MR_ROOT_DIR "/usr/data/mnt/sd_0" /* 书库根 = TF 卡根 */
|
||||
|
||||
/* ---- 视图控制器(biz-UI 绑定点) ---- */
|
||||
typedef struct mr_page_ctrl {
|
||||
meow_view *view;
|
||||
int active;
|
||||
} mr_page_ctrl;
|
||||
|
||||
/* ---- 书库页(ui/library/library.c) ---- */
|
||||
meow_view *library_view_create(void);
|
||||
int library_at_root(void); /* 1=当前在 MR_ROOT_DIR */
|
||||
int library_go_up(void); /* 返回上一级;1=已上移,0=已在根 */
|
||||
void library_on_tap(int x, int y);
|
||||
void library_on_swipe(int dir, int dist); /* dist=SDK on_swipe 的位移量(UP/DOWN 用) */
|
||||
void library_on_touch_down(int x, int y);
|
||||
void library_on_touch_move(int x, int y);
|
||||
void library_on_tick(void); /* 收下后台缩略图结果并局部补位 */
|
||||
|
||||
/* ---- 阅读器页(ui/reader/reader.c,M4 填充) ---- */
|
||||
meow_view *reader_view_create(void);
|
||||
void reader_on_tap(int x, int y);
|
||||
void mr_reader_open_dir(const char *path); /* 书库→阅读器的桩导航接口 */
|
||||
const char *mr_reader_dir(void); /* 当前待打开目录(骨架显示用) */
|
||||
|
||||
/* ---- 设置页(ui/settings/settings.c) ---- */
|
||||
meow_view *settings_view_create(void);
|
||||
|
||||
/* ---- 锁屏页(ui/lock/lock.c,M5 填充) ---- */
|
||||
meow_view *lock_view_create(void);
|
||||
int lock_view_should_show(void); /* 1=启动先显示锁屏;本批桩返回 0 */
|
||||
|
||||
/* ---- App 级(app.c) ---- */
|
||||
void mr_nav_report(void); /* 向 launcher 上报当前页栈深/顶层 */
|
||||
|
||||
#endif /* TUKU_INTERNAL_H */
|
||||
Reference in new issue
Block a user