- reader: app.c/shelf.c/reader.c 全套UI; 新增 reader_conf(reader.conf)/settings(App设置页)/reader_ipc(音量翻页IPC响应); app.json加volume_page - launcher: keys.c meow_volpage_*门 + util.c app_id→fd映射(HELLO记fd/断开清) + app_launcher.c 前台三处接线(进入sink/按键路径volpage_key/离开clear) → 前台声明volume_page的App音量键→MSG_KEY_PAGEUP/PAGEDOWN翻页(非阅读器前台音量照旧) - sdk: meow_select.c 底部面板28 + meow_ui_dialog.c 对话框按钮胶囊(h/2) + test_meow_ui_select.c修采样 - meowpanel: /api/net/policy·/api/power/policy 加防自锁+policy默认关两条护栏(panel.policy_enabled默认0) - 文档: MEOW_APP_SDK.md §12.6 + meowpanel README端点表 0warning;宿主测试全过;二进制留批量批次未入库
33 lines
1.3 KiB
C
33 lines
1.3 KiB
C
/* app/reader_ipc.h — 阅读器系统翻页信号接收(launcher 经 IPC 下发 MSG_KEY_PAGEUP/PAGEDOWN)。
|
||
*
|
||
* 系统级能力(READER_UI_DESIGN §E / 用户 2026-09-04 拍板):音量键翻页由 launcher 判决
|
||
* (仅当前台 App = 本阅读器且 app.json 声明 volume_page),下发消息;本模块在 App 侧
|
||
* 维持一条持久 IPC 连接接收并转成 `reader_page_key(±1)`。
|
||
*
|
||
* 设计(对齐 SDK meow_ui_media.c 模式):
|
||
* - 后台线程懒连 meow_ipc.sock,HELLO(app_id=os.meow.reader) 后 poll 读下发帧;
|
||
* - 收到 MSG_KEY_PAGEUP/PAGEDOWN → 调 reader_page_key(-1/+1)(UI 线程经 tick 消费,
|
||
* 避免跨线程直接改页面状态);
|
||
* - best-effort:launcher 不在 / 断线 → 重试,绝不崩;App 退出 reader_ipc_stop() 收尾。
|
||
*
|
||
* 内存纪律:显式小线程栈(64KB),符合阅读态 ≤8MB。
|
||
*/
|
||
#ifndef READER_IPC_H
|
||
#define READER_IPC_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/* 启动翻页信号接收线程(幂等)。读入 app_id = "os.meow.reader"。
|
||
* 转发目标:reader_page_key(dir)(reader_internal.h)。 */
|
||
void reader_ipc_start(void);
|
||
|
||
/* 停止线程并断开(App 退出时调用;幂等)。 */
|
||
void reader_ipc_stop(void);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
#endif /* READER_IPC_H */
|