Files
MeowOS-For-R3P2/patch_v2/reader_app/reader_internal.h
T
AskaEth e0a82a3d47 fix(reader): M27 r3 评审整改 — cap 边界截断/默认副题不变/提示两行且 6s 消失/版本号
对应评审 P2-1、P3-7、P3-1、P3-2、P3-10、P3-9:
- P2-1:scan_dir 在目录边界遇 cap 时探测子树(count_books_under)再置 truncated;
  同目录内超限逻辑不变。新增两条断言:cap 卡边界 → truncated=1;恰好装满且后续为空目录 → 不误报
- P3-7:shelf_book 拆 sub(默认副题,与 base 逐字一致)/sub_folder(folder 模式前置子路径);
  list 按模式选,宫格始终用 base;断言 format 副题逐字等于 base
- P3-1:超量+超深合并提示拆两行绘制(610 起,不再被 480px 右缘切掉)
- P3-2:提示 6s 到期自动消失(app.c 书架前台时调 shelf_on_tick)
- P3-10:app.json version 0.1.1 / version_code 2
- P3-9:shelf_scan_bench.c 头部注明 /proc/uptime 10ms 分辨率、只适合真机
2026-11-09 22:45:01 +08:00

59 lines
2.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* reader_internal.h — os.meow.reader 应用内部共享声明(视图 + 装配)。
*
* 层级(仿 hello_app):app.c 只做 init/建页/事件分发;shelf(书架)、reader(阅读页)各一个
* meow_view(ACTIVITY)。阅读页用 W_CUSTOM 画布 + App 自绘 back_buf(翻页 blit 局部脏区)。
*/
#ifndef READER_INTERNAL_H
#define READER_INTERNAL_H
#include "meow_ui.h"
#include "meow_ui_view.h"
#define ACT_SHELF 0
#define ACT_READER 1
#define ACT_SETTINGS 2
/* ---- 书架(app/shelf.c)---- */
meow_view *shelf_view_create(void);
int shelf_is_active(void);
int shelf_on_tap(int x, int y);
void shelf_on_swipe(int dir, int dx, int dy);
void shelf_redraw(void);
void shelf_set_view(int grid); /* 1=grid 0=list;读 reader.conf ui.shelf_layout(A) */
void shelf_set_group(int folder); /* 1=folder 0=format;写 ui.shelf_group(M27) */
void shelf_on_tick(uint64_t now); /* 提示条 6s 到期消失(书架前台时由 app.c 调) */
/* ---- 阅读页(app/reader.c)---- */
meow_view *reader_view_create(void);
int reader_is_active(void);
void reader_on_tap(int x, int y);
void reader_on_swipe(int dir, int dx, int dy);
void reader_on_tick(uint64_t now);
void reader_on_touch_down(int x, int y); /* R3 段刮擦:右缘拖动快速定位 */
void reader_on_touch_move(int x, int y);
/* 打开一本书(书架调;成功后由书架 push ACT_READER 进入阅读页)。path=TXT 完整路径。
* 返回 0=成功(书已打开、页位图已备、可 push);非 0=失败(未能打开,调用方不 push)。 */
int reader_open(const char *path);
/* R3.4 章节重解析(app/settings.c 调用):是否打开了支持章节解析的书(TXT+seg 模式)。
* reader_reparse_chapters 返回 n=章节数 / 0=无章节(成功)/ -1=不可用 / -2=扫描失败(未落盘)。 */
int reader_has_chapter_book(void);
int reader_reparse_chapters(void);
/* ---- 全局设置页(app/settings.c,C)---- */
meow_view *settings_view_create(void);
int settings_is_active(void);
int settings_on_tap(int x, int y);
void settings_reload(void); /* 改配置后让设置页/其它页重读 reader.conf */
/* 系统翻页信号(app/reader_ipc.c 后台线程收到 MSG_KEY_PAGEUP/PAGEDOWN 后调;
* 仅置 pending 计数,UI 线程 reader_on_tick 消费转 reader_turn_animated,E)。 */
void reader_page_key(int dir); /* dir=+1 下一页;-1 上一页 */
/* 返回可执行文件所在包根(用于定位 /usr/data/mnt/sd_0)——由 app.c 注入与否;
* R1 用固定 TF 根 /usr/data/mnt/sd_0。 */
#define READER_SD_ROOT "/usr/data/mnt/sd_0"
#endif /* READER_INTERNAL_H */