[pulseaudio-discuss] RFC: New volume functionality for PulseAudio
arun at accosted.net
Tue Feb 18 17:09:21 CET 2014
On 11 February 2014 19:33, Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote:
> The alternative for separate volume controls is that we keep embedding the
> volume in various other objects, like sinks, sources, ports (which, btw, are
> currently missing volume control altogether when they are inactive), sink
> inputs and source outputs. This is certainly a possible approach, but I very
> much prefer the separate volume control object idea.
> Benefits of separate volume control objects:
> * Solves the problem of figuring out what the main volume controls. For
> example, the Gnome volume applet shows a headphone icon when the main volume
> controls the headphones volume. The volume applet can check if the main
> volume points to the same volume control object as the headset port.
This is a bit clumsy, imo (mixers having to iterate over devices to
find which one they're controlling), and more importantly, forces the
policy to be "main volume == some device volume", which might not be
the case. For example, on a phone, the main volume might end up
corresponding to the volume of some volume class (music if there's
music playing, ringer if there isn't, etc.).
> * If two streams share the same volume, a pavucontrol-like application can
> group the two streams under one volume slider.
I assume you mean for cases such as virtual sink-inputs and
source-outputs that we use for filters? These aren't meant for the UI
> * Opportunity to separate the overall volume from the channel balance. The
> pa_cvolume volume representation loses all balance information when the user
> slides the overall volume to zero.
As already discussed, this doesn't really need the volume to be an object.
> * Flexibility to easily add new volume control objects for whatever purpose
> in the future. For example, there could be a volume debug mode where the
> individual alsa volume elements would be exposed as read-only volume
> controls, or separate read-only volume control objects for the "reference",
> "real" and "soft" components of sink volumes. pactl could show and control
> all volumes without understanding what the volumes are associated with.
Since I don't really see the volume objects as being needed for the
reasons you stated above, I'm not keen on adding them for potential
More information about the pulseaudio-discuss