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

Commit 489c9fb6 authored by Steve Kondik's avatar Steve Kondik Committed by Steve Kondik
Browse files

audiopolicy: Update legacy policy for session callbacks

Change-Id: Id6f24195721a48dc5a0d3a7ff7fbee2bd8614128
parent c38d4f26
Loading
Loading
Loading
Loading
+26 −12
Original line number Diff line number Diff line
@@ -147,6 +147,24 @@ audio_io_handle_t AudioPolicyService::getOutput(audio_stream_type_t stream,
                                    format, channelMask, flags, offloadInfo);
}

status_t AudioPolicyService::addOutputSessionEffects(audio_io_handle_t output,
                                         audio_stream_type_t stream,
                                         audio_session_t session,
                                         audio_output_flags_t flags,
                                         audio_channel_mask_t channelMask,
                                         uid_t uid)
{
    if (uint32_t(stream) >= AUDIO_STREAM_CNT) {
        return BAD_VALUE;
    }
    if (mAudioPolicyManager == NULL) {
        return NO_INIT;
    }
    ALOGV("addOutputSessionEffects()");
    return mOutputCommandThread->addOutputSessionEffectsCommand(
            output, stream, session, flags, channelMask, uid);
}

status_t AudioPolicyService::startOutput(audio_io_handle_t output,
                                         audio_stream_type_t stream,
                                         audio_session_t session)
@@ -172,18 +190,6 @@ status_t AudioPolicyService::doStartOutput(audio_io_handle_t output,
        return NO_INIT;
    }
    ALOGV("doStartOutput()");
    sp<AudioPolicyEffects>audioPolicyEffects;
    {
        Mutex::Autolock _l(mLock);
        audioPolicyEffects = mAudioPolicyEffects;
    }
    if (audioPolicyEffects != 0) {
        // create audio processors according to stream
        status_t status = audioPolicyEffects->addOutputSessionEffects(output, stream, session);
        if (status != NO_ERROR && status != ALREADY_EXISTS) {
            ALOGW("Failed to add effects on session %d", session);
        }
    }

    Mutex::Autolock _l(mLock);
    return mpAudioPolicy->start_output(mpAudioPolicy, output, stream, session);
@@ -609,6 +615,14 @@ status_t AudioPolicyService::getOutputForAttr(const audio_attributes_t *attr,
    if (*output == AUDIO_IO_HANDLE_NONE) {
        return INVALID_OPERATION;
    }

    Mutex::Autolock _l(mLock);
    sp<AudioPolicyEffects> audioPolicyEffects;
    audioPolicyEffects = mAudioPolicyEffects;
    if (audioPolicyEffects != 0) {
        addOutputSessionEffects(*output, *stream, session, flags, channelMask, uid);
    }

    return NO_ERROR;
}