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)
|
int sessionId)
|
||||||
{
|
{
|
||||||
Mutex::Autolock _l(mLock);
|
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) {
|
if (mType != RECORD) {
|
||||||
// suspend all effects in AUDIO_SESSION_OUTPUT_MIX when enabling any effect on
|
// 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
|
// 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();
|
sp<EffectHandle> handle = effect->mHandles[j].promote();
|
||||||
if (handle != 0) {
|
if (handle != 0) {
|
||||||
handle->mEffect.clear();
|
handle->mEffect.clear();
|
||||||
|
if (handle->mHasControl && handle->mEnabled) {
|
||||||
|
t->checkSuspendOnEffectEnabled_l(effect, false, effect->sessionId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AudioSystem::unregisterEffect(effect->id());
|
AudioSystem::unregisterEffect(effect->id());
|
||||||
@@ -6844,7 +6853,7 @@ void AudioFlinger::EffectHandle::disconnect(bool unpiniflast)
|
|||||||
}
|
}
|
||||||
mEffect->disconnect(this, unpiniflast);
|
mEffect->disconnect(this, unpiniflast);
|
||||||
|
|
||||||
if (mEnabled) {
|
if (mHasControl && mEnabled) {
|
||||||
sp<ThreadBase> thread = mEffect->thread().promote();
|
sp<ThreadBase> thread = mEffect->thread().promote();
|
||||||
if (thread != 0) {
|
if (thread != 0) {
|
||||||
thread->checkSuspendOnEffectEnabled(mEffect, false, mEffect->sessionId());
|
thread->checkSuspendOnEffectEnabled(mEffect, false, mEffect->sessionId());
|
||||||
|
|||||||
@@ -492,10 +492,12 @@ private:
|
|||||||
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
||||||
// check if some effects must be suspended/restored when an effect is enabled
|
// check if some effects must be suspended/restored when an effect is enabled
|
||||||
// or disabled
|
// or disabled
|
||||||
virtual void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
|
void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
|
||||||
bool enabled,
|
bool enabled,
|
||||||
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
||||||
|
void checkSuspendOnEffectEnabled_l(const sp<EffectModule>& effect,
|
||||||
|
bool enabled,
|
||||||
|
int sessionId = AUDIO_SESSION_OUTPUT_MIX);
|
||||||
mutable Mutex mLock;
|
mutable Mutex mLock;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -1299,7 +1301,7 @@ private:
|
|||||||
// suspend all eligible effects
|
// suspend all eligible effects
|
||||||
void setEffectSuspendedAll_l(bool suspend);
|
void setEffectSuspendedAll_l(bool suspend);
|
||||||
// check if effects should be suspend or restored when a given effect is enable or disabled
|
// 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);
|
bool enabled);
|
||||||
|
|
||||||
status_t dump(int fd, const Vector<String16>& args);
|
status_t dump(int fd, const Vector<String16>& args);
|
||||||
|
|||||||
Reference in New Issue
Block a user