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-08-31 22:40:08 +08:00
2026-11-11 19:37:03 +08:00
2026-11-11 19:37:03 +08:00
2026-11-12 08:07:37 +08:00
2026-11-11 18:51:16 +08:00
2026-09-01 14:25:51 +08:00
2026-09-04 00:56:57 +08:00
2026-11-11 20:29:21 +08:00
2026-09-02 09:32:48 +08:00
2026-11-12 08:07:37 +08:00
2026-08-31 22:40:08 +08:00
2026-08-31 22:40:08 +08:00
2026-09-03 12:16:01 +08:00
2026-11-12 08:07:37 +08:00
2026-11-11 19:37:03 +08:00
2026-11-12 08:07:37 +08:00
2026-11-12 08:07:37 +08:00
2026-11-12 08:07:37 +08:00