diff options
author | Lalit Kansara <lkansara@codeaurora.org> | 2018-08-31 10:57:07 -0700 |
---|---|---|
committer | Divya Sharma <divyash@codeaurora.org> | 2018-10-17 18:30:22 -0700 |
commit | 5d1b35290b1651a50aa12edd01cbdb69947af1ca (patch) | |
tree | 1cf598e8730f2e3f449a195bb0da5961fffdd48b | |
parent | b432b4b6a6e70038764584af345590ddf03dd8fb (diff) | |
download | android_vendor_qcom_opensource_audio-5d1b35290b1651a50aa12edd01cbdb69947af1ca.tar.gz android_vendor_qcom_opensource_audio-5d1b35290b1651a50aa12edd01cbdb69947af1ca.tar.bz2 android_vendor_qcom_opensource_audio-5d1b35290b1651a50aa12edd01cbdb69947af1ca.zip |
Adapt AudioPolicyManagerCustom to changes in AudioPolicyManager.
Some virtual function signatures changed, and the vectorsEqual function vanished.
Reference to base class changes:
platform/frameworks/av/+/8fc147b21a7627eeda6383ae501add4dc903634e
platform/frameworks/av/+/9de8bd18b21642f6f1fb4e3ef75e44a2cc79f3ce
Change-Id: I8cba570b6dec263e1fa5ba3472d0478f99910b90
-rw-r--r-- | policy_hal/AudioPolicyManager.cpp | 33 | ||||
-rw-r--r-- | policy_hal/AudioPolicyManager.h | 6 |
2 files changed, 18 insertions, 21 deletions
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp index 76ad64e..ac50f46 100644 --- a/policy_hal/AudioPolicyManager.cpp +++ b/policy_hal/AudioPolicyManager.cpp @@ -486,7 +486,7 @@ void AudioPolicyManagerCustom::checkOutputForStrategy(routing_strategy strategy) } } - if (!vectorsEqual(srcOutputs,dstOutputs) && isInvalidationOfMusicStreamNeeded(strategy)) { + if ((srcOutputs != dstOutputs) && isInvalidationOfMusicStreamNeeded(strategy)) { AudioPolicyManager::checkOutputForStrategy(strategy); } } @@ -1950,21 +1950,22 @@ uint32_t AudioPolicyManagerCustom::activeNonSoundTriggerInputsCountOnDevices(aud return count; } -status_t AudioPolicyManagerCustom::startInput(audio_io_handle_t input, - audio_session_t session, +status_t AudioPolicyManagerCustom::startInput(audio_port_handle_t portId, bool silenced, concurrency_type__mask_t *concurrency) { - ALOGV("startInput(input:%d, session:%d, silenced:%d, concurrency:%d)", - input, session, silenced, *concurrency); + ALOGV("startInput(portId:%d, silenced:%d, concurrency:%d)", + portId, silenced, *concurrency); *concurrency = API_INPUT_CONCURRENCY_NONE; - ssize_t index = mInputs.indexOfKey(input); - if (index < 0) { - ALOGW("startInput() unknown input %d", input); + sp<AudioInputDescriptor> inputDesc = mInputs.getInputForClient(portId); + if (inputDesc == 0) { + ALOGW("startInput() no input for client %d", portId); return BAD_VALUE; } - sp<AudioInputDescriptor> inputDesc = mInputs.valueAt(index); + sp<RecordClientDescriptor> client = inputDesc->clients()[portId]; + audio_session_t session = client->session(); + audio_io_handle_t input = inputDesc->mIoHandle; sp<AudioSession> audioSession = inputDesc->getAudioSession(session); if (audioSession == 0) { @@ -2012,9 +2013,8 @@ status_t AudioPolicyManagerCustom::startInput(audio_io_handle_t input, sp<AudioSession> activeSession = activeSessions.valueAt(0); if (activeSession->isSilenced()) { audio_io_handle_t activeInput = activeDesc->mIoHandle; - audio_session_t activeSessionId = activeSession->session(); - stopInput(activeInput, activeSessionId); - releaseInput(activeInput, activeSessionId); + stopInput(activeInput); + releaseInput(portId); ALOGV("startInput(%d) stopping silenced input %d", input, activeInput); activeInputs = mInputs.getActiveInputs(); } @@ -2074,8 +2074,8 @@ status_t AudioPolicyManagerCustom::startInput(audio_io_handle_t input, SortedVector<audio_session_t> sessions = activeDesc->getPreemptedSessions(); sessions.add(activeSession); inputDesc->setPreemptedSessions(sessions); - stopInput(activeHandle, activeSession); - releaseInput(activeHandle, activeSession); + stopInput(activeHandle); + releaseInput(activeHandle); ALOGV("startInput(%d) for HOTWORD preempting HOTWORD input %d", input, activeDesc->mIoHandle); } @@ -2189,11 +2189,10 @@ status_t AudioPolicyManagerCustom::startInput(audio_io_handle_t input, return NO_ERROR; } -status_t AudioPolicyManagerCustom::stopInput(audio_io_handle_t input, - audio_session_t session) +status_t AudioPolicyManagerCustom::stopInput(audio_io_handle_t input) { status_t status; - status = AudioPolicyManager::stopInput(input, session); + status = AudioPolicyManager::stopInput(input); if (property_get_bool("persist.vendor.audio.va_concurrency_enabled", false)) { ssize_t index = mInputs.indexOfKey(input); sp<AudioInputDescriptor> inputDesc = mInputs.valueAt(index); diff --git a/policy_hal/AudioPolicyManager.h b/policy_hal/AudioPolicyManager.h index 60f25fd..2080edb 100644 --- a/policy_hal/AudioPolicyManager.h +++ b/policy_hal/AudioPolicyManager.h @@ -106,13 +106,11 @@ public: uint32_t activeNonSoundTriggerInputsCountOnDevices( audio_devices_t devices = AUDIO_DEVICE_IN_DEFAULT) const; // indicates to the audio policy manager that the input starts being used. - virtual status_t startInput(audio_io_handle_t input, - audio_session_t session, + virtual status_t startInput(audio_port_handle_t portId, bool silenced, concurrency_type__mask_t *concurrency); // indicates to the audio policy manager that the input stops being used. - virtual status_t stopInput(audio_io_handle_t input, - audio_session_t session); + virtual status_t stopInput(audio_port_handle_t portId); protected: |