'Twas brillig, and David Henningsson at 29/06/11 11:53 did gyre and gimble: > On 2011-06-28 23:13, Colin Guthrie wrote: >> PS, while looking into this issue, I found a way to easily recreate the >> "initial volume issue" I discussed on IRC. >> >> 1. Comment out the path_set_unify() call. >> 2. Use my USB Handset with the Speaker kcontrol (no Master or PCM) >> 3. Switch between Analog Output and Analog Speakers profiles. >> >> >> When witching from AS -> AO, the Speaker kcontrol is zeroed+muted. When >> switching from AO -> AS, it stays in it's zeroed+muted state until the >> volume control is touched. I think this is similar behaviour to the >> initial startup problem. > > Aha, interesting. > >> Of course even with path_set_unify() commented out, the fact I have two >> ports (one of which now at least works \o/) is bogus. Only Analog >> Speakers should be present so this still needs to be addressed somehow, >> but I'm beginning to actually "get" the problem in a bit more depth >> now :) > > Given your analysis of the problem, you definitely seem to have got > deeper into it than I have :-) But when scratching my head about this > problem a while ago, I remember thinking that after having run through > all the paths, we should remove all paths whose volumes/mutes/enums are > true *subsets* of another path, because having that path does not > contribute anything. Yeah I was thinking along the same lines with regards to a process to sanitise the paths. Essentially, order the paths by score (I think this is acceptable as the score should already incorporate info with regards to which port is "better" - although I'd have to double check) and if any path is just a subset of a path with a higher score, then just nuke it. I think I've got a bit of a handle on this now, but probably won't be able to cook some patches up until later in the week or the weekend. Co -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited [http://www.tribalogic.net/] Open Source: Mageia Contributor [http://www.mageia.org/] PulseAudio Hacker [http://www.pulseaudio.org/] Trac Hacker [http://trac.edgewall.org/]