summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2012-06-06 16:09:03 -0700
committerEric Laurent <elaurent@google.com>2012-06-06 16:58:35 -0700
commitfa3697d716b444bbea6be480801536c44bf69214 (patch)
treeaffb22e5d7eb0b585f58e99a6ac1ece071881283
parent3cdfddf1b27bcb5408ca3a04fcdf206447ba07ba (diff)
downloadhardware_libhardware_legacy-fa3697d716b444bbea6be480801536c44bf69214.zip
hardware_libhardware_legacy-fa3697d716b444bbea6be480801536c44bf69214.tar.gz
hardware_libhardware_legacy-fa3697d716b444bbea6be480801536c44bf69214.tar.bz2
audio policy: remove delay when enabling speaker
Do not force mute on a strategy when moving it from one output stream to another if no stream is active. Bug 6611972. Change-Id: I21f72b0ef3600639de66e6b0a1c3ae44045fd81f
-rw-r--r--audio/AudioPolicyManagerBase.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/audio/AudioPolicyManagerBase.cpp b/audio/AudioPolicyManagerBase.cpp
index 9522000..fcee6ae 100644
--- a/audio/AudioPolicyManagerBase.cpp
+++ b/audio/AudioPolicyManagerBase.cpp
@@ -1803,8 +1803,11 @@ void AudioPolicyManagerBase::checkOutputForStrategy(routing_strategy strategy)
strategy, srcOutputs[0], dstOutputs[0]);
// mute strategy while moving tracks from one output to another
for (size_t i = 0; i < srcOutputs.size(); i++) {
- setStrategyMute(strategy, true, srcOutputs[i]);
- setStrategyMute(strategy, false, srcOutputs[i], MUTE_TIME_MS, newDevice);
+ AudioOutputDescriptor *desc = mOutputs.valueFor(srcOutputs[i]);
+ if (desc->strategyRefCount(strategy) != 0) {
+ setStrategyMute(strategy, true, srcOutputs[i]);
+ setStrategyMute(strategy, false, srcOutputs[i], MUTE_TIME_MS, newDevice);
+ }
}
// Move effects associated to this strategy from previous output to new output