Loading services/audiopolicy/common/managerdefinitions/include/AudioInputDescriptor.h +1 −0 Original line number Diff line number Diff line Loading @@ -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: Loading services/audiopolicy/common/managerdefinitions/include/AudioSession.h +1 −0 Original line number Diff line number Diff line Loading @@ -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; Loading services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -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); Loading services/audiopolicy/common/managerdefinitions/src/AudioSession.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading services/audiopolicy/managerdefault/AudioPolicyManager.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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)) { Loading Loading
services/audiopolicy/common/managerdefinitions/include/AudioInputDescriptor.h +1 −0 Original line number Diff line number Diff line Loading @@ -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: Loading
services/audiopolicy/common/managerdefinitions/include/AudioSession.h +1 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
services/audiopolicy/common/managerdefinitions/src/AudioInputDescriptor.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
services/audiopolicy/common/managerdefinitions/src/AudioSession.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
services/audiopolicy/managerdefault/AudioPolicyManager.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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)) { Loading