diff options
author | Eric Laurent <elaurent@google.com> | 2013-09-09 14:29:08 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-09-09 14:29:08 -0700 |
commit | 8136cfae9c22ae8ff42eec9ed751833dda605444 (patch) | |
tree | b6e71058c48bcdd37046ddfa60e3da80b5cc1015 /services/audioflinger/Effects.cpp | |
parent | a041f2fce87fa7a0926365d8e8fbc66019ac0661 (diff) | |
parent | 8a910716892d17a2ac62c7e9884af0e9d75b26bc (diff) | |
download | frameworks_av-8136cfae9c22ae8ff42eec9ed751833dda605444.zip frameworks_av-8136cfae9c22ae8ff42eec9ed751833dda605444.tar.gz frameworks_av-8136cfae9c22ae8ff42eec9ed751833dda605444.tar.bz2 |
am 8a910716: am 6ca83fad: Merge "audioflinger: no effects on offloaded tracks" into klp-dev
* commit '8a910716892d17a2ac62c7e9884af0e9d75b26bc':
audioflinger: no effects on offloaded tracks
Diffstat (limited to 'services/audioflinger/Effects.cpp')
-rw-r--r-- | services/audioflinger/Effects.cpp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/services/audioflinger/Effects.cpp b/services/audioflinger/Effects.cpp index 2a18104..fc45caa 100644 --- a/services/audioflinger/Effects.cpp +++ b/services/audioflinger/Effects.cpp @@ -594,17 +594,6 @@ status_t AudioFlinger::EffectModule::setEnabled_l(bool enabled) h->setEnabled(enabled); } } -//EL_FIXME not sure why this is needed? -// sp<ThreadBase> thread = mThread.promote(); -// if (thread == 0) { -// return NO_ERROR; -// } -// -// if ((thread->type() == ThreadBase::OFFLOAD) && (enabled)) { -// PlaybackThread *p = (PlaybackThread *)thread.get(); -// ALOGV("setEnabled: Offload, invalidate tracks"); -// p->invalidateTracks(AUDIO_STREAM_MUSIC); -// } } return NO_ERROR; } @@ -943,6 +932,17 @@ status_t AudioFlinger::EffectHandle::enable() thread->checkSuspendOnEffectEnabled(mEffect, false, mEffect->sessionId()); } mEnabled = false; + } else { + //TODO: remove when effect offload is implemented + if (thread != 0) { + if ((thread->type() == ThreadBase::OFFLOAD)) { + PlaybackThread *t = (PlaybackThread *)thread.get(); + t->invalidateTracks(AUDIO_STREAM_MUSIC); + } + if (mEffect->sessionId() == AUDIO_SESSION_OUTPUT_MIX) { + thread->mAudioFlinger->onGlobalEffectEnable(); + } + } } return status; } @@ -1729,4 +1729,16 @@ void AudioFlinger::EffectChain::checkSuspendOnEffectEnabled(const sp<EffectModul } } +bool AudioFlinger::EffectChain::isEnabled() +{ + Mutex::Autolock _l(mLock); + size_t size = mEffects.size(); + for (size_t i = 0; i < size; i++) { + if (mEffects[i]->isEnabled()) { + return true; + } + } + return false; +} + }; // namespace android |