From 17a73c3394547692457299dc512b5c2312ea0344 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Wed, 5 Sep 2012 18:13:06 -0700 Subject: audio policy: fix ringtone volume on headphones When limiting ringtone volume because headphones are connected and music is playing, the volume was not limited against the right music volume. The is because the device used for music (headphone) is not the same as the one used for ringtone (headphone + speaker). Bug 6816207. Change-Id: I3342be1789a1b7c58705812335b788f030bc6d76 --- audio/AudioPolicyManagerBase.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/audio/AudioPolicyManagerBase.cpp b/audio/AudioPolicyManagerBase.cpp index 39ac709..7cd5652 100644 --- a/audio/AudioPolicyManagerBase.cpp +++ b/audio/AudioPolicyManagerBase.cpp @@ -2653,10 +2653,11 @@ float AudioPolicyManagerBase::computeVolume(int stream, // just stopped if (isStreamActive(AudioSystem::MUSIC, SONIFICATION_HEADSET_MUSIC_DELAY) || mLimitRingtoneVolume) { + audio_devices_t musicDevice = getDeviceForStrategy(STRATEGY_MEDIA, true /*fromCache*/); float musicVol = computeVolume(AudioSystem::MUSIC, - mStreams[AudioSystem::MUSIC].getVolumeIndex(device), + mStreams[AudioSystem::MUSIC].getVolumeIndex(musicDevice), output, - device); + musicDevice); float minVol = (musicVol > SONIFICATION_HEADSET_VOLUME_MIN) ? musicVol : SONIFICATION_HEADSET_VOLUME_MIN; if (volume > minVol) { -- cgit v1.1