Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 545d1e93 authored by Eric Laurent's avatar Eric Laurent Committed by Android Git Automerger
Browse files

am 3c86134a: Merge "Fix issue 381905: BassBoostTest CTS tests fail..." into ics-mr0

* commit '3c86134a50618605c86eb9f5f120dbf97826e3e1':
  Fix issue 381905: BassBoostTest CTS tests fail...
parents ca9f7f2d a85a74a8
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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());
+5 −3
Original line number Diff line number Diff line
@@ -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);