AskaEth
e37c622597
feat(audiod): BT 输出音量软件增益(曲线与 DAC 同源)+ vol_apply BT 分支真生效
真机现象:音量设 10 仍然满响度——vol_apply() 的 BT 分支 logmsg + return,
g_vol_pct 不更新、AVRCP 被 bt_vol_full() 钉在 127、写路径无任何软件缩放,
于是 BT 永远在耳机自己的满音量。
- 新增 vol_gain.{c,h}(纯整数,无 libm/软浮点):增益表由 dac_vol_set 的同一个
衰减寄存器函数 vol_gain_dac_att_reg() 推出(0.5dB/步、平方锥度),
Q31 迭代乘法开机算一次;vol=100 逐字节不变,vol=0 全 0(memset 快路)。
- dev_write(BT 路径)逐样本乘 + 32 位中间量 + 饱和;增益恒 <=1 故不可能削波。
- 改音量走 512 样本线性斜坡(Bresenham 余额分摊,末步不补差),防爆音。
- vol_apply() BT 分支改为更新 g_vol_pct + 持久化;DAC numid=1/2/11 仍不写
(M50 T11 隔离断言不变)。
- dac_vol_set() 改用 vol_gain_dac_att_reg(),DAC/BT 两条路锥度不可能漂移。
- 测试:test_vol_gain(曲线/缩放/斜坡纯函数断言)+ T11 改为断言
「BT 音量不写 DAC 寄存器」+ 新增 T18(wav 捕获音量阶梯 RMS/峰值)
/ T19(活改音量不爆音、不丢帧)。
2026-11-12 08:07:37 +08:00
..
2026-09-01 18:28:07 +08:00
2026-11-11 20:29:21 +08:00
2026-11-10 22:51:00 +08:00
2026-11-10 22:51:00 +08:00
2026-11-11 18:51:16 +08:00
2026-11-12 08:07:37 +08:00
2026-11-11 18:51:16 +08:00
2026-11-12 08:02:22 +08:00
2026-11-11 21:50:28 +08:00
2026-11-11 18:51:16 +08:00
2026-08-31 22:40:08 +08:00
2026-08-31 19:30:32 +08:00
2026-11-11 18:51:16 +08:00
2026-09-01 03:25:01 +08:00
2026-11-11 18:51:16 +08:00
2026-11-11 18:51:16 +08:00
2026-08-31 15:36:45 +08:00
2026-11-12 08:02:22 +08:00
2026-11-11 18:51:16 +08:00
2026-11-10 21:42:37 +08:00
2026-11-10 22:54:11 +08:00
2026-11-06 13:34:45 +08:00
2026-11-11 13:15:54 +08:00
2026-11-11 18:51:16 +08:00
2026-09-01 11:06:01 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00