[pulseaudio-discuss] Development proposals

Lennart Poettering lennart at poettering.net
Mon Jan 5 15:56:37 PST 2009


On Mon, 05.01.09 21:58, Colin Guthrie (gmane at colin.guthr.ie) wrote:

> >> The page is here:
> >> http://www.pulseaudio.org/wiki/Development
> >>
> >> Comments and feedback welcome and if it's not clear when I mean in these 
> >> proposals please say what's confusing you and I will clarify the 
> >> descriptions.
> > 
> > Thanks for the work! I'll keep an eye on it and comment where necessary.
> 
> No worries. If you have any thoughts on the latter two, it would be 
> interesting to see what your current thinking is as I think it does need 
> to be addressed in some capacity (it's a very common question I get 
> asked on IRC and mailing lists etc.)

Hmm, regarding the active "Default" sink:

Generally I'd like to move away from virtual sinks if
possible. Firstly with the arrival of properties on sinks, having
virtual sinks piggybacked on them will hide all of those
properties. Then, sinks are something that should be exposed to the
user, but I fear exposing "virtual" devices won't make you win the
crown of good user experience.

I wonder if the whole issue could simply be fixed be rearranging the
UI a bit. Perhaps as a first step renaming "Default sink" to "Fallback
sink" -- since that's how it actually works now. Alternatively we
could simply implicitly drop the saved rules table when the user makes
another sink the default. And finally an option could actually be to
drop the "automatic remembering" part entirely for the devices and
replace it by per-role configuraiton dialogs. i.e. like the old one
from GNOME where you can set different devices for Movie, Audio,
Events, and Games or so.

So, I am not sure about this one. What do you say?

And about the prio list:

I don't like complex UIs (yes, I designed a couple of them, but I am
complicated man ;-)). That's why I'd suggest not exposing a prio list
in the UI (yes, I am a GNOME man!). Instead we could probably come up
with a simple algorithm for building the right order list
automatically without user invention. And that could work like this:

  We maintain an ordered list of default sinks to use, one for each
  entry in the stream rule table, and one for the global default.

  When a stream is created we go through this default list for its
  entry in the stream rule table, from top to bottom and take the
  first sink we find that is actually available. If there is no entry 
  in the rule table we use the global default list.

  After a stream has been created or moved we make sure that if there
  is more than one sink available and any of the sinks the stream is
  not connected to is in in our list for that stream at a position
  before the one we are connected to or not in our list at all we
  place right after the sink we are connected to.

And that's it. Might be a bit difficult to follow what actually goes
on. But basically what this algorithm tries to do is to remember how
you priorize sinks over each other. If you have more than one sink
around and PA chose the wrong sink for a stream than all you need to
do is to move the stream to the other sink and PA rearranges its sink
priority list accordingly and should remember from now on. 

So instead of exposing yet another UI PA could just learn and you can
teach it by simply moving streams to the appropriate sinks.

Does that sound reasonable to you?

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



More information about the pulseaudio-discuss mailing list