diff options
-rw-r--r-- | audio/AudioPolicyManagerBase.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/audio/AudioPolicyManagerBase.cpp b/audio/AudioPolicyManagerBase.cpp index 9522000..aaae2c2 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 @@ -2520,10 +2523,10 @@ const AudioPolicyManagerBase::VolumeCurvePoint // AUDIO_STREAM_SYSTEM, AUDIO_STREAM_ENFORCED_AUDIBLE and AUDIO_STREAM_DTMF volume tracks // AUDIO_STREAM_RING on phones and AUDIO_STREAM_MUSIC on tablets (See AudioService.java). -// The range is constrained between -30dB and -12dB over speaker and -30dB and -18dB over headset. +// The range is constrained between -24dB and -6dB over speaker and -30dB and -18dB over headset. const AudioPolicyManagerBase::VolumeCurvePoint AudioPolicyManagerBase::sDefaultSystemVolumeCurve[AudioPolicyManagerBase::VOLCNT] = { - {1, -30.0f}, {33, -24.0f}, {66, -18.0f}, {100, -12.0f} + {1, -24.0f}, {33, -18.0f}, {66, -12.0f}, {100, -6.0f} }; const AudioPolicyManagerBase::VolumeCurvePoint @@ -2639,7 +2642,8 @@ float AudioPolicyManagerBase::computeVolume(int stream, // when the phone is ringing we must consider that music could have been paused just before // by the music application and behave as if music was active if the last music track was // just stopped - if (outputDesc->mRefCount[AudioSystem::MUSIC] || mLimitRingtoneVolume) { + if (isStreamActive(AudioSystem::MUSIC, SONIFICATION_HEADSET_MUSIC_DELAY) || + mLimitRingtoneVolume) { float musicVol = computeVolume(AudioSystem::MUSIC, mStreams[AudioSystem::MUSIC].getVolumeIndex(device), output, |