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

Commit bc167f83 authored by Eric Laurent's avatar Eric Laurent
Browse files

resolved conflicts for merge of 84fb58bd to lmp-mr1-dev

Change-Id: I9b2b1ff690d35e0da644bdb52c8c42a72e5fd4f6
parents bfadec12 84fb58bd
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -751,8 +751,12 @@ status_t AudioFlinger::setMasterVolume(float value)
    // assigned to HALs which do not have master volume support will apply
    // master volume during the mix operation.  Threads with HALs which do
    // support master volume will simply ignore the setting.
    for (size_t i = 0; i < mPlaybackThreads.size(); i++)
    for (size_t i = 0; i < mPlaybackThreads.size(); i++) {
        if (mPlaybackThreads.valueAt(i)->isDuplicating()) {
            continue;
        }
        mPlaybackThreads.valueAt(i)->setMasterVolume(value);
    }

    return NO_ERROR;
}
@@ -863,8 +867,12 @@ status_t AudioFlinger::setMasterMute(bool muted)
    // assigned to HALs which do not have master mute support will apply master
    // mute during the mix operation.  Threads with HALs which do support master
    // mute will simply ignore the setting.
    for (size_t i = 0; i < mPlaybackThreads.size(); i++)
    for (size_t i = 0; i < mPlaybackThreads.size(); i++) {
        if (mPlaybackThreads.valueAt(i)->isDuplicating()) {
            continue;
        }
        mPlaybackThreads.valueAt(i)->setMasterMute(muted);
    }

    return NO_ERROR;
}
@@ -1859,11 +1867,10 @@ status_t AudioFlinger::closeOutput_nonvirtual(audio_io_handle_t output)

        if (thread->type() == ThreadBase::MIXER) {
            for (size_t i = 0; i < mPlaybackThreads.size(); i++) {
                if (mPlaybackThreads.valueAt(i)->type() == ThreadBase::DUPLICATING) {
                if (mPlaybackThreads.valueAt(i)->isDuplicating()) {
                    DuplicatingThread *dupThread =
                            (DuplicatingThread *)mPlaybackThreads.valueAt(i).get();
                    dupThread->removeOutputTrack((MixerThread *)thread.get());

                }
            }
        }
@@ -1890,7 +1897,7 @@ status_t AudioFlinger::closeOutput_nonvirtual(audio_io_handle_t output)
    // The thread entity (active unit of execution) is no longer running here,
    // but the ThreadBase container still exists.

    if (thread->type() != ThreadBase::DUPLICATING) {
    if (!thread->isDuplicating()) {
        closeOutputFinish(thread);
    }

@@ -2336,6 +2343,9 @@ AudioFlinger::PlaybackThread *AudioFlinger::primaryPlaybackThread_l() const
{
    for (size_t i = 0; i < mPlaybackThreads.size(); i++) {
        PlaybackThread *thread = mPlaybackThreads.valueAt(i).get();
        if(thread->isDuplicating()) {
            continue;
        }
        AudioStreamOut *output = thread->getOutput();
        if (output != NULL && output->audioHwDev == mPrimaryHardwareDev) {
            return thread;
@@ -2649,7 +2659,7 @@ status_t AudioFlinger::moveEffectChain_l(int sessionId,
    // Check whether the destination thread has a channel count of FCC_2, which is
    // currently required for (most) effects. Prevent moving the effect chain here rather
    // than disabling the addEffect_l() call in dstThread below.
    if ((dstThread->type() == ThreadBase::MIXER || dstThread->type() == ThreadBase::DUPLICATING) &&
    if ((dstThread->type() == ThreadBase::MIXER || dstThread->isDuplicating()) &&
            dstThread->mChannelCount != FCC_2) {
        ALOGW("moveEffectChain_l() effect chain failed because"
                " destination thread %p channel count(%u) != %u",
+4 −1
Original line number Diff line number Diff line
@@ -4864,10 +4864,13 @@ void AudioFlinger::DuplicatingThread::removeOutputTrack(MixerThread *thread)
            mOutputTracks[i]->destroy();
            mOutputTracks.removeAt(i);
            updateWaitTime_l();
            if (thread->getOutput() == mOutput) {
                mOutput = NULL;
            }
            return;
        }
    }
    ALOGV("removeOutputTrack(): unkonwn thread: %p", thread);
    ALOGV("removeOutputTrack(): unknown thread: %p", thread);
}

// caller must hold mLock
+2 −0
Original line number Diff line number Diff line
@@ -229,6 +229,8 @@ public:

                // static externally-visible
                type_t      type() const { return mType; }
                bool isDuplicating() const { return (mType == DUPLICATING); }

                audio_io_handle_t id() const { return mId;}

                // dynamic externally-visible