diff options
Diffstat (limited to 'audio')
| -rw-r--r-- | audio/AudioPolicyManagerBase.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/audio/AudioPolicyManagerBase.cpp b/audio/AudioPolicyManagerBase.cpp index 6db942b..ae8fe5e 100644 --- a/audio/AudioPolicyManagerBase.cpp +++ b/audio/AudioPolicyManagerBase.cpp @@ -839,9 +839,13 @@ status_t AudioPolicyManagerBase::setStreamVolumeIndex(AudioSystem::stream_type s // compute and apply stream volume on all outputs according to connected device status_t status = NO_ERROR; for (size_t i = 0; i < mOutputs.size(); i++) { - status_t volStatus = checkAndSetVolume(stream, index, mOutputs.keyAt(i), mOutputs.valueAt(i)->device()); - if (volStatus != NO_ERROR) { - status = volStatus; + audio_devices_t curDevice = + getDeviceForVolume((audio_devices_t)mOutputs.valueAt(i)->device()); + if (device == curDevice) { + status_t volStatus = checkAndSetVolume(stream, index, mOutputs.keyAt(i), curDevice); + if (volStatus != NO_ERROR) { + status = volStatus; + } } } return status; |
