diff options
author | Eric Laurent <elaurent@google.com> | 2013-06-06 18:29:01 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2013-06-06 18:33:08 -0700 |
commit | 7e1139c0377b6806942fb2a043737b3b9cf0ae91 (patch) | |
tree | 4058659d99edb14cb95a7b7265db54eb8c6ef867 | |
parent | 62a8f67f33faf19d0ff815672dd19bb71dd0d650 (diff) | |
download | frameworks_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
-rw-r--r-- | services/audioflinger/Effects.cpp | 2 | ||||
-rw-r--r-- | services/audioflinger/Threads.cpp | 8 |
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); + } } } |