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

Commit 19bd5498 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Android (Google) Code Review
Browse files

Merge "Fix connection of OUT_REMOTE_SUBMIX device on APM startInput"

parents da53ce37 56afc7a5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ public:
    status_t removeAudioSession(audio_session_t session);
    sp<AudioSession> getAudioSession(audio_session_t session) const;
    AudioSessionCollection getAudioSessions(bool activeOnly) const;
    size_t getAudioSessionCount(bool activeOnly) const;
    audio_source_t getHighestPrioritySource(bool activeOnly) const;

private:
+1 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ public:
    uint32_t getOpenCount() const;

    AudioSessionCollection getActiveSessions() const;
    size_t getActiveSessionCount() const;
    bool hasActiveSession() const;
    bool isSourceActive(audio_source_t source) const;
    audio_source_t getHighestPrioritySource(bool activeOnly) const;
+9 −0
Original line number Diff line number Diff line
@@ -158,6 +158,15 @@ AudioSessionCollection AudioInputDescriptor::getAudioSessions(bool activeOnly) c
    }
}

size_t AudioInputDescriptor::getAudioSessionCount(bool activeOnly) const
{
    if (activeOnly) {
        return mSessions.getActiveSessionCount();
    } else {
        return mSessions.size();
    }
}

status_t AudioInputDescriptor::addAudioSession(audio_session_t session,
                         const sp<AudioSession>& audioSession) {
    return mSessions.addSession(session, audioSession);
+12 −1
Original line number Diff line number Diff line
@@ -186,9 +186,20 @@ AudioSessionCollection AudioSessionCollection::getActiveSessions() const
    return activeSessions;
}

size_t AudioSessionCollection::getActiveSessionCount() const
{
    size_t activeCount = 0;
    for (size_t i = 0; i < size(); i++) {
        if (valueAt(i)->activeCount() != 0) {
            activeCount++;
        }
    }
    return activeCount;
}

bool AudioSessionCollection::hasActiveSession() const
{
    return getActiveSessions().size() != 0;
    return getActiveSessionCount() != 0;
}

bool AudioSessionCollection::isSourceActive(audio_source_t source) const
+1 −1
Original line number Diff line number Diff line
@@ -1649,7 +1649,7 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,

        setInputDevice(input, getNewInputDevice(inputDesc), true /* force */);

        if (!inputDesc->isActive()) {
        if (inputDesc->getAudioSessionCount(true/*activeOnly*/) == 1) {
            // if input maps to a dynamic policy with an activity listener, notify of state change
            if ((inputDesc->mPolicyMix != NULL)
                    && ((inputDesc->mPolicyMix->mCbFlags & AudioMix::kCbFlagNotifyActivity) != 0)) {