summaryrefslogtreecommitdiffstats
path: root/audio/AudioPolicyManagerBase.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2012-09-05 18:13:06 -0700
committerEric Laurent <elaurent@google.com>2012-09-05 18:13:06 -0700
commit17a73c3394547692457299dc512b5c2312ea0344 (patch)
treebe36534fd5157598e737c52cbe3b85723c4e3b55 /audio/AudioPolicyManagerBase.cpp
parentc8101f5b14e745b348592c5609e55f121a11a6bf (diff)
downloadhardware_libhardware_legacy-17a73c3394547692457299dc512b5c2312ea0344.tar.gz
hardware_libhardware_legacy-17a73c3394547692457299dc512b5c2312ea0344.tar.bz2
hardware_libhardware_legacy-17a73c3394547692457299dc512b5c2312ea0344.zip
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
Diffstat (limited to 'audio/AudioPolicyManagerBase.cpp')
-rw-r--r--audio/AudioPolicyManagerBase.cpp5
1 files 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) {