On 08/26/2011 03:05 PM, Colin Guthrie wrote: > 'Twas brillig, and Colin Guthrie at 25/08/11 17:17 did gyre and gimble: >> 'Twas brillig, and Arun Raghavan at 25/08/11 17:08 did gyre and gimble: >>> On Wed, 2011-08-24 at 22:58 +0100, Colin Guthrie wrote: >>>> Hi, >>>> >>>> This is a patch set that will likely mostly interest David, but also >>>> solves one of the remaining niggles I have for 1.0 - the fact that >>>> volumes are not set properly on port changes. >>>> >>>> Now this only "solves" that niggle when the module-device-restore is used, >>>> but I'm happy enough to rely on that for now seeing as it's the default >>>> on 99.999% of desktop installs. >>>> >>>> The overall benefit of this patch is that it allows different volumes >>>> to be saved and restored for different ports. Combine this with David's >>>> work on making jack-detection work (which triggers port changes) and you >>>> automatically get different volumes on headphones vs. speakers. >>> >>> My main concern is the following scenario: >>> >>> 0. Say we start with built-in speaker and headphone port and equal >>> (maybe 70%) volume >>> 1. With headphones plugged in, I've got the volume turned up while >>> playing something that's naturally not very loud >>> 2. I pull out headphones, start playing something that's quite loud, I >>> turn down the volume >>> 3. I put the headphones back, find the output too loud (since the port >>> volume was turned up for the previous stream) >>> >>> While the current scenario isn't ideal, it's easy for users to wrap >>> their head around (different devices have different loudness levels). If >>> we don't handle this sort of case in the per-port-volume case, IMO the >>> behaviour is potentially confusing/frustrating to users. >>> >>> Maybe there's a simple way to handle this that I'm missing ... >> >> I'm not sure there is a way to handle this really. Either we want >> volumes per-port or we don't. IMO we do (this is how it works on my >> iPhone for example) and I think from the various mumblings I've heard >> over the years most people want this type of functionality. >> >> But perhaps there is indeed some magic solution that we are both missing :p > > Anyone else got any comments on this? I'd like to push it out if all is > well otherwise. > > > FWIW, to address Arun's concern somewhat, we could relatively easily > make a change here that kept the same volume for every port simply by > changing the key name used and then expose this as a module argument > should people really hate this behaviour. > > Any comments on the code would be appreciated too :) Well, I'm not that much into the database format, so can't really look for bugs there...I have a question though: What about loudness bumps? It looks like that could be the effect if you set the volume in such a reactive fashion? However - it might be that there is no true way around that anyway, as in the case of jack detection as we're only reactive to what the kernel does. -- David Henningsson, Canonical Ltd. http://launchpad.net/~diwic