summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Effects.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2013-09-09 14:29:08 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-09-09 14:29:08 -0700
commit8136cfae9c22ae8ff42eec9ed751833dda605444 (patch)
treeb6e71058c48bcdd37046ddfa60e3da80b5cc1015 /services/audioflinger/Effects.cpp
parenta041f2fce87fa7a0926365d8e8fbc66019ac0661 (diff)
parent8a910716892d17a2ac62c7e9884af0e9d75b26bc (diff)
downloadframeworks_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.cpp34
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