diff options
author | Eric Laurent <elaurent@google.com> | 2015-03-31 16:54:31 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-03-31 16:54:31 +0000 |
commit | 81e776d00ddf3bfa6c5cf3368418c21bef66262e (patch) | |
tree | 095ad0c7a005c20887665ee5ec243e692bac6834 /services/audiopolicy | |
parent | 9550d4f8769ad8adf3c1c495bcb2168bea3c506f (diff) | |
parent | 2a2642d85c4c992965055f87a8145b26df8f16a6 (diff) | |
download | frameworks_av-81e776d00ddf3bfa6c5cf3368418c21bef66262e.zip frameworks_av-81e776d00ddf3bfa6c5cf3368418c21bef66262e.tar.gz frameworks_av-81e776d00ddf3bfa6c5cf3368418c21bef66262e.tar.bz2 |
am 2a2642d8: am 42431438: DO NOT MERGE - audio policy: fix DeviceVector::getDevicesFromType()
* commit '2a2642d85c4c992965055f87a8145b26df8f16a6':
DO NOT MERGE - audio policy: fix DeviceVector::getDevicesFromType()
Diffstat (limited to 'services/audiopolicy')
-rw-r--r-- | services/audiopolicy/AudioPolicyManager.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp index 7f27659..6ebd0ed 100644 --- a/services/audiopolicy/AudioPolicyManager.cpp +++ b/services/audiopolicy/AudioPolicyManager.cpp @@ -7635,10 +7635,14 @@ AudioPolicyManager::DeviceVector AudioPolicyManager::DeviceVector::getDevicesFro audio_devices_t type) const { DeviceVector devices; + bool isOutput = audio_is_output_devices(type); + type &= ~AUDIO_DEVICE_BIT_IN; for (size_t i = 0; (i < size()) && (type != AUDIO_DEVICE_NONE); i++) { - if (itemAt(i)->mDeviceType & type & ~AUDIO_DEVICE_BIT_IN) { + bool curIsOutput = audio_is_output_devices(itemAt(i)->mDeviceType); + audio_devices_t curType = itemAt(i)->mDeviceType & ~AUDIO_DEVICE_BIT_IN; + if ((isOutput == curIsOutput) && ((type & curType) != 0)) { devices.add(itemAt(i)); - type &= ~itemAt(i)->mDeviceType; + type &= ~curType; ALOGV("DeviceVector::getDevicesFromType() for type %x found %p", itemAt(i)->mDeviceType, itemAt(i).get()); } |