Hi 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 itself. 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! Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ 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/]