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