fix(launcher): 开机亮度停100竞态 (agent-230) — settings未读到前不盲写100, 挂起+读到后补应用; launcher aa6c95a4→8ebae666; 宿主4场景PASS

This commit is contained in:
MeowOS committed 2026-08-31 18:21:40 +08:00
1 parent c7d02e66e9
commit f34818037f
8 files changed
+135 -2

No files matched your search

+16 -1
View File
@@ -17,18 +17,33 @@ int meow_auto_slept = 0; /* M2.17:当前是否「超时自动息屏」置
/* brightness save/restore (defined below, used by run_menu) */
int saved_brightness = -1;
/* M2.86:亮度「待补应用」挂起标志。launcher 被 sysui 在 S70 早拉起,早于 /usr/data(UBIFS) 就绪,
* settings_load 读到的是纯默认值(display.brightness=101→clamp 100);此时 apply_user_brightness
* 若照写 100 即「开机遇 100 满亮」。修:设置未真正读到盘上时挂起,待 run_menu 轮询 settings_load
* 成功(meow_settings_loaded()==1)后补应用真实用户亮度。 */
int meow_brightness_pending = 0;
/* M2.53:MeowOS 主屏接管时把亮度强制压回用户设置值(display.brightness,经
* meow_settings_brightness_clamped() —— 下限 brightness_min 默认 1、上限 100),
* 覆盖 HibyOS 播放器写入 sysfs 的背光下限(16/25)。仅应在「MeowOS 真正接管画面」
* (播放器已死、主屏常驻,即 run_menu 的 had_player==0)时调用;播放器会话期间的
* 覆盖菜单(had_player==1)不去抢亮度——尊重播放器背光(§红线)。 */
* 覆盖菜单(had_player==1)不去抢亮度——尊重播放器背光(§红线)。
* M2.86:设置未读到(meow_settings_loaded()==0,S70 早启动 /usr/data 未就绪)时不盲目写 100 ——
* 挂起 meow_brightness_pending,待设置就绪后由 settings_load()(run_menu 每 2s 重试)补应用。 */
void apply_user_brightness(void)
{
if (!meow_settings_loaded()) {
if (!meow_brightness_pending)
logmsg("apply user brightness: settings unloaded, defer (not forcing 100)");
meow_brightness_pending = 1;
return;
}
int v = meow_settings_brightness_clamped();
if (v <= 0) v = 60; /* 防御:clamp 后不可能 ≤0,仅兜底 */
write_brightness(v);
g_sys.brightness = v;
meow_brightness_pending = 0;
logmsg("apply user brightness (MeowOS takeover) -> %d", v);
}