feat: M6.10–M6.19 批量收编 + M6.19 推卡验收
- M7 launcher 重写 5 期(虚拟化宫格/meow_theme 单一权威/横幅动画/自定义 PIN 键盘) - OOM 通用化(cachegov 上收 SDK)、自动切歌根治、meowpanel jv_free 泄漏修复、Hello 滚动卡顿修复 - ncm 歌词 UI / 媒体通知封面 / 封面分辨率 640 - 5 bug 修复:ncm 后台化 UI 叠层+点击穿透、再进 ncm 桌面叠层、播放页新旧 UI 叠层抢刷脏区(meow_ui_gfx 恢复边沿整帧重画)、PIN 亮屏亮度跳(keys.c meow_panel_on 按 settings_brightness_clamped 恢复)、通知中心封面显歌单封面(cover.c save_cover_raw 加 is_song + 命中块守卫) - 四 App 统一重链新 meow_ui.a 51caee4a;M6.19=0.8.19 固件 2d2331f2 推卡自刷验收全绿
This commit is contained in:
1 parent
c2ee7626a4
commit
3d70a3dd2c
176 files changed
+15507
-597
No files matched your search
@@ -151,6 +151,7 @@ int ncm_cache_open(const ncm_cache_t *c, const char *id, const char *ext, ncm_ca
|
||||
*w = (ncm_cache_writer_t *)calloc(1, 64); return NCM_OK;
|
||||
}
|
||||
const char *ncm_cache_writer_tmp_path(const ncm_cache_writer_t *w) { (void)w; return g_tmp_path; }
|
||||
const char *ncm_cache_writer_final_path(const ncm_cache_writer_t *w) { (void)w; return g_tmp_path; } /* 链接占位:drop_finished 对 .tmp 无害 */
|
||||
int ncm_cache_write(ncm_cache_writer_t *w, const unsigned char *d, size_t l) { (void)w; (void)d; (void)l; return NCM_OK; }
|
||||
int ncm_cache_commit(ncm_cache_writer_t *w) { free(w); g_cache_ok = 1; g_commits++; return NCM_OK; }
|
||||
int ncm_cache_abort(ncm_cache_writer_t *w)
|
||||
@@ -617,6 +618,32 @@ int main(void)
|
||||
g_eof = 1;
|
||||
wait_state(NCM_PC_STOPPED, 3000);
|
||||
|
||||
printf("== P14: 点「正在播的同曲」-> 只聚焦不重播(任务3 re-entry,非 P12 切档)==\n");
|
||||
usleep(300 * 1000);
|
||||
g_eof = 0; g_reads_left = -1; g_url_rc = NCM_OK; g_fee = 0;
|
||||
g_part_size = 0; g_http_status = 200; g_416_first = 0; g_dl_delay_ms = 0; g_dl_fail = 0;
|
||||
g_vip = NCM_VIP_NONE; g_downloads = 0; g_url_calls = 0; g_last_key[0] = 0; g_last_ext[0] = 0;
|
||||
player_manager_stop(); /* 清 P13 可能残留(STOPPED 或已自动顺延) */
|
||||
player_manager_set_quality(NCM_LEVEL_STANDARD, 10);
|
||||
g_cache_ok = 1; /* standard 缓存命中 */
|
||||
player_manager_play(0);
|
||||
CHECK(wait_state(NCM_PC_PLAYING, 3000), "song0 playing at standard (cache hit)");
|
||||
int opens_before = g_opens;
|
||||
int writes_before = g_writes;
|
||||
/* 任务3:歌单里点「正在播的同曲」(**未** set_quality → pending_replay=0)→ 只聚焦不重播:
|
||||
* 同步返回后状态仍是 PLAYING(若是重播此刻必为 BUFFER),线程窗口内不得新增 audio_out_open。 */
|
||||
player_manager_play(0);
|
||||
CHECK(player_manager_state() == NCM_PC_PLAYING,
|
||||
"re-enter same idx -> state stays PLAYING immediately (no restart to BUFFER)");
|
||||
usleep(300 * 1000); /* 若真发生重播,线程会重跑 run_song 再开 audio */
|
||||
CHECK(g_opens == opens_before,
|
||||
"re-enter same idx -> no new audio_out_open (no restart), opens=%d/%d", g_opens, opens_before);
|
||||
CHECK(g_writes > writes_before,
|
||||
"re-enter same idx -> same stream kept playing (writes %d->%d)", writes_before, g_writes);
|
||||
player_manager_stop();
|
||||
wait_state(NCM_PC_STOPPED, 2000); /* 干净收尾(任务3 复验后置 STOPPED,勿自动顺延) */
|
||||
g_cache_ok = 0; g_cache_real[0] = 0;
|
||||
|
||||
usleep(200 * 1000);
|
||||
player_manager_stop_thread();
|
||||
printf(g_fail ? "== PLAYER FLOW SIM: FAIL ==\n" : "== PLAYER FLOW SIM: ALL PASS ==\n");
|
||||
|
||||
Reference in new issue
Block a user