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

Commit 95e7e86b authored by Luca Stefani's avatar Luca Stefani Committed by Demon000
Browse files

Adapt session API for newly added AudioPolicyService code



Co-authored-by: default avatarDemon000 <demonsingur@gmail.com>
Change-Id: Ie74a5cd0ecc7b097fe94b29ef6cc3a89d189aad5
parent d0ae380c
Loading
Loading
Loading
Loading
+30 −27
Original line number Diff line number Diff line
@@ -182,7 +182,6 @@ status_t AudioPolicyService::getOutputForAttr(audio_attributes_t *attr,
        return NO_INIT;
    }
    ALOGV("getOutputForAttr()");
    audio_output_flags_t originalFlags = flags;
    status_t result = NO_ERROR;
    sp<AudioPolicyEffects> audioPolicyEffects;
    {
@@ -201,13 +200,12 @@ status_t AudioPolicyService::getOutputForAttr(audio_attributes_t *attr,
                && !bypassInterruptionPolicyAllowed(pid, uid)) {
            attr->flags &= ~(AUDIO_FLAG_BYPASS_INTERRUPTION_POLICY|AUDIO_FLAG_BYPASS_MUTE);
        }
        audio_output_flags_t originalFlags = flags;
        AutoCallerClear acc;
        result = mAudioPolicyManager->getOutputForAttr(attr, output, session, stream, uid,
                                                       config,
                                                       &flags, selectedDeviceId, portId,
                                                       secondaryOutputs);
        audioPolicyEffects = mAudioPolicyEffects;
    }

        // FIXME: Introduce a way to check for the the telephony device before opening the output
        if ((result == NO_ERROR) &&
@@ -231,6 +229,9 @@ status_t AudioPolicyService::getOutputForAttr(audio_attributes_t *attr,
            mAudioPlaybackClients.add(*portId, client);
        }

        audioPolicyEffects = mAudioPolicyEffects;
    }

    if (result == NO_ERROR && audioPolicyEffects != 0) {
        audioPolicyEffects->updateOutputAudioSessionInfo(*output, *stream,
                session, flags, config, uid);
@@ -339,6 +340,7 @@ void AudioPolicyService::doReleaseOutput(audio_port_handle_t portId)
        audioPolicyEffects->releaseOutputSessionEffects(
            client->io, client->stream, client->session);
    }
    {
        Mutex::Autolock _l(mLock);
        mAudioPlaybackClients.removeItem(portId);

@@ -346,6 +348,7 @@ void AudioPolicyService::doReleaseOutput(audio_port_handle_t portId)

        // called from internal thread: no need to clear caller identity
        mAudioPolicyManager->releaseOutput(portId);
    }

    if (audioPolicyEffects != 0) {
        audioPolicyEffects->releaseOutputAudioSessionInfo(client->io,