am 3c86134a: Merge "Fix issue 381905: BassBoostTest CTS tests fail..." into ics-mr0
* commit '3c86134a50618605c86eb9f5f120dbf97826e3e1': Fix issue 381905: BassBoostTest CTS tests fail...
This commit is contained in:
@@ -1332,7 +1332,13 @@ void AudioFlinger::ThreadBase::checkSuspendOnEffectEnabled(const sp<EffectModule
|
||||
int sessionId)
|
||||
{
|
||||
Mutex::Autolock _l(mLock);
|
||||
checkSuspendOnEffectEnabled_l(effect, enabled, sessionId);
|
||||
}
|
||||
|
||||
void AudioFlinger::ThreadBase::checkSuspendOnEffectEnabled_l(const sp<EffectModule>& effect,
|
||||
bool enabled,
|
||||
int sessionId)
|
||||
{
|
||||
if (mType != RECORD) {
|
||||
// suspend all effects in AUDIO_SESSION_OUTPUT_MIX when enabling any effect on
|
||||
// another session. This gives the priority to well behaved effect control panels
|
||||
@@ -5224,6 +5230,9 @@ void AudioFlinger::purgeStaleEffects_l() {
|
||||
sp<EffectHandle> handle = effect->mHandles[j].promote();
|
||||
if (handle != 0) {
|
||||
handle->mEffect.clear();
|
||||
if (handle->mHasControl && handle->mEnabled) {
|
||||
t->checkSuspendOnEffectEnabled_l(effect, false, effect->sessionId());
|
||||
}
|
||||
}
|
||||
}
|
||||
AudioSystem::unregisterEffect(effect->id());
|
||||
@@ -6844,7 +6853,7 @@ void AudioFlinger::EffectHandle::disconnect(bool unpiniflast)
|
||||
}
|
||||
mEffect->disconnect(this, unpiniflast);
|
||||
|
||||
if (mEnabled) {
|
||||
if (mHasControl && mEnabled) {
|
||||
sp<ThreadBase> thread = mEffect->thread().promote();
|
||||
if (thread != 0) {
|
||||
thread->checkSuspendOnEffectEnabled(mEffect, false, mEffect->sessionId());
|
||||
|
||||
@@ -492,10 +492,12 @@ private:
|
||||
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
||||
// check if some effects must be suspended/restored when an effect is enabled
|
||||
// or disabled
|
||||
virtual void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
|
||||
void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
|
||||
bool enabled,
|
||||
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
||||
|
||||
void checkSuspendOnEffectEnabled_l(const sp<EffectModule>& effect,
|
||||
bool enabled,
|
||||
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
||||
mutable Mutex mLock;
|
||||
|
||||
protected:
|
||||
@@ -1299,7 +1301,7 @@ private:
|
||||
// suspend all eligible effects
|
||||
void setEffectSuspendedAll_l(bool suspend);
|
||||
// check if effects should be suspend or restored when a given effect is enable or disabled
|
||||
virtual void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
|
||||
void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
|
||||
bool enabled);
|
||||
|
||||
status_t dump(int fd, const Vector<String16>& args);
|
||||
|
||||
Reference in New Issue
Block a user