summaryrefslogtreecommitdiffstats
path: root/services/audioflinger
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2013-06-06 18:29:01 -0700
committerEric Laurent <elaurent@google.com>2013-06-06 18:33:08 -0700
commit7e1139c0377b6806942fb2a043737b3b9cf0ae91 (patch)
tree4058659d99edb14cb95a7b7265db54eb8c6ef867 /services/audioflinger
parent62a8f67f33faf19d0ff815672dd19bb71dd0d650 (diff)
downloadframeworks_av-7e1139c0377b6806942fb2a043737b3b9cf0ae91.zip
frameworks_av-7e1139c0377b6806942fb2a043737b3b9cf0ae91.tar.gz
frameworks_av-7e1139c0377b6806942fb2a043737b3b9cf0ae91.tar.bz2
AudioFlinger: do not cache audio device when 0.
AudioFlinger should not cache the audio device passed to the audio HAL when it is AUDIO_DEVICE_NONE but keep previous valid selection instead. Bug: 9323399. Change-Id: I6f9480e55a21be4115453e6a5eebc5cf2536c476
Diffstat (limited to 'services/audioflinger')
-rw-r--r--services/audioflinger/Effects.cpp2
-rw-r--r--services/audioflinger/Threads.cpp8
2 files changed, 6 insertions, 4 deletions
diff --git a/services/audioflinger/Effects.cpp b/services/audioflinger/Effects.cpp
index d66294c..942ea35 100644
--- a/services/audioflinger/Effects.cpp
+++ b/services/audioflinger/Effects.cpp
@@ -680,7 +680,7 @@ status_t AudioFlinger::EffectModule::setDevice(audio_devices_t device)
return mStatus;
}
status_t status = NO_ERROR;
- if (device && (mDescriptor.flags & EFFECT_FLAG_DEVICE_MASK) == EFFECT_FLAG_DEVICE_IND) {
+ if ((mDescriptor.flags & EFFECT_FLAG_DEVICE_MASK) == EFFECT_FLAG_DEVICE_IND) {
status_t cmdStatus;
uint32_t size = sizeof(status_t);
uint32_t cmd = audio_is_output_devices(device) ? EFFECT_CMD_SET_DEVICE :
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 539bb4f..6422b23 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -2992,9 +2992,11 @@ bool AudioFlinger::MixerThread::checkForNewParameters_l()
// forward device change to effects that have requested to be
// aware of attached audio device.
- mOutDevice = value;
- for (size_t i = 0; i < mEffectChains.size(); i++) {
- mEffectChains[i]->setDevice_l(mOutDevice);
+ if (value != AUDIO_DEVICE_NONE) {
+ mOutDevice = value;
+ for (size_t i = 0; i < mEffectChains.size(); i++) {
+ mEffectChains[i]->setDevice_l(mOutDevice);
+ }
}
}