NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/52781: audioctl can't set output gain



This may not critical but is problematic to 8.0 release.
How about revert audio.c 1.354 ?

This revert revives 'audioctl -w play.gain=xxx'.
Meanwhile, it disables audioctl's new software volume control.
But 1) it is able to be done by mixerctl too.
2) audio(4) manpage says that play.gain is shortcut for richer mixer
(= mixerctl).

I think it is better to revert.

Thanks,
---
Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>

Index: audio.c
===================================================================
RCS file: /cvsroot/src/sys/dev/audio.c,v
retrieving revision 1.354
retrieving revision 1.353
diff -u -r1.354 -r1.353
--- audio.c	28 May 2017 21:12:59 -0000	1.354
+++ audio.c	27 May 2017 13:55:58 -0000	1.353
@@ -4734,11 +4734,18 @@
 		if (error)
 			goto cleanup;
 	}
-	if (SPECIFIED(p->gain))
-		vc->sc_swvol = p->gain;
-
-	if (SPECIFIED(r->gain))
-		vc->sc_recswvol = r->gain;
+	if (SPECIFIED(p->gain)) {
+		au_get_gain(sc, &sc->sc_outports, &gain, &balance);
+		error = au_set_gain(sc, &sc->sc_outports, p->gain, balance);
+		if (error)
+			goto cleanup;
+	}
+	if (SPECIFIED(r->gain)) {
+		au_get_gain(sc, &sc->sc_inports, &gain, &balance);
+		error = au_set_gain(sc, &sc->sc_inports, r->gain, balance);
+		if (error)
+			goto cleanup;
+	}
 
 	if (SPECIFIED_CH(p->balance)) {
 		au_get_gain(sc, &sc->sc_outports, &gain, &balance);


Home | Main Index | Thread Index | Old Index