fix(ncm): 补play_mode持久化定义(appstate_apply_play_mode/ncm_mode_name,同agent-392播放模式) — ncm链通必需,与M6.32上卡二进制一致

This commit is contained in:
AskaEth committed 2026-09-03 23:48:08 +08:00
1 parent 76a22a6a91
commit 18014eb2b9
2 files changed
+27

No files matched your search

+16
View File
@@ -133,6 +133,11 @@ void appstate_load_settings(void)
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;
/* §NEW 播放模式三态:默认列表循环;越界回落列表循环 */
g_st.play_mode = meow_config_int("ncm.play_mode", NCM_MODE_LISTLOOP);
if (g_st.play_mode < NCM_MODE_SHUFFLE || g_st.play_mode >= NCM_MODE_COUNT)
g_st.play_mode = NCM_MODE_LISTLOOP;
ncm_cache_set_limit_gb(&g_st.ctx.cache, g_st.cache_limit_gb);
g_st.ctx.default_level = g_st.level;
}
@@ -146,6 +151,8 @@ void appstate_save_settings(void)
meow_config_set("ncm.level", b);
snprintf(b, sizeof b, "%d", g_st.player_bg_mode);
meow_config_set("ncm.player_bg_mode", b);
snprintf(b, sizeof b, "%d", g_st.play_mode);
meow_config_set("ncm.play_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 淘汰(超上限删最旧);未超限则为无操作 */
@@ -764,6 +771,15 @@ void autoplay_maybe(void)
void appstate_set_queue(int src) { g_st.queue_src = src; }
int appstate_get_queue(void) { return g_st.queue_src; }
/* §NEW:设播放模式并落盘(「退出后记住模式」)。仅在 UI 线程(play 模式三态按钮点击)调用;
* play 线程读的是 g_play.play_mode(player_manager_set_play_mode 已同步运行时态)。 */
void appstate_apply_play_mode(int m)
{
if (m < NCM_MODE_SHUFFLE || m >= NCM_MODE_COUNT) return;
g_st.play_mode = m;
appstate_save_settings();
}
int appstate_queue_count(void)
{
int c;
+11
View File
@@ -122,6 +122,17 @@ const char *ncm_level_name(int lv)
}
}
/* §NEW 播放模式短名(三态):随机 / 列表 / 单曲(播放页模式钮文案,2 字居中)。 */
const char *ncm_mode_name(int m)
{
switch (m) {
case NCM_MODE_SHUFFLE: return "随机";
case NCM_MODE_SINGLE: return "单曲";
case NCM_MODE_LISTLOOP: /* fallthrough */
default: return "列表";
}
}
const char *ncm_level_spec(int lv)
{
switch (lv) {