feat(audio): CS43198 音量按 DS1039 数据手册定档 — 感知平方锥度映射(dB衰减=(1-pct)²×96dB, pct=0→真静音255)四路统一; SPEC_REF 补数据手册事实(PCM_VOLUME_A/B=0x0B/0x0C,DSD独立音量); DSD 模式记入 AUDIOD_DESIGN §13 后期规划。audiod 47/47 PASS
This commit is contained in:
1 parent
bdd9e898f4
commit
6a4d330a26
12 files changed
+20
-16
No files matched your search
@@ -553,9 +553,10 @@ static int amixer_get(int numid, int card)
|
||||
|
||||
static void dac_vol_set(int pct)
|
||||
{
|
||||
int dac = 255 - pct * 255 / 100; /* CS43198 寄存器=衰减量(0=最响 255=静音),用户 pct 越大越响 → 反转映射 */
|
||||
if (dac < 0) dac = 0;
|
||||
if (dac > 255) dac = 255;
|
||||
int t = 100 - pct, dac;
|
||||
if (pct <= 0) dac = 255; /* 真静音(DS1039:255=-127.5dB) */
|
||||
else dac = t * t * 192 / 10000; /* 感知平方锥度:dB 衰减=(1-pct)^2×96dB */
|
||||
if (dac > 255) dac = 255; if (dac < 0) dac = 0; /* CS43198=衰减量(0最响255静音)+平方锥度(听感线性) */
|
||||
amixer_set(1, dac, 1);
|
||||
amixer_set(2, dac, 1);
|
||||
logmsg("DAC vol -> %d%% (L/R=%d)", pct, dac);
|
||||
|
||||
Reference in new issue
Block a user