[pulseaudio-discuss] padevchooser improvements

Colin Guthrie gmane at colin.guthr.ie
Mon Nov 10 02:43:36 PST 2008


Here is a longer reply :)

Michael Gratton wrote:
> I'd like to make padevchooser a bit easier to use.
> One main use case for padevchooser seems to be providing quick access to
> networked hosts with PA sources/sinks (this is what I use it for). This
> is a bit cumbersome at the moment.
> For example, to send audio from my notebook to my desktop, I need to
> select the "Default Sink" sub-menu, find the entries for the desktop
> machine, then choose the correct one out of the many available for that
> host. Choosing this also sets the default server to be the desktop, but
> to change both back, I need to go instead to the "Default Server" sub
> menu and select "Default" or my notebook's entry, which also changes the
> default sink back or else I have to do both. I have to do this manually,
> even when the network sink disappears, otherwise there is a long pause
> when applications try to open the no-longer-existing network sink.

Do you know about tunnels?

Rather than use padevchooser to output the sound to a different device, 
I'd personally use a tunnel rather than setting the system wide 
defaults. I can then use pavucontrol to move the streams between my 
local and remote devices at will. It's not overly easy to set the 
default for *everything* this way tho', but it does have other advantages.

There are a couple reasons for this: one it doesn't require me to 
restart the application (or restart the stream in some applications), 
and if I unplug the network (or suspend my laptop and resume later away 
from the network) then the streams I'm playing will be "rescued" to my 
local device.

Pulseaudio has automatic support for adding tunnels to network devices 
via the module-zeroconf-discover which will load module-tunnel-sink when 
it finds a pulseaudio server on the network. You can enable zeroconf 
discovery with a few options in paprefs

> This is what I'd propose:
>      1. Make padevchooser revert to the local machine when avahai
>         reports the currently selected network server/source/sink has
>         disappeared - this fixes the last problem above

With tunnels this happens automatically (and for running streams) via 
the help of module-rescue-streams

>      2. Replace the three Default Server/Sink/Source sub menus with a
>         radiobutton-list of available hosts and a permanently available,
>         default entry for "This computer" or similar. Much like how
>         Network Manager presents a list of available wifi networks.
>              1. When selecting a host, all of the local default
>                 server/source/sink are set to the default for that host.
>                 This I think would be the common case and is much easier
>                 than having to hunt for the correct source/sink every
>                 time through sub menus and removes the asymmetric task
>                 of changing back to the local machine
>              2. More advanced configuration, if required, could be set
>                 using a "Edit connections..." menu item, which much like
>                 Network Manager presents a dialog, allowing specific
>                 sources/sinks to be chosen for the local and networked
>                 hosts.

A lot of what you describe here should really be handled in pulseaudio 

Some of the routing rules may need to be tweaked to work exactly how you 
want it, but there are valid arguments against this approach too. The 
flexibility should be there via the rules mechanism of module-stream-restore

> Any thoughts? If this sounds reasonable I'd like to have a go at
> implementing it.

It's great that you're interested but I think you should not use 
padevchooser as a starting point.

Lennart (the main pulse developer) wont be about for the next few weeks, 
and I'm fairly busy myself (and don't know the indepth details that 
Lennart does anyway!) for the next week or so. Starting next Tuesday, I 
should be a little bit more responsive!

Hang out on our IRC channel and if I'm about I'll certainly discuss with 
you. If I don't reply, I'm probably not really there!



Colin Guthrie

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]

More information about the pulseaudio-discuss mailing list