OSDN Git Service

audio policy: remove delay when enabling speaker
authorEric Laurent <elaurent@google.com>
Wed, 6 Jun 2012 23:09:03 +0000 (16:09 -0700)
committerEric Laurent <elaurent@google.com>
Wed, 6 Jun 2012 23:58:35 +0000 (16:58 -0700)
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

audio/AudioPolicyManagerBase.cpp

index 9522000..fcee6ae 100644 (file)
@@ -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