[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