fix(keys): 插孔消抖 + 音量 ramp 3s 上限 + 亮度写日志 — 耳机插拔 ADC 幽灵音量键修复
真机实证(meow_20260901_034946.log): 4.4 插入瞬间电气瞬态在 jz_adc_aux(event2)
产生 VOL_UP 幽灵按住, vol_ramp 24%→上限50 (225391 ramp 起→227213 爬满,
紧随 audiod jack changed). 修(限 meow_launcherd/+meow_watchdog/):
① launcher audio.c + watchdog 各自读 /sys/class/switch/{headset,balance}/state
(节流缓存 1s/500ms, 热路径不每圈读文件), 变化后 800ms 内忽略音量键边沿
(vol_ramp_begin 不起/在爬 ramp 中止/wd_vol_adj 单步忽略)
② ramp 总时长上限 VOL_RAMP_MAX_MS=3000 兜底防一次幽灵打满(正常长按 24→50 ~1.4s 不伤)
③ write_brightness(val,src) 全 10 调用点带源+逐写 logmsg, 亮度跳上限下次可定位
(grep 全库: 写 backlight 仅 launcher/watchdog/svc_power/bootmenu, 无确定 255 路径)
宿主: 新 test_vol_ramp_jack 15/15 PASS(单击/长按回归+3s cap+消抖忽略/中止/恢复);
test_wd_fw 17/17 + test_settings_brightness + test_notif_tf PASS; MIPS -Wall -Wextra 0 warning
(顺带修 watchdog 既有 sys/poll.h→poll.h 重定向 warning).
watchdog 已热更设备 /usr/data(baa997ea); launcher 7be1d4eb 待固件. fw_content.conf 已更新.
遗留: SDK meow_ui_input.c 音量键路径需同款消抖(sdk/ 有主未动)
This commit is contained in:
1 parent
44d170413d
commit
4bafdb5d69
13 files changed
+348
-20
No files matched your search
@@ -140,6 +140,9 @@ extern "C" {
|
||||
#define MEOW_VOL_MAX_DEFAULT 100 /* 默认最大音量上限(尊重上限;可配 audio.volume_max) */
|
||||
#define VOL_DRAG_DAC_MS 60 /* 滑条拖动期间两次真实 DAC 写入的最短墙钟间隔 */
|
||||
#define VOL_RAMP_MS 15 /* 每 1% 步进的最短墙钟间隔 */
|
||||
#define VOL_RAMP_MAX_MS 3000 /* ramp 总时长上限(防 ADC 噪声假按住一次打满;正常长按到上限 <3s) */
|
||||
#define JACK_POLL_MS 1000 /* 插孔状态节流读取间隔(绝不在 10ms 热路径每圈读文件) */
|
||||
#define JACK_DEBOUNCE_MS 800 /* 插孔变化后忽略音量键边沿的窗口(插拔时没人按音量,误伤可忽略) */
|
||||
#define BT_ROLE_OFF 0 /* 关 */
|
||||
#define BT_ROLE_ON_NO_CONN 1 /* 开未连接 */
|
||||
#define BT_ROLE_MASTER 2 /* 主模式:连了外围(如耳机) */
|
||||
@@ -759,7 +762,7 @@ void vol_restore(struct vol_snap s);
|
||||
struct vol_snap vol_snapshot(void);
|
||||
int wlan_connected(void);
|
||||
int wlan_radio_up(void);
|
||||
void write_brightness(int val);
|
||||
void write_brightness(int val, const char *src); /* src=调用源线索,随值一并 logmsg(亮度幽灵排查) */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user