From 7bd6962ccb51266305fa0f984191466200b37f52 Mon Sep 17 00:00:00 2001 From: MeowOS Date: Tue, 1 Sep 2026 18:52:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(ncm=20=C2=A722):=20=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E9=A1=B5=E9=87=8D=E5=81=9A=E2=80=94=E2=80=94=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E9=A1=B5/=E6=AD=8C=E8=AF=8D=E9=A1=B5=E5=8F=8C=E9=A1=B5(NCM=5FC?= =?UTF-8?q?ACHE=5FDESIGN=20=C2=A76=20=E5=AE=9A=E6=A1=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 去标题栏(不再用 ncm_topbar);返回=左缘手势/系统返回钮语义 - 双页结构:封面页/歌词页,屏幕正中左/右滑切换(与左缘≤24px返回、顶部通知分流), 页面指示点显示当前页;中部横滑=on_touch_move 锁存 page-drag + on_tap/on_swipe 判向 - 封面页:方形大图+圆角(无旋转动画)+进度条(点 seek)+MD3 矢量控制钮(prev/play/pause/next, 新增 app/ui/ncm_icons.h 32x32 单通道 alpha,参照 sb_icons.h 范式)+元信息+实际音质档 - 歌词页:LRC 滚动(当前行居中高亮、上下渐隐)+点行跳转(新增 lyric_line_time); 默认=封面模糊置底(封面铺底+主题 scrim),省电=封面背景+黑色半透明叠加层(设置 ncm.player_bg_mode) - 日夜间:主题配色只映射到半透明叠加层/scrim/accent(红),不动沉浸底(NCM_PLAYER_BG 恒定) - 分带刷新沿用:封面页=封面静态带+动态带(互不重叠 bbox,tick 只刷动态带);歌词页换行(~5s)才重画 - 性能:宿主 4 页 PPM 核验+手势自检 PASS;mipsel -Wall -Wextra 0 warning;qemu core 回归 PASS; 0 真实请求(封面/歌词用本地样本注入)。未部署真机(主会话统一) md5: ncm 730e0b6e / ncm_host 500ac85 / player.c 00934de / ncm_icons.h 20f0bba --- patch_v2/ncm_app/REPORT.md | 104 +++ patch_v2/ncm_app/app/app.c | 6 +- patch_v2/ncm_app/app/logic/appstate.c | 7 + patch_v2/ncm_app/app/logic/cover.c | 18 + patch_v2/ncm_app/app/logic/lyric.c | 9 + patch_v2/ncm_app/app/ncm_app_internal.h | 22 +- patch_v2/ncm_app/app/test/test_ncm_app.c | 40 +- patch_v2/ncm_app/app/ui/ncm_colors.c | 8 +- patch_v2/ncm_app/app/ui/ncm_icons.h | 73 ++ patch_v2/ncm_app/app/ui/player.c | 806 ++++++++++++++--------- patch_v2/ncm_app/app/ui/settings.c | 45 +- patch_v2/ncm_app/ncm | Bin 1067404 -> 1060796 bytes patch_v2/ncm_app/ncm_host | Bin 1143008 -> 1143768 bytes 13 files changed, 795 insertions(+), 343 deletions(-) create mode 100644 patch_v2/ncm_app/app/ui/ncm_icons.h diff --git a/patch_v2/ncm_app/REPORT.md b/patch_v2/ncm_app/REPORT.md index 87014fd..e7e17bd 100644 --- a/patch_v2/ncm_app/REPORT.md +++ b/patch_v2/ncm_app/REPORT.md @@ -1988,3 +1988,107 @@ a80ee35f243ac28379cd1adeb61548ed build_ncm_host.sh # +stream_src.c 首帧);实测 44.1k 向量 400kbps 首开声 3.82s(vs mp3 2.60s)即此因。 - UI 菊花/缓冲提示未接 g_play.stalled(字段已备,UI 批再做)。 - 断续网 underrun 聚合断言为时序容忍口径(§21.6),非判据放松——PCM 金标准不变。 + +--- + +## 22. 播放页重做:封面页/歌词页双页 + MD3 矢量图标 + 点行跳转 + 背景模式(2026-09-01,按 NCM_CACHE_DESIGN §6 定案) + +> 范围:仅 `patch_v2/ncm_app/`。未动 `sdk/`(sb_icons.h 只作图标范式参照,未改)、`meow_launcherd/`、 +> `core/`(缓存/解码/网络底座零改动)。风控纪律:本批真实 NCM 请求 **0 次**(封面/歌词/手势全走 +> 宿主 mocK 与本地样本注入)。部署/真机验收留主会话统一。上一批(§21 边下边播)已 commit `9e25db7`, +> 本批在其上做。 + +### 22.1 设计定案(NCM_CACHE_DESIGN §6)与实现映射 + +| 定案 | 实现 | +|---|---| +| 去掉现有标题栏(播放页不再用 ncm_topbar) | 删除 `player.c` 的 `g_tb`/topbar 创建与 `MEOW_TOPBAR_BACK` 命中;返回 = 左缘手势(`SWIPE_LEFT`→`app_on_swipe`→`page_pop`)/ 系统返回钮语义,`app.c` 不改 | +| 双页结构:封面页/歌词页,屏幕正中左/右滑切换 | 新增内部页 `g_ppage`(0=封面、1=歌词);`player_set_page/player_page/player_page_go`;页面指示点(2 点,当前页红色) | +| 手势分流(左缘≤24px=返回、顶部=通知、中部=页切换) | 不抢 SDK 左缘(`PLR_EDGE_W=24` 与 SDK `EDGE_W` 一致)与顶部热区(`y>=statusbar_hotzone()`);中部横滑用 `on_touch_down/move` 锁存 `page-drag` + `on_tap`(中部左滑落 TAP)判向 → 切页;中部右滑由 SDK `on_swipe(RIGHT)` → 切页(左滑/右滑都覆盖) | +| 封面页:方形大图+圆角,无旋转动画;进度条(可点 seek)+控制钮+元信息+实际音质档 | `meow_ui_img_cover` 方形 + `round_corners_bg` 四角裁圆角;进度条点击 seek;控制钮 = MD3 图标;元信息(歌名/歌手)+ 实际生效档/降级标注 | +| 按钮全部用 MD3 矢量图标(32×32 alpha,参照 sb_icons.h 范式) | 新增 `app/ui/ncm_icons.h`(PREV/PLAY/PAUSE/NEXT 四枚 32×32 单通道 alpha,几何近似+8× 超采样抗锯齿,参照 sb_icons.h 存储范式);`draw_md3_icon` 最近邻缩放 + 逐像素 `fill_rect_alpha` | +| 歌词页:LRC 滚动(当前行居中高亮、上下渐隐)+ 点行跳转 | 沿用 `lyric.c`;新增 `lyric_line_time(i)`(点行 seek 用);当前行 `size=24` 红高亮、上下行 `size=20` 按距中心 `mix_c` 渐隐;点行 → `player_seek(lyric_line_time(i))` | +| 歌词页默认=封面模糊置底;省电=封面背景+黑色半透明叠加层(设置 `ncm.player_bg_mode`) | 默认:封面 `meow_ui_img_scaled` 铺满 + 主题 `th->scrim` α150;省电:铺满 + `0x000000` α195;设置页新增行「歌词页背景」sheet 二选一,持久化 `ncm.player_bg_mode` | +| 日夜间:主题配色只映射到半透明叠加层,不动沉浸底 | 新增 `NCM_PLAYER_BG` 固定沉浸底;`ncm_on_theme` 在 ACT_PLAYER 时 page_bg 恒 `NCM_PLAYER_BG`(不改底),其余页面仍跟随系统明暗;歌词 scrim/accent 随 `g_dark`/主题变化 | +| 缓冲「缓冲中…N%」/错误条(256 那套)沿用 | 封面页:缓冲文案替时间行、错误文案(VIP/无音源/登录过期/网络)+「点播放键重试」;`ncm_snack` 错误沿沿用 | +| 退出=后台播放(M4 background_audio,退出语义不动) | `app.json` 已声明 `background_audio:1`;播放线程/退出路径未动 | + +### 22.2 性能(分带刷新纪律沿用) + +- **封面页**拆「封面静态带 `g_cover_r`(z8)」+「动态带 `g_dyn_r`(z9)」两个绘制物,bbox 互不重叠: + tick 只标脏动态带(进度/控制/元信息/指示点);封面带仅 歌曲/封面 变化(`player_static_invalidate`) + 才重画 → 不整页重绘。 +- **歌词页**为整屏带状物:仅在 进入/切歌/封面变化/换背景模式/换行(~5s 一次,歌词按行进非逐帧) + 时整屏重画;pos tick 不重画歌词页(`g_last_line` 沿驱动,行间静止)。 +- 模糊底图 = 封面按屏最近邻铺底 + scrim;区域重画时 SDK 绘制 clip 收敛(`meow_ui_draw.c`, + `g_clip_stack`),只算相交区,不整屏 overdraw(§5.8 记忆点)。 +- 控制钮由「逐帧行扫三角」改为 **MD3 图标位图 blit**(扫描 + 每像素 blend565),code 更简单、观感对齐 Material。 + +### 22.3 验证记录(0 真实 NCM 请求) + +| 层 | 手段 | 结果 | +|---|---|---| +| mipsel 交叉 | `bash build_ncm.sh`(自有代码 `-Wall -Wextra`) | **0 warning**;`text 963042 / data 1608 / bss 1113988`(bss 增量仅来自 icons/ncm 段,均常量) | +| 宿主离屏 | `build_ncm_host.sh` + `MEOW_UI_DUMP`(mock,0 网络) | 自有代码 0 warning(仅 SDK `meow_ui_vol.c` 既有 `system()` 告警) | +| 四页 PPM 核验 | `NCM_PAGE=plcover/pllyric × NCM_THEME=light/dark` + `NCM_COVER=本地样本注入` | **4 页全 rc=0**:封面页=方形圆角封面+歌名/歌手+时间+红进度条(52%)+prev/暂停/next MD3 图标+指示点;歌词页=封面模糊置底+顶部「歌名·歌手」+当前行红高亮居中+上下渐隐+指示点;日/暗两套底恒 `NCM_PLAYER_BG`(不动沉浸底)、accent/scrim 随主题 | +| 缓冲/错误态 | `NCM_PAGE=playerbuf/playererr` | 全 rc=0:缓冲=「缓冲中… N%」文案+空进度条+暂停钮;错误=错误文案+「重试/切下一首」+播放钮(STOPPED→play 重试) | +| 省电背景 | `NCM_PAGE=pllyric NCM_BGMODE=power_save` | 全 rc=0:封面背景更暗(`0x000000` α195),与 default 明显区分 | +| 手势切换自检 | `NCM_PAGE=gestest`(宿主直调 touch_down/move/on_tap/on_swipe) | **PASS**:p0=0 → 中部左滑=1(歌词) → 中部右滑=0(封面);进度条上按下拖拽不锁存(不被误判翻页) | +| qemu core 回归 | `timeout 120 qemu-mipsel ./out/test_ncm_core_mipsel` | **RESULT: PASS**(core 全量,本批未动 core) | +| 宿主 core | `test/test_ncm_core_host` | **PASS** | +| 设置页 | `NCM_PAGE=settings` | rc=0,6 行(新增「歌词页背景」行存在) | + +### 22.4 md5(本批产物 + 改动文件) + +``` +730e0b6eaa0b3f626f828bbaa51dc5a8 ncm # mipsel 静态 App(新) +500ac859618a58bc2a641553a383a10f ncm_host # 宿主离屏调试二进制(新) +00934dec4452f2f31e6f473c64bd311f app/ui/player.c +20f0bbac74099d07638d4f92a340eb82 app/ui/ncm_icons.h # 新:MD3 prev/play/pause/next 32x32 alpha +aedd5ff24e227eeda94341e63eac4064 app/ui/settings.c +31ae666b0f7497bb3c3391da9ce4636a app/ui/ncm_colors.c +b1c8f029886a60288e96bcf54476d7bf app/logic/lyric.c +63127b670604ff67dd176224088b16c4 app/logic/cover.c +aa5a5f22e10662c2247ece166c13ea6e app/logic/appstate.c +e2a7062b0033234649fe03767a4c009d app/app.c +fa00ea4f0093cd7e0a2600887106de07 app/ncm_app_internal.h +2c484e5e920c0b05c6da107d15fd8a6f app/test/test_ncm_app.c +``` + +### 22.5 出入清单(只改 `patch_v2/ncm_app/`) + +``` +修改: + app/ui/player.c # 播放页重做:去 topbar + 封面/歌词双页(中滑切换) + MD3 图标控制钮 + + # 方盖圆角 + 点行 seek + 封面模糊/省电背景 + 分带刷新 + 手势分流 + app/ui/ncm_icons.h # 新增:MD3 prev/play/pause/next 32x32 单通道 alpha 位图(参照 sb_icons.h) + app/ui/settings.c # 新增「歌词页背景」行(default/省电 sheet 二选一) + app/ui/ncm_colors.c # ncm_on_theme:ACT_PLAYER 沉浸底恒 NCM_PLAYER_BG(不动沉浸底) + app/logic/lyric.c # 新增 lyric_line_time(i):点行跳转 + app/logic/cover.c # 宿主测试桩 cover_host_inject(#ifdef MEOW_UI_HOST_TEST,产品不编) + app/logic/appstate.c # 设置持久化 ncm.player_bg_mode(load/save + 越界回落 default) + app/app.c # on_touch_down/move 播发页路由(中部横滑页切换跟踪) + app/ncm_app_internal.h # NCM_PLAYER_BG/NCM_BG_* + player_bg_mode 字段 + player_set_page/ + # player_page/player_touch_* + lyric_line_time 声明 + app/test/test_ncm_app.c # 宿主:plcover/pllyric/gestest 模式 + NCM_BGMODE/NCM_COVER 注入 + ncm / ncm_host # 重编产物 +(未动 sdk/、meow_launcherd/、vendor/、core/;REPORT.md 本批记录 §22) +``` + +### 22.6 诚实出入 / 已知限制 + +- **真机未部署未验**(留主会话统一)。真机验收点:①双页中滑流畅(跟手感/指示点)②点行 seek + 命中时间 ③封面模糊置底观感(默认)vs 省电黑色叠加(对比明显)④设置页「歌词页背景」持久化、 + 重启生效 ⑤返回=左缘右滑仍正确(不误触页切换)⑥播放中退出=后台播放(M4,未动)。 +- **歌词页「当前行居中」为行进式**(按 LRC 行切换,非逐帧平滑滚动):这是 MIPS 软帧下 + 「流畅性廉价可靠」取舍(§11);当前行高亮 + 上下行渐隐已提供视觉焦点。 +- **封面模糊 = 封面按屏最近邻铺底 + scrim(廉价近似)**:无 GPU 模糊/降采样原语,非真高斯模糊; + 非均匀铺底(480×720)会轻微拉伸封面(居中裁方可解但需另建 thumbnail 缓冲,本批不做)。 +- **歌词页顶部元信息/整屏重在换行时重画**:换行频率 ≈ 每行(数秒)一次,非逐帧;pos tick 不刷 + 歌词页(只在其换行时刷),故 MIPS 上歌词页代价可忽略。 +- **页面对比色固定浅色系**(播放页为沉浸深色介质,文本若随主题 onSurface 在浅色主题下为近黑会 + 隐形):这是「不动沉浸底」定案的必然——播放页文本/控件用固定浅色,仅 accent(红)/scrim 随日夜间。 +- **`player_set_screen` 保留为兼容占位(恒竖屏)**:重做后播放页为竖屏双页(旧「横屏布局」随顶栏 + ⟳ 钮一并退役);`player_screen()` 恒 0,宿主 `grid`/`lands` 旧模式不再有横屏布局。 +- **歌词读锁残余(既有)**:`lyric_line_text/tl` 解锁后返回静态指针可能被下次 `lyric_parse` 覆盖 + (§14.7 已知);本批未改,点行跳转读 `lyric_line_time` 同理(写入仅在切歌瞬间,窗口极小)。 diff --git a/patch_v2/ncm_app/app/app.c b/patch_v2/ncm_app/app/app.c index 86b4ea5..5f0cd8b 100644 --- a/patch_v2/ncm_app/app/app.c +++ b/patch_v2/ncm_app/app/app.c @@ -62,7 +62,8 @@ static void app_on_swipe(int dir, int dx, int dy) static void app_on_touch_down(int x, int y) { - if (home_is_active()) home_touch_down(x, y); + if (player_is_active()) player_touch_down(x, y); /* §22 中部横滑页切换跟踪 */ + else if (home_is_active()) home_touch_down(x, y); else if (playlist_is_active()) playlist_touch_down(x, y); else if (settings_is_active()) settings_touch_down(x, y); else if (search_is_active()) search_touch_down(x, y); @@ -70,7 +71,8 @@ static void app_on_touch_down(int x, int y) static void app_on_touch_move(int x, int y) { - if (home_is_active()) home_touch_move(x, y); + if (player_is_active()) player_touch_move(x, y); + else if (home_is_active()) home_touch_move(x, y); else if (playlist_is_active()) playlist_touch_move(x, y); else if (settings_is_active()) settings_touch_move(x, y); else if (search_is_active()) search_touch_move(x, y); diff --git a/patch_v2/ncm_app/app/logic/appstate.c b/patch_v2/ncm_app/app/logic/appstate.c index 28a7311..32450e3 100644 --- a/patch_v2/ncm_app/app/logic/appstate.c +++ b/patch_v2/ncm_app/app/logic/appstate.c @@ -52,6 +52,11 @@ void appstate_load_settings(void) if (g_st.level < NCM_LEVEL_STANDARD || g_st.level > NCM_LEVEL_UI_MAX) g_st.level = NCM_LEVEL_EXHIGH; + /* §22 歌词页背景模式:default(模糊置底) / power_save(封面+黑叠加层);越界回落 default */ + g_st.player_bg_mode = meow_config_int("ncm.player_bg_mode", NCM_BG_DEFAULT); + if (g_st.player_bg_mode != NCM_BG_DEFAULT && g_st.player_bg_mode != NCM_BG_POWER_SAVE) + g_st.player_bg_mode = NCM_BG_DEFAULT; + ncm_cache_set_limit_gb(&g_st.ctx.cache, g_st.cache_limit_gb); g_st.ctx.default_level = g_st.level; } @@ -63,6 +68,8 @@ void appstate_save_settings(void) meow_config_set("ncm.cache_limit_gb", b); snprintf(b, sizeof b, "%d", g_st.level); meow_config_set("ncm.level", b); + snprintf(b, sizeof b, "%d", g_st.player_bg_mode); + meow_config_set("ncm.player_bg_mode", b); ncm_cache_set_limit_gb(&g_st.ctx.cache, g_st.cache_limit_gb); g_st.ctx.default_level = g_st.level; /* 手动调低上限时立即按 LRU 淘汰(超上限删最旧);未超限则为无操作 */ diff --git a/patch_v2/ncm_app/app/logic/cover.c b/patch_v2/ncm_app/app/logic/cover.c index 88c5945..7dfbc81 100644 --- a/patch_v2/ncm_app/app/logic/cover.c +++ b/patch_v2/ncm_app/app/logic/cover.c @@ -230,3 +230,21 @@ void cover_cache_reset(void) g_gen++; g_acked = g_gen; } + +#ifdef MEOW_UI_HOST_TEST +/* 宿主测试桩(仅宿主构建;产品构建无此符号):注入一张本地封面图(不经网络), + * 验证封面页方形圆角大图与歌词页模糊置底路径(§22)。0 真实请求纪律不变。 */ +void cover_host_inject(const char *path) +{ + if (!path || !path[0]) return; + meow_img *img = meow_img_load_file(path); + if (!img) { meow_log(MEOW_LOG_WARN, "cover host inject: load failed %s", path); return; } + pthread_mutex_lock(&g_cm); + if (g_cover_img) meow_img_free(g_cover_img); + g_cover_img = img; + ncm_strlcpy(g_cover_url, path, sizeof g_cover_url); + g_cover_path[0] = 0; + g_gen++; + pthread_mutex_unlock(&g_cm); +} +#endif diff --git a/patch_v2/ncm_app/app/logic/lyric.c b/patch_v2/ncm_app/app/logic/lyric.c index 3e75286..a4129dc 100644 --- a/patch_v2/ncm_app/app/logic/lyric.c +++ b/patch_v2/ncm_app/app/logic/lyric.c @@ -174,6 +174,15 @@ const char *lyric_line_tl(int i) return p; } +/* 第 i 行时间戳(ms)。越界返回 -1。供播放页「点行跳转」(§22:seek 到该行时间)。 */ +long lyric_line_time(int i) +{ + pthread_mutex_lock(&g_lyric_mu); + long t = (i < 0 || i >= s_n) ? -1 : s_t[i]; + pthread_mutex_unlock(&g_lyric_mu); + return t; +} + int lyric_count(void) { pthread_mutex_lock(&g_lyric_mu); diff --git a/patch_v2/ncm_app/app/ncm_app_internal.h b/patch_v2/ncm_app/app/ncm_app_internal.h index 51eac8c..5ac78d5 100644 --- a/patch_v2/ncm_app/app/ncm_app_internal.h +++ b/patch_v2/ncm_app/app/ncm_app_internal.h @@ -39,6 +39,15 @@ #define APP_OP_W 48 /* 行右侧操作区触达宽 */ #define APP_FOOTER_H 26 +/* ---- 播放页(§22 重做:封面页/歌词页双页,NCM_CACHE_DESIGN §6)---- + * 沉浸底恒 NCM_PLAYER_BG(不随系统明暗反转——「不动沉浸底」);日夜间主题配色只映射到 + * 半透明叠加层(歌词页 scrim)与 accent(红)。 */ +#define NCM_PLAYER_BG 0x101014 /* 播放页固定沉浸底(中性近黑) */ + +/* 歌词页背景模式(设置 ncm.player_bg_mode:default/power_save,§22) */ +#define NCM_BG_DEFAULT 0 /* default:封面模糊置底(封面缩放铺底 + 主题 scrim 叠加) */ +#define NCM_BG_POWER_SAVE 1 /* power_save:封面背景 + 黑色半透明叠加层(更暗,省电观感) */ + /* ---- 数据规模(内存纪律:歌单/歌曲大列表虚拟化显示,数组有界;硬约束 R3P2 ~14MB)---- */ #define NCM_PLAYLIST_MAX 120 /* 我的歌单上限 */ /* 滑动窗口(REPORT §17,三期第三批,取代 §14 的 NCM_SONG_MAX=1000 硬截断): @@ -158,6 +167,7 @@ typedef struct ncm_app_state { /* 设置(持久化 MeowData/dev.player.ncm/data)*/ int level; /* NCM_LEVEL_* */ int cache_limit_gb; + int player_bg_mode; /* 歌词页背景模式(§22):NCM_BG_DEFAULT / NCM_BG_POWER_SAVE */ /* 搜索(结果复用 g_st.songs[] 浅拷贝区;仅搜索页上下文有效)*/ char search_query[256]; @@ -248,8 +258,12 @@ void player_play_song(int idx); /* 从歌单第 idx 首开始播放 */ void player_pause_toggle(int on); void player_next(int dir); /* dir=+1 下一首 / -1 上一首 */ void player_seek(int64_t ms); -void player_on_swipe(int dir, int dist); /* 横屏切换/返回 */ -int player_set_screen(int landscape); /* 1=横屏 0=竖屏;返回之前 */ +void player_on_swipe(int dir, int dist); /* 中部横滑页切换(DIR=RIGHT→封面页;PPAGE 由 touch 拖拽+on_tap 判向) */ +int player_set_page(int page); /* 0=封面页 1=歌词页;返回旧页。拖动/程序切页用 */ +int player_page(void); /* 当前页(0/1) */ +void player_touch_down(int x, int y); /* 中部横滑跟踪(与左缘返回/顶部通知分流,§22) */ +void player_touch_move(int x, int y); +int player_set_screen(int landscape); /* 兼容:重做后恒竖屏(返回旧值 0) */ int player_screen(void); /* settings */ @@ -319,6 +333,7 @@ const char *lyric_line_tl(int i); int lyric_count(void); void lyric_clear(void); int lyric_state(void); /* 0=空闲/未拉 1=加载中 2=已拉完(可能 0 行=无词) */ +long lyric_line_time(int i);/* 第 i 行时间戳(ms;越界 -1)。播放页点行跳转(§22) */ /* cover */ void cover_request(const char *url); /* 提交目标封面 URL(后台线程下载+解码) */ @@ -328,6 +343,9 @@ int cover_changed(void); /* 1=有新封面待绘制(UI tick void cover_ack(void); /* UI 消费一次(已见当前版本) */ const char *cover_current_path(void); /* 封面原始文件路径(供 launcher 媒体卡片读);NULL=无 */ void cover_cache_reset(void); +#ifdef MEOW_UI_HOST_TEST +void cover_host_inject(const char *path); /* 宿主测试桩:本地封面注入(验证封面/模糊底图) */ +#endif /* ---- play(app/play/)---- */ /* audio_out(后端:默认 SINK_AUDIOD=meow_audiod 独占服务;env NCM_AUDIO_SINK=file/null/alsa diff --git a/patch_v2/ncm_app/app/test/test_ncm_app.c b/patch_v2/ncm_app/app/test/test_ncm_app.c index 469a7ee..98f7a9e 100644 --- a/patch_v2/ncm_app/app/test/test_ncm_app.c +++ b/patch_v2/ncm_app/app/test/test_ncm_app.c @@ -89,7 +89,10 @@ static int page_id(const char *name) if (strcmp(name, "home") == 0) return ACT_HOME; if (strcmp(name, "playlist") == 0) return ACT_PLAYLIST; if (strcmp(name, "player") == 0) return ACT_PLAYER; - if (strcmp(name, "lands") == 0) return ACT_PLAYER; /* 横屏布局 */ + if (strcmp(name, "plcover") == 0) return ACT_PLAYER; /* §22 封面页(双页重做) */ + if (strcmp(name, "pllyric") == 0) return ACT_PLAYER; /* §22 歌词页(双页重做) */ + if (strcmp(name, "gestest") == 0) return ACT_PLAYER; /* §22 手势切换自检 */ + if (strcmp(name, "grid") == 0) return ACT_PLAYER; /* 保留:旧横屏(重做后恒竖屏) */ if (strcmp(name, "playerbuf") == 0) return ACT_PLAYER; /* §18 缓冲态 */ if (strcmp(name, "playererr") == 0) return ACT_PLAYER; /* §18 错误态 */ if (strcmp(name, "settings") == 0) return ACT_SETTINGS; @@ -138,7 +141,9 @@ int main(int argc, char **argv) printf("live unikey=%s qr_url=%s size=%d\n", unikey, g_st.qr_url, sz); } else if (strcmp(name, "playlist") == 0) { mock_playlists(); mock_songs(); } - else if (strcmp(name, "player") == 0 || strcmp(name, "lands") == 0) { + else if (strcmp(name, "player") == 0 || strcmp(name, "plcover") == 0 || + strcmp(name, "pllyric") == 0 || strcmp(name, "gestest") == 0 || + strcmp(name, "grid") == 0) { mock_playlists(); mock_songs(); mock_lyric(); pthread_mutex_lock(&g_play.mu); g_play.state = NCM_PC_PLAYING; @@ -207,10 +212,39 @@ int main(int argc, char **argv) else if (strcmp(name, "search") == 0) v = search_view_create(); if (!v) { fprintf(stderr, "bad page\n"); return 1; } - if (strcmp(name, "lands") == 0) player_set_screen(1); + if (strcmp(name, "grid") == 0) player_set_screen(1); /* 兼容占位(重做后恒竖屏) */ int pid = (strcmp(name, "loginlive") == 0) ? ACT_LOGIN : page_id(name); meow_view_page_push(pid); + /* §22:歌词页模式注入 + 本地封面注入(0 真实请求) */ + if (strcmp(name, "pllyric") == 0) player_set_page(1); + const char *bg = getenv("NCM_BGMODE"); + if (bg && strcmp(bg, "power_save") == 0) g_st.player_bg_mode = NCM_BG_POWER_SAVE; + const char *cover = getenv("NCM_COVER"); + if (cover && cover[0]) cover_host_inject(cover); + + /* §22 手势切换自检(宿主直调,不依赖 SDK 触摸管线):封面页中部左滑→歌词页、右滑→封面页。 + * 起点取封面区(避开进度条/控制钮),验证 page-drag 锁存与判向。 */ + if (strcmp(name, "gestest") == 0) { + int p0 = player_page(); + player_touch_down(240, 200); /* 中部,封面区 */ + player_touch_move(140, 200); /* 左移 100px → 锁存 */ + player_on_tap(140, 200); /* 抬手落 tap → 判为页切换 */ + int p1 = player_page(); + player_touch_down(240, 200); + player_touch_move(340, 200); /* 右移 100px */ + player_on_swipe(MEOW_SWIPE_RIGHT, 100); /* SDK 中部右滑 → SWIPE_RIGHT */ + int p2 = player_page(); + /* 起点在进度条上不锁存(防拖进度条误判翻页);(240,504)=进度条行 */ + player_touch_down(240, 504); + player_touch_move(140, 504); + player_on_tap(140, 504); /* 拖进度条抬手 → 应仍为封面页(seek 而非翻页) */ + int latched_change = player_page(); + int ok = (p0 == 0 && p1 == 1 && p2 == 0 && latched_change == 0); + printf("gesture: p0=%d p1(左滑)=%d p2(右滑)=%d 省电锁存=%d -> %s\n", + p0, p1, p2, latched_change, ok ? "PASS" : "FAIL"); + if (!ok) return 1; + } /* player 页:其 on_tick 通常驱动进度;这里直接再画一次确保状态就绪 */ meow_ui_paint_full(); if (page_id(name) == ACT_PLAYER) { diff --git a/patch_v2/ncm_app/app/ui/ncm_colors.c b/patch_v2/ncm_app/app/ui/ncm_colors.c index bc9d22c..ca1a92c 100644 --- a/patch_v2/ncm_app/app/ui/ncm_colors.c +++ b/patch_v2/ncm_app/app/ui/ncm_colors.c @@ -47,7 +47,13 @@ void ncm_on_theme(meow_theme_mode m) if (d == g_dark) return; /* 无变化,忽略 */ g_dark = d; const meow_theme *th = meow_theme_get(); - meow_ui_set_page_bg(th->bg); /* 背景随系统明暗 */ + /* §22:播放页沉浸底恒 NCM_PLAYER_BG(日夜间「不动沉浸底」——主题配色只映射到 + * 半透明叠加层(歌词页 scrim)与 accent(红),由播放页绘制读取 g_dark 变化体现; + * 其余页面背景仍随系统明暗)。 */ + if (meow_ui_activity_active() == ACT_PLAYER) + meow_ui_set_page_bg(NCM_PLAYER_BG); + else + meow_ui_set_page_bg(th->bg); meow_ui_paint_full(); } diff --git a/patch_v2/ncm_app/app/ui/ncm_icons.h b/patch_v2/ncm_app/app/ui/ncm_icons.h new file mode 100644 index 0000000..41d3dda --- /dev/null +++ b/patch_v2/ncm_app/app/ui/ncm_icons.h @@ -0,0 +1,73 @@ +/* ncm_icons.h — 网易云播放页 MD3 矢量控制图标(Material Symbols Rounded 风格)。 + * 单通道 alpha 位图 32x32(每像素 0..255 亮度/alpha),范式参照 sdk/sb_icons.h。 + * ★ 日/夜间预留:位图只存亮度;绘制颜色由调用方(ncm_palette/meow_theme)提供。 + * 生成:/tmp/gen_md3_icons.py(几何近似 + 8x 超采样抗锯齿;未提交生成器,仅提交位图头)。 + */ +#ifndef NCM_ICONS_H +#define NCM_ICONS_H +#define NCM_ICON_SIZE 32 +typedef struct { const unsigned char *data; } ncm_icon_t; + +static const unsigned char NCM_ICON_PREV[1024]={ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,0,0,0,0,8,148,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,0,0,0,48,215,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0, +0,4,116,251,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,28,191,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,88,239,255,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,16,163,255,255,255,255,255, +255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,32,191,255,255,255,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,4,120,251,255,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,48,215,255,255,255,255,32,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,0,12,148,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,0,0,0,76,235,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,159,0,0,0,0,0,0,0,20,179,32,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,20,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const unsigned char NCM_ICON_PLAY[1024]={ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +179,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,243,108,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,199,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +251,132,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,215,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,155,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,231,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,247,116,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,187,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,235,96,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,163,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,223,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,251,140,12,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,207,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const unsigned char NCM_ICON_PAUSE[1024]={ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0, +0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255, +255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,255,255,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,32,4,0,0,0,32,32,32,32,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const unsigned char NCM_ICON_NEXT[1024]={ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,16,0,0,0,0,0,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,227,68,0,0,0,0,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,140,8,0, +0,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,207,44,0,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,247,112,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,183,28,0, +255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,207,48,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,144,8,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,227,68,0,0,0,0,255,255,32,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,171,20,0,0,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,243,100,0,0,0,0,0,0,0,255,255,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,32,0,0,0,0,0,0,0,0,255,255,32,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,32,32,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +static const ncm_icon_t ncm_icons[] = { + { NCM_ICON_PREV }, { NCM_ICON_PLAY }, { NCM_ICON_PAUSE }, { NCM_ICON_NEXT }, +}; + +/* 枚举索引(与 ncm_icons[] 对应) */ +enum { NCM_I_PREV=0, NCM_I_PLAY=1, NCM_I_PAUSE=2, NCM_I_NEXT=3 }; +#endif /* NCM_ICONS_H */ diff --git a/patch_v2/ncm_app/app/ui/player.c b/patch_v2/ncm_app/app/ui/player.c index e32d2b8..91ac684 100644 --- a/patch_v2/ncm_app/app/ui/player.c +++ b/patch_v2/ncm_app/app/ui/player.c @@ -1,44 +1,72 @@ -/* ui/player.c — 播放页(ACT_PLAYER):黑胶唱盘 + 唱针 + 进度/控制/滚动歌词(竖/横布局可切)。 +/* ui/player.c — 播放页(ACT_PLAYER)重做:封面页/歌词页双页(屏幕正中左/右滑切换)。 * - * 黑胶(NCM_UI_DESIGN §5.1,软渲无圆形原语,全 fill_rect 行扫): - * ① 盘体 = 对每行 dy 取 half=√(R²-dy²) 画 fill_rect(同心圆)。 - * ② 封面粉圆 = 方盖(S=R×√2)内切于圆 + 四角把「圆外-方外」两段盖回盘色 = 封面成圆。 - * ③ 唱针 = 从盘心右上到盘缘一根 3px 唱臂 + 端头;播放压盘/暂停微抬(状态切换才画)。 - * 盘恒黑(palette.disc),accent(进度已播/播放钮/歌词高亮)日夜换红明暗(palette.red/red_lit)。 + * 设计(NCM_CACHE_DESIGN §6 定案 2026-09-01): + * - 去掉标题栏(不再用 ncm_topbar);返回仍走左缘手势(SWIPE_LEFT → app_on_swipe → page_pop) + * /系统返回钮语义。 + * - 双页结构:封面页 / 歌词页。屏幕正中左/右滑切换。手势分流:左缘 ≤24px 归系统返回 + * (SDK SWIPE_LEFT),顶部热区归通知中心,中部横滑归页切换(页面指示点显示当前页)。 + * - 封面页:方形大图+圆角(cover.c LRU,无旋转动画)+ 进度条(可点 seek)+ MD3 矢量控制钮 + * (prev/play-pause/next,ncm_icons.h 32x32 单通道 alpha,参照 sb_icons.h 范式) + * + 元信息 + 实际音质档 + 页面指示点;缓冲/错误态沿用(「缓冲中…N%」/中文错误条+重试)。 + * - 歌词页:LRC 滚动(当前行高亮居中,上下行渐隐)+ 点行跳转;默认=封面模糊置底, + * 省电=封面背景+黑色半透明叠加层(设置 ncm.player_bg_mode: default/power_save)。 + * - 日夜间切换:主题配色只映射到半透明叠加层(歌词页 scrim)与 accent(红), + * 不动沉浸底(恒 NCM_PLAYER_BG)。 * - * 性能(§6,专项):**分带刷新**——内容拆 盘带(仅圆盘) + 动态带(歌名/进度/控制/歌词/页脚) 两个绘制物, - * 各带独立且互不重叠 bbox。tick 只标脏「变化的那一条带」,盘带仅 歌曲/封面/播停态 变化才重画 - * (修 player_tick 每 tick 刷整 r_cont 的隐患)。播放页恒沉浸(day 瓷白 / night 近黑, - * 不随系统明暗整体反转,仅 accent 换红明暗,§5.4)。 + * 性能(§6 专项,分带刷新纪律沿用): + * - 封面页拆「封面静态带 g_cover_r」+「动态带 g_dyn_r」(互不重叠 bbox):tick 只标脏 + * 动态带(进度/控制/元信息/指示点),封面带仅 歌曲/封面 变化才重画(不整页重绘)。 + * - 歌词页为「整屏带状物」(bg 置底 + 歌词叠加):仅在 进入/切歌/封面变化/换背景模式/ + * 换行(~5s 一次)时整屏重画;pos tick 不重画歌词页(歌词按行进,非逐帧滚动)。 + * - 模糊底图 = 封面按屏幕铺底(meow_ui_img_scaled 最近邻)+ scrim 叠加;区域重画时绘制 + * clip 收敛(meow_ui_draw.c),只算相交区,避免 overdraw。 */ #include "../ncm_app_internal.h" #include #include #include #include +#include "ncm_icons.h" + +/* 播放页固定视觉色(沉浸底恒 NCM_PLAYER_BG;文本/控件用固定浅色 —— 日夜间仅 accent 红 + * 与歌词 scrim 随 g_dark/主题变化,不动底。参照 §8.1「语义色」但播放页为沉浸深色介质, + * 文本若跟主题 onSurface(浅色主题为近黑)会隐形,故播放页用固定浅前景。 */ +#define PLR_TEXT 0xEDEDED /* 主文本 */ +#define PLR_TEXT_DIM 0xA6A6AC /* 次文本/时间 */ +#define PLR_CTRL_BG 0x2A2A30 /* prev/next 圆形钮底 */ +#define PLR_CTRL_FG 0xE8E8E8 +#define PLR_TRACK_BG 0x33333A /* 进度条未播轨 */ +#define PLR_EDGE_W 24 /* 左缘返回热区(与 SDK EDGE_W 一致,防抢返回) */ +#define PLR_SWIPE_MS 65 /* 中部横滑判页阈值(与 SDK SWIPE_THRESH 一致) */ typedef struct { meow_view *view; int active; } player_ctrl; static player_ctrl g_plc; -static meow_widget *g_tb; -static ncm_rect_t r_cont; -static int g_custom_disc, g_custom_dyn; -static int g_landscape; -static int g_last_pos_ms, g_last_state, g_last_line, g_last_song; -static int g_last_dl, g_last_err; /* 缓冲进度粒度值 / 错误沿(§18) */ -static int g_last_eff; /* 生效档沿(§20:降级标注出现/消失刷动态带) */ -static char g_last_meta_id[24]; /* 已上封面的元数据 id(快照滞后 settle 时纠正封面/歌名) */ +static int g_ppage; /* 0=封面页 1=歌词页 */ +static int g_pstatic, g_pdyn; /* 自定义绘制物 id(按当前页注册) */ +static int g_W, g_H; /* 屏尺寸(沉浸:0,0,W,H) */ +static int g_last_pos_ms, g_last_state, g_last_song, g_last_line, g_last_eff; +static int g_last_dl, g_last_err; +static char g_last_meta_id[24]; -/* 运行期几何(player_compute_geom 填充;各带绘制物/命中共用)。 */ -static ncm_rect_t g_disc_r, g_dyn_r; /* 盘带 / 动态带 bbox(不重叠) */ -static int g_cx, g_cy, g_R, g_S; /* 盘心 / 半径 / 封面边长 */ -static ncm_rect_t g_bar; /* 进度条 */ -static int g_times_y; -static int g_ctl_y, g_cprev_x, g_cplay_x, g_cnext_x, g_cr; -static int g_title_y, g_artist_y, g_info_x, g_info_w; -static ncm_rect_t g_lyr; /* 歌词区 */ +/* 中部横滑跟踪(on_touch_down/move 记录;resolved in on_tap/on_swipe) */ +static int g_touch_on; +static int g_touch_sx, g_touch_sy; +static int g_drag_latched, g_drag_dx; -#define CTL_RR 30 /* 侧钮命中半径(命中容差) */ +/* ---- 封面页几何 ---- */ +static ncm_rect_t g_cover_r; /* 封面页静态带(方形大图) */ +static ncm_rect_t g_dyn_r; /* 封面页动态带(元信息/进度/控制/指示点) */ +static int g_title_y, g_artist_y, g_qual_y, g_times_y; +static ncm_rect_t g_bar; +static int g_ctl_y, g_prev_x, g_play_x, g_next_x, g_r_side, g_r_play, g_dots_y; + +/* ---- 歌词页几何 ---- */ +static int g_lyr_cx; /* 歌词垂直中心(屏中线) */ +static int g_lyr_lh; /* 行高 */ +static int g_lyr_meta_y; /* 顶部元信息 y */ + +#define CTL_RR (g_r_side + 8) /* 侧钮命中容差(圆外一点仍可点) */ static int cur_song(void) { @@ -62,317 +90,455 @@ static void fmt_ms(int64_t ms, char *out, size_t sz) snprintf(out, sz, "%d:%02d", sec / 60, sec % 60); } -static void tri(int x0, int y0, int h, int w, int dir, uint32_t color) +/* 颜色插值(t=0..255 混向 b)。播放页歌词渐隐/叠加用(无 GPU,逐通道整数混合)。 */ +static uint32_t mix_c(uint32_t a, uint32_t b, int t) { - for (int i = 0; i < h; i++) { - int wi = 1 + i * w / h; - if (dir == 1) meow_ui_fill_rect(x0, y0 + i, wi, 1, color); - else meow_ui_fill_rect(x0 - wi + 1, y0 + i, wi, 1, color); + if (t < 0) t = 0; if (t > 255) t = 255; + int ar = (a >> 16) & 255, ag = (a >> 8) & 255, ab = a & 255; + int br = (b >> 16) & 255, bg = (b >> 8) & 255, bb = b & 255; + int r = ar + ((br - ar) * t + 128) / 255; + int g = ag + ((bg - ag) * t + 128) / 255; + int bl = ab + ((bb - ab) * t + 128) / 255; + return ((uint32_t)r << 16) | ((uint32_t)g << 8) | (uint32_t)bl; +} + +/* MD3 图标 blit:把 ncm_icons.h 的 32x32 单通道 alpha 位图最近邻放大到 size×size,居中于 + * (cx,cy),逐像素以 color/alpha 混到 back_buf(fill_rect_alpha blend565)。 */ +static void draw_md3_icon(int idx, int cx, int cy, int size, uint32_t color) +{ + const unsigned char *src = ncm_icons[idx].data; + if (size <= 0) return; + int x0 = cx - size / 2, y0 = cy - size / 2; + for (int y = 0; y < size; y++) { + int sy = (y * NCM_ICON_SIZE) / size; + if (sy >= NCM_ICON_SIZE) sy = NCM_ICON_SIZE - 1; + for (int x = 0; x < size; x++) { + int sx = (x * NCM_ICON_SIZE) / size; + if (sx >= NCM_ICON_SIZE) sx = NCM_ICON_SIZE - 1; + int a = src[sy * NCM_ICON_SIZE + sx]; + if (a > 4) meow_ui_fill_rect_alpha(x0 + x, y0 + y, 1, 1, color, a); + } } } -static void draw_ctl(int cx, int cy, int r, int kind, uint32_t base, uint32_t fg) +/* 控制钮:圆形底 + MD3 图标(无逐帧三角行扫)。icon 尺寸按底半径缩放(~4r/3 使 24 内容入圈)。 */ +static void draw_ctrl_btn(int icon, int cx, int cy, int r, uint32_t circle, uint32_t fg) { - for (int i = 0; i < 2 * r; i++) { - int dy = i - r; + for (int dy = -r; dy <= r; dy++) { int half = (int)sqrt((double)(r * r - dy * dy)); if (half <= 0) continue; - meow_ui_fill_rect(cx - half, cy - r + i, 2 * half, 1, base); + meow_ui_fill_rect(cx - half, cy + dy, 2 * half, 1, circle); } - int t = r / 2; - if (kind == 0) { meow_ui_fill_rect(cx - r - 2, cy - t, 4, 2*t, fg); - tri(cx + r - 4, cy - t, 2*t, 2*t, -1, fg); } - else if (kind == 1) { tri(cx - t, cy - t, 2*t, 2*t, 1, fg); } - else if (kind == 2) { meow_ui_fill_rect(cx - t - 2, cy - t, 4, 2*t, fg); - meow_ui_fill_rect(cx + t - 2, cy - t, 4, 2*t, fg); } - else { tri(cx - r + 4, cy - t, 2*t, 2*t, 1, fg); - meow_ui_fill_rect(cx + r - 2, cy - t, 4, 2*t, fg); } + draw_md3_icon(icon, cx, cy, (r * 4) / 3, fg); } -static void arm_line(int x0, int y0, int x1, int y1, uint32_t color, int wpx) +/* 圆角封面四角裁掉:把方形图四角(圆角外-方形内)盖回背景色(廉价圆角,无 GPU 裁剪)。 */ +static void round_corners_bg(int x, int y, int w, int h, int r, uint32_t bg) { - int dx = x1 - x0, dy = y1 - y0; - int steps = (abs(dx) > abs(dy) ? abs(dx) : abs(dy)) / 2 + 1; - if (steps < 1) steps = 1; - for (int i = 0; i <= steps; i++) { - int x = x0 + dx * i / steps; - int y = y0 + dy * i / steps; - meow_ui_fill_rect(x - wpx / 2, y - wpx / 2, wpx, wpx, color); + if (r > w / 2) r = w / 2; + if (r > h / 2) r = h / 2; + for (int dy = 0; dy < r; dy++) { + int inset = r - (int)sqrt((double)(r * r - (r - dy) * (r - dy))); + if (inset < 0) inset = 0; + if (inset > w / 2) inset = w / 2; + meow_ui_fill_rect(x, y + dy, inset, 1, bg); + meow_ui_fill_rect(x + w - inset, y + dy, inset, 1, bg); + meow_ui_fill_rect(x, y + h - 1 - dy, inset, 1, bg); + meow_ui_fill_rect(x + w - inset, y + h - 1 - dy, inset, 1, bg); } } -/* 几何(竖/横布局)。带 bbox:盘带=圆盘矩形,动态带=其余(互不重叠)。 */ +static void draw_page_dots(int y) +{ + const meow_theme *th = meow_theme_get(); + const ncm_pal_t *pa = ncm_palette(g_dark); + for (int i = 0; i < 2; i++) { + int cx = g_W / 2 - 13 + i * 26; + uint32_t c = (i == g_ppage) ? pa->red : th->outlineVariant; + for (int dy = -4; dy <= 4; dy++) { + int half = (int)sqrt((double)(16 - dy * dy)); + if (half <= 0) continue; + meow_ui_fill_rect(cx - half, y + dy, 2 * half, 1, c); + } + } +} + +/* 几何(沉浸:0,0,W,H)。封面页/歌词页各自布局。 */ static void player_compute_geom(void) { - r_cont = ncm_content_rect(); - if (g_landscape) { - g_cx = 180; g_cy = 360; g_R = 120; g_S = (int)(g_R * 1.414); - g_info_x = 340; g_info_w = r_cont.x + r_cont.w - 16 - g_info_x; - g_title_y = 150; g_artist_y = 188; - g_bar = NR(g_info_x, 240, 108, 4); g_times_y = 226; - g_ctl_y = 310; g_cprev_x = 348; g_cplay_x = 404; g_cnext_x = 460; g_cr = 26; - g_lyr = NR(300, 372, 164, 280); - } else { - g_cx = 240; g_cy = 272; g_R = 104; g_S = (int)(g_R * 1.414); - g_info_x = 240; g_info_w = r_cont.w; - g_title_y = 388; g_artist_y = 422; - g_bar = NR(56, 456, 368, 4); g_times_y = 436; - g_ctl_y = 508; g_cprev_x = 176; g_cplay_x = 240; g_cnext_x = 304; g_cr = 30; - g_lyr = NR(16, 546, 448, 150); - } - int cb = r_cont.y + r_cont.h - APP_FOOTER_H; - if (g_lyr.y + g_lyr.h > cb) g_lyr.h = cb - g_lyr.y; - if (g_lyr.h < 0) g_lyr.h = 0; - if (g_landscape) { - g_disc_r = NR(g_cx - g_R, g_cy - g_R, 2*g_R, 2*g_R); /* 左盘区 */ - int dy0 = g_title_y - 12; - g_dyn_r = NR(g_info_x - 20, dy0, r_cont.x + r_cont.w - (g_info_x - 20), cb - dy0 + 8); - } else { - g_disc_r = NR(0, g_cy - g_R, r_cont.w, 2*g_R); /* 全宽圆盘带 */ - g_dyn_r = NR(0, g_cy + g_R, r_cont.w, cb - (g_cy + g_R)); /* 其余(含歌名/进度/歌词) */ - } + g_W = meow_ui_width(); + g_H = meow_ui_height(); + int W = g_W, H = g_H; + + int cs = 304; /* 封面边长(方形) */ + if (cs > W - 2 * APP_PAD) cs = W - 2 * APP_PAD; + g_cover_r = NR((W - cs) / 2, 64, cs, cs); /* 64..368 */ + + g_title_y = g_cover_r.y + g_cover_r.h + 32; /* 400 */ + g_artist_y = g_title_y + 32; /* 432 */ + g_qual_y = g_artist_y + 26; /* 458 */ + g_times_y = g_qual_y + 26; /* 484 */ + g_bar = NR(48, g_times_y + 20, W - 96, 4); /* 504 (h=4) */ + g_ctl_y = g_bar.y + 64; /* 568 */ + g_prev_x = W / 2 - 92; g_play_x = W / 2; g_next_x = W / 2 + 92; + g_r_side = 24; g_r_play = 34; + g_dots_y = g_ctl_y + 62; /* 630 */ + + /* 动态带 = 封面下方(元信息/进度/控制/指示点),与封面静态带不重叠。 */ + g_dyn_r = NR(0, g_cover_r.y + g_cover_r.h, W, H - (g_cover_r.y + g_cover_r.h)); + + g_lyr_cx = H / 2; /* 360 */ + g_lyr_lh = 30; + g_lyr_meta_y = 22; } -/* 盘带绘制物:盘体 + 方盖内切圆(四角盖色) + 封面 + 唱针。仅 歌曲/封面/播停态 见变化才重画。 */ -static void plr_draw_disc(void *ctx) +/* ============================================================ */ +/* 绘制物 */ +/* ============================================================ */ + +/* 封面页静态带:方形大图 + 圆角 + 兜底占位。仅 歌曲/封面 变化才重画。 */ +static void plr_draw_cover_static(void *ctx) { (void)ctx; - if (meow_ui_activity_active() != ACT_PLAYER) return; + if (meow_ui_activity_active() != ACT_PLAYER || g_ppage != 0) return; const meow_theme *th = meow_theme_get(); - const ncm_pal_t *pa = ncm_palette(g_dark); - int cx = g_cx, cy = g_cy, R = g_R, S = g_S; - int st = player_manager_state(); - int paused = (st == NCM_PC_PAUSED); - - for (int dy = -R; dy <= R; dy++) { - int half = (int)sqrt((double)(R*R - dy*dy)); - if (half <= 0) continue; - meow_ui_fill_rect(cx - half, cy + dy, 2*half, 1, pa->disc); - } - for (int rr = R - 3; rr >= R - 12; rr -= 4) { - for (int dy = -rr; dy <= rr; dy++) { - int half = (int)sqrt((double)(rr*rr - dy*dy)); - if (half <= 0) continue; - meow_ui_fill_rect(cx - half, cy + dy, 2*half, 1, pa->disc_edge); - } - } - - /* 封面:方盖内切于圆 + 四角盖回盘色 → 封面成圆。(cover_get 持锁,绘完 cover_put,§18) */ + const ncm_pal_t *pa = ncm_palette(g_dark); meow_img *cov = cover_get(); - int hS = S / 2; - if (cov) meow_ui_img_cover(cx - hS, cy - hS, S, cov); - else { - for (int dy = -hS; dy <= hS; dy++) { - int half = (int)sqrt((double)(hS*hS - dy*dy)); - if (half <= 0) continue; - meow_ui_fill_rect(cx - half, cy + dy, 2*half, 1, pa->red_ctr); - } - meow_ui_text_center(cx, cy - 10, "\u266a", th->font_body, pa->red); + if (cov) { + meow_ui_img_cover(g_cover_r.x, g_cover_r.y, g_cover_r.w, cov); + round_corners_bg(g_cover_r.x, g_cover_r.y, g_cover_r.w, g_cover_r.h, 16, NCM_PLAYER_BG); + } else { + ncm_fill_round(g_cover_r.x, g_cover_r.y, g_cover_r.w, g_cover_r.h, 16, pa->red_ctr); + meow_ui_text_center(g_cover_r.x + g_cover_r.w / 2, + g_cover_r.y + g_cover_r.h / 2 - 12, "\u266a", th->font_body, pa->red); } cover_put(); - for (int dy = -R; dy <= R; dy++) { - int half = (int)sqrt((double)(R*R - dy*dy)); - if (half <= hS) continue; - meow_ui_fill_rect(cx - half, cy + dy, half - hS, 1, pa->disc); - meow_ui_fill_rect(cx + hS, cy + dy, half - hS + 1, 1, pa->disc); - } - meow_ui_fill_rect(cx - 2, cy - 2, 4, 4, pa->player_bg); /* 盘心孔 */ - - /* 唱针:播放压盘 / 暂停微抬 6px。 */ - int arm_top = paused ? 6 : 0; - int ax0 = cx + 40, ay0 = cy - 70 + arm_top; - int ax1 = cx + R - 6, ay1 = cy + 8 + arm_top; - arm_line(ax0, ay0, ax1, ay1, th->outline, 3); - meow_ui_fill_rect(ax1 - 3, ay1 - 3, 6, 6, th->onSurface); - - /* 高光(廉价):左下 45° 1px 弧。 */ - for (int a = 0; a < 20; a++) { - double t = (a / 19.0) * (3.14159 / 2); - int hx = cx - (int)((R - 6) * 0.71 * cos(t)); - int hy = cy + (int)((R - 6) * 0.71 * sin(t)); - meow_ui_fill_rect_alpha(hx, hy, 2, 1, 0xFFFFFF, 60); - } } -/* 动态带绘制物:歌名/歌手 + 进度条/时间 + 控制钮 + 滚动歌词 + 页脚。tick 主要刷此带。 */ -static void plr_draw_dyn(void *ctx) +/* 封面页动态带:元信息 + 实际音质档 + 进度条/时间 + 控制钮 + 指示点 + 缓冲/错误态。 + * tick 主要刷此带(进度/控制/元数据变化)。 */ +static void plr_draw_cover_dyn(void *ctx) { (void)ctx; - if (meow_ui_activity_active() != ACT_PLAYER) return; - const meow_theme *th = meow_theme_get(); - const ncm_pal_t *pa = ncm_palette(g_dark); + if (meow_ui_activity_active() != ACT_PLAYER || g_ppage != 0) return; + const ncm_pal_t *pa = ncm_palette(g_dark); + int W = g_W; ncm_song_t sm; int have = (cur_song_meta(&sm) == 0); const char *nm = have ? sm.name : "暂无播放"; const char *ar = have ? sm.art_name : ""; - if (g_landscape) { - meow_ui_text(g_info_x, g_title_y, ncm_text_fit(nm, g_info_w, 28), 28, th->onSurface); - meow_ui_text(g_info_x, g_artist_y, ncm_text_fit(ar, g_info_w, 20), 20, th->onSurfaceVariant); - } else { - meow_ui_text_center(g_info_x, g_title_y, nm, 28, th->onSurface); - meow_ui_text_center(g_info_x, g_artist_y, ar, 20, th->onSurfaceVariant); - } - - /* 进度条 + 时间 */ - int pos = (int)player_manager_pos_ms(); - int dur = (int)player_manager_dur_ms(); - if (dur <= 0 && have) dur = (int)sm.duration_ms; - int frac = dur > 0 ? (int)((int64_t)pos * 1000 / dur) : 0; - if (frac < 0) frac = 0; if (frac > 1000) frac = 1000; - char lp[16], rp[16]; - fmt_ms(pos, lp, sizeof lp); - fmt_ms(dur, rp, sizeof rp); - if (g_landscape) { - meow_ui_text(g_bar.x, g_times_y, lp, 20, th->onSurfaceVariant); - meow_ui_text_right(g_bar.x + g_bar.w, g_times_y, rp, 20, th->onSurfaceVariant); - } else { - meow_ui_text(44, g_times_y, lp, 20, th->onSurfaceVariant); - meow_ui_text_right(r_cont.x + r_cont.w - 44, g_times_y, rp, 20, th->onSurfaceVariant); - } - meow_ui_fill_rect(g_bar.x, g_bar.y, g_bar.w, g_bar.h, th->surfaceVariant); - meow_ui_fill_rect(g_bar.x, g_bar.y, (int)((int64_t)g_bar.w * frac / 1000), g_bar.h, pa->red); - - /* §20:实际生效音质档(与用户档不同时小字标注「已降级至 xx」;缓冲期未定不显示)。 - * 位置:时间行中部(左右是时间戳,中央留白),竖/横屏同一条带。 */ - { - int eff = player_manager_eff_level(); - if (have && eff >= 0 && player_manager_state() != NCM_PC_STOPPED) { - char qb[72]; - if (eff != g_st.level) - snprintf(qb, sizeof qb, "已降级至 %s", ncm_level_name(eff)); - else - snprintf(qb, sizeof qb, "%s", ncm_level_name(eff)); - int qcx = g_landscape ? (g_bar.x + g_bar.w / 2) : (r_cont.x + r_cont.w / 2); - uint32_t qc = (eff != g_st.level) ? pa->red : th->onSurfaceVariant; - meow_ui_text_center(qcx, g_times_y, qb, 18, qc); - } - } - int st = player_manager_state(); - draw_ctl(g_cprev_x, g_ctl_y, g_cr - 6, 0, th->surfaceContainer, th->onSurface); - /* 暂停/停止(出错待重试)都画「播放」三角;播放/缓冲画暂停符 */ - draw_ctl(g_cplay_x, g_ctl_y, g_cr, - (st == NCM_PC_PAUSED || st == NCM_PC_STOPPED) ? 1 : 2, pa->red, pa->on_red); - draw_ctl(g_cnext_x, g_ctl_y, g_cr - 6, 3, th->surfaceContainer, th->onSurface); - - /* 歌词区(分隔线 + 滚动歌词,当前行红高亮居中) */ - meow_ui_fill_rect(g_lyr.x, g_lyr.y, g_lyr.w, 1, th->outlineVariant); - int n = lyric_count(); - int line_h = (g_landscape) ? 24 : 26; - int center_y = g_lyr.y + g_lyr.h / 2; - int lcx = g_lyr.x + g_lyr.w / 2; int perr = player_manager_error(); + + /* 元信息(歌名/歌手) */ + meow_ui_text_center(W / 2, g_title_y, ncm_text_fit(nm, W - 32, 28), 28, PLR_TEXT); + meow_ui_text_center(W / 2, g_artist_y, ncm_text_fit(ar, W - 32, 20), 20, PLR_TEXT_DIM); + + /* §20 实际生效音质档(与用户档不同→红字「已降级至 xx」);缓冲/错误态不显示 */ + int eff = player_manager_eff_level(); + if (have && eff >= 0 && st != NCM_PC_STOPPED) { + char qb[72]; + if (eff != g_st.level) + snprintf(qb, sizeof qb, "已降级至 %s", ncm_level_name(eff)); + else + snprintf(qb, sizeof qb, "%s", ncm_level_name(eff)); + uint32_t qc = (eff != g_st.level) ? pa->red_lit : PLR_TEXT_DIM; + meow_ui_text_center(W / 2, g_qual_y, qb, 18, qc); + } + + /* 缓冲/错误态(沿用 §18 三态;错误时用文案替代时间行) */ if (perr != 0) { - /* §18:播放错误明示(旧版 err 无 UI 消费者 → 失败无声死等) */ const char *em = (perr == NCM_ERR_VIP) ? "VIP 专享,开通会员后可播放" : (perr == NCM_ERR_NOTFOUND) ? "无法播放:无音源(VIP/版权)" : (perr == NCM_ERR_AUTH) ? "登录已过期,请重新登录" : "加载失败,请检查网络"; - meow_ui_text_center(lcx, center_y - 20, em, 20, pa->red); - meow_ui_text_center(lcx, center_y + 10, "点播放键重试 / 切下一首", 20, th->onSurfaceVariant); - } - else if (st == NCM_PC_BUFFER) { - /* §18:缓冲反馈(song_url 获取 + 下载全程不再无提示) */ - int64_t dd = 0, dt = 0; - player_manager_dl(&dd, &dt); - char bbuf[48]; - if (dt > 0) { - int pct = (int)(dd * 100 / dt); - if (pct > 100) pct = 100; - snprintf(bbuf, sizeof bbuf, "缓冲中… %d%%", pct); - } else if (dd > 0) { - snprintf(bbuf, sizeof bbuf, "缓冲中… %lldKB", (long long)(dd / 1024)); + meow_ui_text_center(W / 2, g_times_y - 8, em, 20, pa->red_lit); + meow_ui_text_center(W / 2, g_times_y + 18, "点播放键重试 / 切下一首", 18, PLR_TEXT_DIM); + } else { + /* 进度条 + 时间 */ + int pos = (int)player_manager_pos_ms(); + int dur = (int)player_manager_dur_ms(); + if (dur <= 0 && have) dur = (int)sm.duration_ms; + int frac = dur > 0 ? (int)((int64_t)pos * 1000 / dur) : 0; + if (frac < 0) frac = 0; if (frac > 1000) frac = 1000; + char lp[16], rp[16]; + fmt_ms(pos, lp, sizeof lp); + fmt_ms(dur, rp, sizeof rp); + if (st == NCM_PC_BUFFER) { + int64_t dd = 0, dt = 0; + player_manager_dl(&dd, &dt); + char bbuf[48]; + if (dt > 0) { + int pct = (int)(dd * 100 / dt); + if (pct > 100) pct = 100; + snprintf(bbuf, sizeof bbuf, "缓冲中… %d%%", pct); + } else if (dd > 0) { + snprintf(bbuf, sizeof bbuf, "缓冲中… %lldKB", (long long)(dd / 1024)); + } else { + snprintf(bbuf, sizeof bbuf, "缓冲中…"); + } + meow_ui_text_center(W / 2, g_times_y - 8, bbuf, 20, PLR_TEXT_DIM); } else { - snprintf(bbuf, sizeof bbuf, "缓冲中…"); - } - meow_ui_text_center(lcx, center_y - 10, bbuf, 20, th->onSurfaceVariant); - } - else if (n == 0) { - /* 二期:歌词后台加载,状态区分「加载中 / 真的无词」 */ - meow_ui_text_center(lcx, center_y - 10, - lyric_state() == 2 ? "暂无歌词" : "歌词加载中…", - 20, th->onSurfaceVariant); - } - else { - int64_t ps = player_manager_pos_ms(); - int cur2 = lyric_line_at(ps); - int lw = g_lyr.w - 8; /* 歌词列宽(裁剪,防窄列溢出) */ - for (int i = cur2 - 6; i <= cur2 + 5; i++) { - if (i < 0 || i >= n) continue; - int yy = center_y + (i - cur2) * line_h; - if (yy < g_lyr.y || yy + line_h > g_lyr.y + g_lyr.h) continue; /* 裁剪到歌词带(自定义绘制物不按 bbox 裁剪) */ - int is_cur = (i == cur2); - meow_ui_text_center(lcx, yy, ncm_text_fit(lyric_line_text(i), lw, is_cur ? 24 : 20), - is_cur ? 24 : 20, is_cur ? pa->red : th->onSurfaceVariant); - const char *tl = lyric_line_tl(i); - if (is_cur && tl && tl[0]) - meow_ui_text_center(lcx, yy + 24, ncm_text_fit(tl, lw, 20), 20, th->secondary); + meow_ui_text(48, g_times_y, lp, 20, PLR_TEXT_DIM); + meow_ui_text_right(W - 48, g_times_y, rp, 20, PLR_TEXT_DIM); } + meow_ui_fill_rect(g_bar.x, g_bar.y, g_bar.w, g_bar.h, PLR_TRACK_BG); + meow_ui_fill_rect(g_bar.x, g_bar.y, (int)((int64_t)g_bar.w * frac / 1000), g_bar.h, pa->red); } - /* 页脚提示(用「・」U+30FB 而非 U+00B7「·」:common 字库按 GB2312 解码 A1A4 得 U+30FB, - * 不含 U+00B7 → 后者在设备上是豆腐块。REPORT §11 二期。) */ - char foot[64]; - snprintf(foot, sizeof foot, "左缘右滑返回 ・ ⟳ 切横屏"); - meow_ui_text_center(r_cont.x + r_cont.w / 2, r_cont.y + r_cont.h - APP_FOOTER_H, - foot, 20, th->onSurfaceVariant); + /* 控制钮(MD3 图标) */ + draw_ctrl_btn(NCM_I_PREV, g_prev_x, g_ctl_y, g_r_side, PLR_CTRL_BG, PLR_CTRL_FG); + draw_ctrl_btn((st == NCM_PC_PAUSED || st == NCM_PC_STOPPED) ? NCM_I_PLAY : NCM_I_PAUSE, + g_play_x, g_ctl_y, g_r_play, pa->red, pa->on_red); + draw_ctrl_btn(NCM_I_NEXT, g_next_x, g_ctl_y, g_r_side, PLR_CTRL_BG, PLR_CTRL_FG); + + /* 页面指示点 */ + draw_page_dots(g_dots_y); +} + +/* 歌词页(整屏带状物):封面模糊置底 + scrim + 顶部元信息 + 滚动歌词(当前行高亮居中 + + * 上下行渐隐)+ 指示点。整屏在 进入/切歌/封面变化/换背景模式/换行 时重画;pos tick 不画。 */ +static void plr_draw_lyrics(void *ctx) +{ + (void)ctx; + if (meow_ui_activity_active() != ACT_PLAYER || g_ppage != 1) return; + const meow_theme *th = meow_theme_get(); + const ncm_pal_t *pa = ncm_palette(g_dark); + int W = g_W, H = g_H; + + /* 底:封面铺满(最近邻,模糊近似)。无封面 → 沉浸底。 + * ⚠️ cover_get() 持锁返回,勿在绘前 return(防 g_cm 泄漏 → 下次 paint 自锁死,§18)。 */ + meow_img *cov = cover_get(); + if (cov) meow_ui_img_scaled(0, 0, W, H, cov); + else meow_ui_fill_rect(0, 0, W, H, NCM_PLAYER_BG); + cover_put(); + /* 半透明叠加层:default=主题 scrim(日/夜跟随主题);power_save=黑色更重(§22)。 */ + if (g_st.player_bg_mode == NCM_BG_POWER_SAVE) + meow_ui_fill_rect_alpha(0, 0, W, H, 0x000000, 195); + else + meow_ui_fill_rect_alpha(0, 0, W, H, th->scrim, 150); + + /* 顶部元信息(title · artist,Apple Music 式顶部小字) */ + ncm_song_t sm; + if (cur_song_meta(&sm) == 0) { + char mb[300]; + snprintf(mb, sizeof mb, "%s · %s", sm.name, sm.art_name); + meow_ui_text_center(W / 2, g_lyr_meta_y, ncm_text_fit(mb, W - 48, 18), 18, PLR_TEXT); + } + + /* 歌词:当前行居中高亮;上下行渐隐(距中心越远越接近底色)。 */ + int n = lyric_count(); + int64_t ps = player_manager_pos_ms(); + int cur = (n > 0) ? lyric_line_at(ps) : -1; + int cy = g_lyr_cx; + int lo = g_lyr_meta_y + 44, hi = g_dots_y - 6; /* 歌词窗口(避顶部元信息/底部指示点) */ + for (int i = cur - 7; i <= cur + 6; i++) { + if (i < 0 || i >= n) continue; + int yy = cy + (i - cur) * g_lyr_lh; + if (yy < lo || yy + g_lyr_lh > hi) continue; + int is_cur = (i == cur); + int dist = (i - cur) < 0 ? (cur - i) : (i - cur); + int fade = dist * 42; /* 0..255,越远越淡 */ + if (fade > 214) fade = 214; /* 远行仍隐约可见,不全隐 */ + uint32_t base = is_cur ? pa->red_lit : PLR_TEXT; + uint32_t bgcol = (g_st.player_bg_mode == NCM_BG_POWER_SAVE) ? 0x000000 : th->scrim; + uint32_t col = mix_c(base, bgcol, fade); + int size = is_cur ? 24 : 20; + meow_ui_text_center(W / 2, yy, ncm_text_fit(lyric_line_text(i), W - 24, size), size, col); + if (is_cur) { + const char *tl = lyric_line_tl(i); + if (tl && tl[0]) + meow_ui_text_center(W / 2, yy + 28, ncm_text_fit(tl, W - 24, 18), 18, + mix_c(pa->red_lit, bgcol, 120)); + } + } + if (n == 0) { + meow_ui_text_center(W / 2, cy - 10, + lyric_state() == 2 ? "暂无歌词" : "歌词加载中…", 20, PLR_TEXT_DIM); + } + + draw_page_dots(g_dots_y); +} + +/* 按当前页注册两个绘制物(封面页=静态带+动态带;歌词页=整屏带状物)。 */ +static void player_apply_bands(void) +{ + if (g_pstatic) { meow_draw_unregister(g_pstatic); g_pstatic = 0; } + if (g_pdyn) { meow_draw_unregister(g_pdyn); g_pdyn = 0; } + if (g_ppage == 0) { + g_pstatic = meow_draw_custom_register(8, g_cover_r.x, g_cover_r.y, g_cover_r.w, g_cover_r.h, + plr_draw_cover_static, NULL); + g_pdyn = meow_draw_custom_register(9, g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h, + plr_draw_cover_dyn, NULL); + } else { + g_pdyn = meow_draw_custom_register(9, 0, 0, g_W, g_H, plr_draw_lyrics, NULL); + } +} + +static void player_static_invalidate(void) +{ + if (g_ppage == 0 && g_pstatic) + meow_ui_invalidate(g_cover_r.x, g_cover_r.y, g_cover_r.w, g_cover_r.h); + else if (g_ppage == 1 && g_pdyn) + meow_ui_invalidate(0, 0, g_W, g_H); /* 封面/背景变化 → 整屏重画歌词页 */ +} + +static void player_dyn_invalidate(void) +{ + if (g_ppage == 0 && g_pdyn) + meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); +} + +/* 切页:只改页面 + 重新注册带状物 + 整屏重画(切页低频,可全量)。 */ +static void player_page_go(int dir) +{ + int target = g_ppage + dir; + if (target < 0) target = 0; + if (target > 1) target = 1; + if (target == g_ppage) return; + g_ppage = target; + player_apply_bands(); + meow_ui_paint_full(); } int player_is_active(void) { return g_plc.active; } -int player_screen(void) { return g_landscape; } +int player_screen(void) { return 0; } /* 重做后恒竖屏 */ +int player_page(void) { return g_ppage; } -int player_set_screen(int landscape) +int player_set_screen(int landscape) { (void)landscape; return 0; } + +int player_set_page(int page) { - int old = g_landscape; - g_landscape = landscape ? 1 : 0; - player_compute_geom(); - meow_ui_invalidate(g_disc_r.x, g_disc_r.y, g_disc_r.w, g_disc_r.h); - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); + int old = g_ppage; + if (page < 0) page = 0; + if (page > 1) page = 1; + if (page != g_ppage) { + g_ppage = page; + player_apply_bands(); + meow_ui_paint_full(); + } return old; } +/* ============================================================ */ +/* 输入 */ +/* ============================================================ */ + +static int in_circle(int cx, int cy, int r, int x, int y); /* 前向声明(供 touch_down 判交互区) */ + +/* 中部横滑跟踪:起点不在左缘(>24)且不在顶部热区才记录(左缘归返回、顶部归通知中心)。 + * 封面页在「进度条/控制钮」上按下不锁 page-drag(否则拖进度条被误判为翻页,§22)。 */ +void player_touch_down(int x, int y) +{ + g_touch_sx = x; g_touch_sy = y; + int interactive = 0; + if (g_ppage == 0) { + if (y >= g_bar.y - 10 && y <= g_bar.y + g_bar.h + 10 && x >= g_bar.x && x <= g_bar.x + g_bar.w) + interactive = 1; + if (in_circle(g_prev_x, g_ctl_y, CTL_RR, x, y) || + in_circle(g_play_x, g_ctl_y, g_r_play + 6, x, y) || + in_circle(g_next_x, g_ctl_y, CTL_RR, x, y)) + interactive = 1; + } + g_touch_on = (x > PLR_EDGE_W) && (y >= meow_ui_statusbar_hotzone()) && !interactive; + g_drag_latched = 0; g_drag_dx = 0; +} + +void player_touch_move(int x, int y) +{ + if (!g_touch_on) return; + int dx = x - g_touch_sx, dy = y - g_touch_sy; + int adx = dx < 0 ? -dx : dx, ady = dy < 0 ? -dy : dy; + if (adx >= PLR_SWIPE_MS && adx > ady) { g_drag_latched = 1; g_drag_dx = dx; } +} + +static void player_reset_touch(void) +{ + g_touch_on = 0; g_drag_latched = 0; g_drag_dx = 0; +} + +/* 歌词页:点行 seek(把 tap y 归到最近一行的下标)。 */ +static int lyrics_line_tap(int y) +{ + int n = lyric_count(); + if (n <= 0) return -1; + int64_t ps = player_manager_pos_ms(); + int cur = lyric_line_at(ps); + int off = y - g_lyr_cx; + int dioff = (off >= 0) ? (off + g_lyr_lh / 2) / g_lyr_lh : (off - g_lyr_lh / 2) / g_lyr_lh; + int i = cur + dioff; + if (i < 0) i = 0; + if (i >= n) i = n - 1; + /* 仅当 tap 落在歌词窗口内才响应(顶部元信息/底部指示点区不误触)。 */ + if (y < g_lyr_meta_y + 44 || y > g_dots_y - 6) return -1; + return i; +} + +static int in_circle(int cx, int cy, int r, int x, int y) +{ + int dx = x - cx, dy = y - cy; + return (dx * dx + dy * dy) <= (r * r); +} + void player_on_tap(int x, int y) { - if (g_tb) { - int ah = meow_topappbar_hit(g_tb, x, y); - if (ah == MEOW_TOPBAR_BACK) { meow_view_page_pop(); return; } - if (ah >= 0) { player_set_screen(!g_landscape); return; } - } - if (x >= g_cplay_x - g_cr && x <= g_cplay_x + g_cr && y >= g_ctl_y - g_cr && y <= g_ctl_y + g_cr) { - int st = player_manager_state(); - if (st == NCM_PC_PAUSED) player_manager_pause(0); - else if (st == NCM_PC_STOPPED && cur_song() >= 0) player_manager_play(cur_song()); /* 出错后点播放=重试(§18) */ - else player_manager_pause(1); + /* 中部横滑已被 touch_move 锁存:on_tap 是「尾部抬手(中部左滑落 TAP)」→ 判页切换。 */ + if (g_drag_latched) { + int dir = (g_drag_dx < 0) ? 1 : -1; /* 左滑→下一页(歌词);右滑→上一页(封面) */ + player_reset_touch(); + player_page_go(dir); return; } - if (x >= g_cprev_x - CTL_RR && x <= g_cprev_x + CTL_RR && y >= g_ctl_y - CTL_RR && y <= g_ctl_y + CTL_RR) { - player_manager_next(-1); return; - } - if (x >= g_cnext_x - CTL_RR && x <= g_cnext_x + CTL_RR && y >= g_ctl_y - CTL_RR && y <= g_ctl_y + CTL_RR) { - player_manager_next(1); return; - } - if (y >= g_bar.y - 10 && y <= g_bar.y + g_bar.h + 10 && x >= g_bar.x && x <= g_bar.x + g_bar.w) { - int64_t dur = player_manager_dur_ms(); - if (dur > 0) player_seek((int64_t)(x - g_bar.x) * dur / g_bar.w); - return; + player_reset_touch(); + + if (g_ppage == 0) { + /* 播放/暂停:PAUSED/STOPPED(出错难重试)→ 播放;否则暂停 */ + if (in_circle(g_play_x, g_ctl_y, g_r_play + 6, x, y)) { + int st = player_manager_state(); + if (st == NCM_PC_PAUSED) player_manager_pause(0); + else if (st == NCM_PC_STOPPED && cur_song() >= 0) player_manager_play(cur_song()); + else player_manager_pause(1); + return; + } + if (in_circle(g_prev_x, g_ctl_y, CTL_RR, x, y)) { player_manager_next(-1); return; } + if (in_circle(g_next_x, g_ctl_y, CTL_RR, x, y)) { player_manager_next(1); return; } + if (y >= g_bar.y - 10 && y <= g_bar.y + g_bar.h + 10 && x >= g_bar.x && x <= g_bar.x + g_bar.w) { + int64_t dur = player_manager_dur_ms(); + if (dur > 0) player_seek((int64_t)(x - g_bar.x) * dur / g_bar.w); + return; + } + } else { + int line = lyrics_line_tap(y); + if (line >= 0) { + long t = lyric_line_time(line); + if (t >= 0) player_seek(t); + return; + } } } +void player_on_swipe(int dir, int dist) +{ + (void)dist; + player_reset_touch(); + if (dir == MEOW_SWIPE_RIGHT) player_page_go(-1); /* 中部右滑 → 封面页(上一页) */ + /* MEOW_SWIPE_UP/DOWN 与左缘返回(SWIPE_LEFT 在 app_on_swipe 层已消费)不处理 */ +} + void player_play_song(int idx) { if (idx < 0 || idx >= g_st.track_ids_count) return; /* 黑胶封面用真实专辑图(song_detail 的 al.picUrl,经 ncm_cache 缓存/限幅); * 滑窗未物化(占位行直点)时回落歌单封面,元数据由播放线程物化后快照接管(§17)。 - * §18:g_st.cover_url 只作「歌单封面兜底」——不再把本曲 al_pic 写进去 - * (旧写法污染兜底值:al_pic 缺失的歌会回落成**上一首的封面**,且撞上 - * cover_request 去重 → 封面永远停在上一首,切歌不更新的确定性子根因)。 */ + * §18:g_st.cover_url 只作「歌单封面兜底」。 */ ncm_song_t s; const char *cover = (appstate_song_copy(idx, &s) == 0 && s.al_pic[0]) ? s.al_pic : g_st.cover_url; player_manager_play(idx); appstate_set_playing_song(idx, NULL); cover_request(cover); + g_ppage = 0; /* 新曲 → 回封面页 */ meow_view_page_push(ACT_PLAYER); } @@ -385,85 +551,85 @@ void player_pause_toggle(int on) void player_next(int dir) { player_manager_next(dir); } void player_seek(int64_t ms) { player_manager_seek(ms); } -void player_on_swipe(int dir, int dist) { (void)dir; (void)dist; } -/* tick:分带刷新——只标脏变化的那一带(§6)。盘带仅在歌曲/封面/播停态变化时重画。 */ +/* tick:封面页只标脏「动态带」;歌词页仅在 换行/切歌/封面 变化才整屏重画(不逐帧滚动)。 + * snack/错误沿用 chrome_tick + 错误沿。 */ void player_tick(uint64_t now) { (void)now; chrome_tick(); if (!g_plc.active) return; - int sc = cur_song(); + int sc = cur_song(); int pos = (int)player_manager_pos_ms(); - int st = player_manager_state(); - int line = (lyric_count() > 0) ? lyric_line_at(pos) : -1; + int st = player_manager_state(); - if (sc != g_last_song) { - g_last_song = sc; - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); /* 歌名/歌手变 */ - } - /* 元数据 id 变化(含快照滞后 settle:切歌瞬间快照仍是旧曲,play 线程更新后此处纠正)→ - * 请求新曲专辑封面(黑胶盘换图)+ 刷动态带。 */ + /* 元数据 id 变化(含快照滞后 settle)→ 请求新曲封面 + 刷静态带(封面)与动态带(歌名) */ ncm_song_t s2; if (sc >= 0 && cur_song_meta(&s2) == 0 && strcmp(s2.id, g_last_meta_id) != 0) { ncm_strlcpy(g_last_meta_id, s2.id, sizeof g_last_meta_id); cover_request(s2.al_pic[0] ? s2.al_pic : g_st.cover_url); - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); + player_static_invalidate(); + player_dyn_invalidate(); + } + if (sc != g_last_song) { + g_last_song = sc; + player_dyn_invalidate(); } if (cover_changed()) { cover_ack(); - meow_ui_invalidate(g_disc_r.x, g_disc_r.y, g_disc_r.w, g_disc_r.h); + player_static_invalidate(); /* 封面页重画封面;歌词页整屏重画背景 */ } - if (pos != g_last_pos_ms || st != g_last_state) { - g_last_pos_ms = pos; - int state_changed = (st != g_last_state); - g_last_state = st; - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); /* 进度/控制钮/时间 */ - if (state_changed) - meow_ui_invalidate(g_disc_r.x, g_disc_r.y, g_disc_r.w, g_disc_r.h); /* 唱针抬/压 */ - } - if (line != g_last_line) { - g_last_line = line; - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); /* 歌词 */ - } - /* §18:缓冲进度前进(~2KB 粒度)刷动态带(「缓冲中… N%」);仅缓冲态需要。 */ - int64_t dd = 0, dtot = 0; - player_manager_dl(&dd, &dtot); - int dq = (int)(dd / 2048); - if (dq != g_last_dl) { - g_last_dl = dq; - if (st == NCM_PC_BUFFER) - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); - } - /* §18:错误沿——错误条出现/消失刷动态带 + 新错误弹 snack(旧版 err 无任何 UI 出口)。 */ + int perr = player_manager_error(); if (perr != g_last_err) { g_last_err = perr; - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); if (perr == NCM_ERR_VIP) ncm_snack("VIP 专享歌曲"); else if (perr) ncm_snack("播放失败"); + player_dyn_invalidate(); } - /* §20:生效档变化(降级判定完成/切歌重置)刷动态带。 */ - int eff = player_manager_eff_level(); - if (eff != g_last_eff) { - g_last_eff = eff; - meow_ui_invalidate(g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h); + + if (g_ppage == 0) { + if (pos != g_last_pos_ms || st != g_last_state) { + g_last_pos_ms = pos; + g_last_state = st; + player_dyn_invalidate(); + } + int eff = player_manager_eff_level(); + if (eff != g_last_eff) { + g_last_eff = eff; + player_dyn_invalidate(); + } + int64_t dd = 0, dtot = 0; + player_manager_dl(&dd, &dtot); + int dq = (int)(dd / 2048); + if (dq != g_last_dl && st == NCM_PC_BUFFER) { + g_last_dl = dq; + player_dyn_invalidate(); + } + } else { + /* 歌词页:仅在「当前行」变化时整屏重画(bg+歌词;行间静止,不逐帧刷)。 */ + int line = (lyric_count() > 0) ? lyric_line_at(pos) : -1; + if (line != g_last_line) { + g_last_line = line; + meow_ui_invalidate(0, 0, g_W, g_H); + } } } +/* ============================================================ */ +/* 页面生命周期 */ +/* ============================================================ */ + static void plr_page_create(meow_view *v, void *ctx) { (void)v; ((player_ctrl *)ctx)->view = v; player_compute_geom(); meow_ui_activity_push(ACT_PLAYER); /* owner=ACT_PLAYER */ - g_tb = ncm_topbar_create("正在播放", 1, "\xe2\x86\xbb"); /* 返回 + ⟳ 布局 */ meow_ui_activity_pop(); - g_custom_disc = meow_draw_custom_register(10, g_disc_r.x, g_disc_r.y, g_disc_r.w, g_disc_r.h, - plr_draw_disc, NULL); - g_custom_dyn = meow_draw_custom_register(11, g_dyn_r.x, g_dyn_r.y, g_dyn_r.w, g_dyn_r.h, - plr_draw_dyn, NULL); + g_ppage = 0; + player_apply_bands(); g_last_pos_ms = -1; g_last_state = -1; g_last_line = -1; g_last_song = -1; g_last_dl = -1; g_last_err = 0; g_last_eff = -2; /* -2: 与 eff=-1(未定) 区分,首 tick 必刷 */ g_last_meta_id[0] = 0; @@ -473,13 +639,12 @@ static void plr_page_enter(meow_view *v, void *ctx) { (void)v; ((player_ctrl *)ctx)->active = 1; - const ncm_pal_t *pa = ncm_palette(g_dark); - meow_ui_set_page_bg(pa->player_bg); /* 播放页恒沉浸,不随系统明暗整体反转 */ - /* §18 自愈:重进播放页强制重估(g_last_meta_id 只在 create 清过一次——离开期间 - * 切歌/封面失败后回来没有重评估路径;清零后首个 tick 按当前快照重请求封面+刷歌名)。 */ + meow_ui_set_page_bg(NCM_PLAYER_BG); /* 播放页沉浸底恒 NCM_PLAYER_BG(§22 不动沉浸底) */ + /* §18 自愈:重进播放页强制重估(切歌/封面失败后回来无重评估路径) */ g_last_meta_id[0] = 0; g_last_song = -1; g_last_dl = -1; + player_apply_bands(); meow_ui_paint_full(); if (!g_host_mock) player_manager_load_lyric(); } @@ -493,9 +658,8 @@ static void plr_page_leave(meow_view *v, void *ctx) static void plr_page_destroy(meow_view *v, void *ctx) { (void)v; (void)ctx; - if (g_custom_disc) { meow_draw_unregister(g_custom_disc); g_custom_disc = 0; } - if (g_custom_dyn) { meow_draw_unregister(g_custom_dyn); g_custom_dyn = 0; } - if (g_tb) { meow_widget_free(g_tb); g_tb = NULL; } + if (g_pstatic) { meow_draw_unregister(g_pstatic); g_pstatic = 0; } + if (g_pdyn) { meow_draw_unregister(g_pdyn); g_pdyn = 0; } } meow_view *player_view_create(void) diff --git a/patch_v2/ncm_app/app/ui/settings.c b/patch_v2/ncm_app/app/ui/settings.c index b40afb7..e0122fc 100644 --- a/patch_v2/ncm_app/app/ui/settings.c +++ b/patch_v2/ncm_app/app/ui/settings.c @@ -24,7 +24,7 @@ static int g_custom_id; static int g_row_h; /* 行高 */ static uint64_t g_cache_used; /* 缓存占用字节(进设置页时算一次,清理后清零) */ -#define SETTINGS_ROWS 5 +#define SETTINGS_ROWS 6 /* 八档音质 UI 表(用户手机 App 口径为权威,NCM_CACHE_DESIGN §3):显示顺序高→低。 * HIGHER(较高)与 DOLBY(杜比全景声)不进 UI 清单(映射保留,见 ncm_api.h)。 */ @@ -71,13 +71,14 @@ static void settings_draw(void *ctx) char usetxt[24]; fmt_bytes(g_cache_used, usetxt, sizeof usetxt); - /* 行:音质 / 缓存上限 / 清理缓存 / 退出登录 / 关于。 */ + /* 行:音质 / 歌词页背景 / 缓存上限 / 清理缓存 / 退出登录 / 关于。 */ struct { const char *title; char sub[160]; int red; } rows[SETTINGS_ROWS]; rows[0].title = "音质"; rows[0].red = 0; - rows[1].title = "缓存上限"; rows[1].red = 0; - rows[2].title = "清理缓存"; rows[2].red = 0; - rows[3].title = "退出登录"; rows[3].red = 1; - rows[4].title = "关于网易云"; rows[4].red = 0; + rows[1].title = "歌词页背景"; rows[1].red = 0; + rows[2].title = "缓存上限"; rows[2].red = 0; + rows[3].title = "清理缓存"; rows[3].red = 0; + rows[4].title = "退出登录"; rows[4].red = 1; + rows[5].title = "关于网易云"; rows[5].red = 0; { /* 当前档 + 会员门槛标注;超权限(未解锁)时提示将降级(不硬拒,§20) */ int gate = ncm_api_level_gate(g_st.level); @@ -91,10 +92,13 @@ static void settings_draw(void *ctx) snprintf(rows[0].sub, sizeof rows[0].sub, "当前: %s (%s)", ncm_level_name(g_st.level), ncm_level_spec(g_st.level)); } - snprintf(rows[1].sub, sizeof rows[1].sub, "当前: %d GB · 上限 100", g_st.cache_limit_gb); - snprintf(rows[2].sub, sizeof rows[2].sub, "占用: %s", usetxt); - snprintf(rows[3].sub, sizeof rows[3].sub, "%s", g_st.nickname[0] ? g_st.nickname : "退出"); - snprintf(rows[4].sub, sizeof rows[4].sub, "%s", "v0.1 · MeowOS"); + /* §22:歌词页背景模式(default=封面模糊置底 / power_save=封面+黑叠加层) */ + snprintf(rows[1].sub, sizeof rows[1].sub, "当前: %s", + g_st.player_bg_mode == NCM_BG_POWER_SAVE ? "省电模式" : "默认(模糊置底)"); + snprintf(rows[2].sub, sizeof rows[2].sub, "当前: %d GB · 上限 100", g_st.cache_limit_gb); + snprintf(rows[3].sub, sizeof rows[3].sub, "占用: %s", usetxt); + snprintf(rows[4].sub, sizeof rows[4].sub, "%s", g_st.nickname[0] ? g_st.nickname : "退出"); + snprintf(rows[5].sub, sizeof rows[5].sub, "%s", "v0.1 · MeowOS"); for (int i = 0; i < SETTINGS_ROWS; i++) { int yy = y + i * (g_row_h + 8); @@ -186,7 +190,20 @@ int settings_on_tap(int x, int y) } return 1; } - if (row == 1) { /* 缓存上限:预设 + 自定义(数字输入 1~100) */ + if (row == 1) { /* §22 歌词页背景:default(封面模糊置底)/ power_save(省电) */ + meow_sheet *s = meow_sheet_create("歌词页背景", 0); + meow_sheet_add_item(s, "默认 (模糊置底)"); + meow_sheet_add_item(s, "省电模式 (黑叠加层)"); + int op = meow_sheet_open(s); + meow_sheet_free(s); + if (op == 0 || op == 1) { + g_st.player_bg_mode = (op == 1) ? NCM_BG_POWER_SAVE : NCM_BG_DEFAULT; + appstate_save_settings(); + meow_ui_invalidate(r_cont.x, r_cont.y, r_cont.w, r_cont.h); + } + return 1; + } + if (row == 2) { /* 缓存上限:预设 + 自定义(数字输入 1~100) */ static const int gbs[] = { 1, 2, 5, 10, 20, 30, 50, 100 }; static const char *labels[] = { "1 GB", "2 GB", "5 GB", "10 GB", "20 GB", "30 GB", "50 GB", "100 GB" }; @@ -204,7 +221,7 @@ int settings_on_tap(int x, int y) } return 1; } - if (row == 2) { /* 清理缓存 */ + if (row == 3) { /* 清理缓存 */ meow_dialog *d = meow_dialog_create(MEOW_DLG_CONFIRM, "清理缓存?"); char msg[160]; char usetxt[24]; @@ -223,7 +240,7 @@ int settings_on_tap(int x, int y) } return 1; } - if (row == 3) { /* 退出登录 */ + if (row == 4) { /* 退出登录 */ meow_dialog *d = meow_dialog_create(MEOW_DLG_CONFIRM, "退出登录?"); const char *msgs[1]; msgs[0] = "将停止播放并清除登录态,\n下次使用需重新扫码。"; @@ -236,7 +253,7 @@ int settings_on_tap(int x, int y) } return 1; } - if (row == 4) { /* 关于 */ + if (row == 5) { /* 关于 */ ncm_snack("网易云音乐 v0.1 · MeowOS 移植版"); return 1; } diff --git a/patch_v2/ncm_app/ncm b/patch_v2/ncm_app/ncm index fe268f62253f5009aa5c83e72877f8551109e5f3..13151c172af99a8e512a0eefb7525eed6ec947eb 100755 GIT binary patch delta 340709 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"pS3 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 TFLpCJ{E+2(ZYS@>?iv3NEPrLk delta 350549 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