diff options
Diffstat (limited to 'services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp')
-rw-r--r-- | services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp index e3d69ba..318c6d2 100644 --- a/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp +++ b/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp @@ -147,24 +147,6 @@ 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) @@ -190,6 +172,18 @@ 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); @@ -615,14 +609,6 @@ 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; } |