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



nat@,

> It would be an unwanted side effect if the change was reverted to have
> setting 
> the gain on a particular channel influence other open channel's volume.

Please don't use the word 'unwanted' or 'side effect',
before defining/sharing the specification.

> I will update the documentation regarding how the gain fields work if the 
> current behavior is desired.

> The attached patch should fix the problem and return the relative gain for
> the 
> channel when the audioctl -p 1 play.gain is issued.
>
> To increase the overall master volume mixerctl -w outputs.master will have to 
> be used though.
 
- What is the difference between "audioctl -p N play.gain" and
  "mixerctl -w vchan.dacN"?
  o (I don't know well about history between audioctl and mixerctl)
  o Although, mixerctl vchan has another problem.

- How do I know about this N for audioctl -p?

- How do you think about PR/52627 ?
  It allows unprivileged users to control privileged processes.

- How does "audioctl {,-w} play.gain" (without -p) behave?

- Assuming that the gain is controlled by software,
  why is the balance controlled by the mixer?  It means:
   "audioctl -p N -w play.gain" affects N-th VC's volume.
   "audioctl      -w play.gain" affects nothing? (as described in this PR)
   "audioctl -p N -w play.balance" affects HW balance.
   "audioctl      -w play.balance" affects HW balance.
  I don't think it's a good specification.

- (and I also wonder inefficient implementation which reallocates
  mixer state arrays on every audio open/close.)

> --- audio.c	6 Feb 2018 04:39:18 -0000	1.452
> +++ audio.c	28 Apr 2018 21:44:39 -0000
> @@ -4903,6 +4903,9 @@ audiogetinfo(struct audio_softc *sc, str
>  
>  		au_get_gain(sc, &sc->sc_inports, &r->gain, &r->balance);
>  		au_get_gain(sc, &sc->sc_outports, &p->gain, &p->balance);
> +
> +		p->gain = vc->sc_swvol;
> +		r->gain = vc->sc_recswvol;
>  	}
>  
>  	if (sc->sc_monitor_port != -1 && buf_only_mode == 0) {

I think it's not enough.
- Many specifications are not fixed as above.
- Again, What does "audioctl play.gain" (without -p) display in this
  case?
- Assuming that the gain does not link the HW mixer, it should be also
  obtained with AUDIO_GETBUFINFO.

Anyway, please propose and explain your desired specification first
on public list.
---
Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>


Home | Main Index | Thread Index | Old Index