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
60778cf97b
commit
78be63d5cc
1 file changed
+4
-3
+4
-3
@@ -110,9 +110,10 @@ int meow_ui_vol_step(const char *path, int dir)
|
|||||||
* 与 launcher meow_dac_vol_write / watchdog wd_vol_write 完全同路径(语义同源)。 */
|
* 与 launcher meow_dac_vol_write / watchdog wd_vol_write 完全同路径(语义同源)。 */
|
||||||
void meow_ui_vol_dac_write(int pct)
|
void meow_ui_vol_dac_write(int pct)
|
||||||
{
|
{
|
||||||
int dac = 255 - pct * 255 / 100; /* CS43198 寄存器=衰减量(0=最响 255=静音),用户 pct 越大越响 → 反转映射 */
|
int t = 100 - pct, dac;
|
||||||
if (dac < 0) dac = 0;
|
if (pct <= 0) dac = 255; /* 真静音(DS1039:255=-127.5dB) */
|
||||||
if (dac > 255) dac = 255;
|
else dac = t * t * 192 / 10000; /* 感知平方锥度:dB 衰减=(1-pct)^2×96dB */
|
||||||
|
if (dac > 255) dac = 255; if (dac < 0) dac = 0; /* CS43198=衰减量(0最响255静音)+平方锥度(听感线性) */
|
||||||
char cmd[160];
|
char cmd[160];
|
||||||
snprintf(cmd, sizeof cmd,
|
snprintf(cmd, sizeof cmd,
|
||||||
"amixer -c 0 cset numid=1 %d >/dev/null 2>&1; amixer -c 0 cset numid=2 %d >/dev/null 2>&1",
|
"amixer -c 0 cset numid=1 %d >/dev/null 2>&1; amixer -c 0 cset numid=2 %d >/dev/null 2>&1",
|
||||||
|
|||||||
Reference in new issue
Block a user