diff options
author | Steve Kondik <steve@cyngn.com> | 2016-04-15 01:21:35 -0700 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2016-04-16 06:13:53 -0700 |
commit | 489c9fb62f02e1d23d6d6c89b22f7d19c596e65e (patch) | |
tree | 0656d9dbfdb9492e315936bb7c6dc0e40aefc4ca /services/audiopolicy | |
parent | c38d4f266ee016950bff2e08a8987e84f1d6461e (diff) | |
download | frameworks_av-489c9fb62f02e1d23d6d6c89b22f7d19c596e65e.zip frameworks_av-489c9fb62f02e1d23d6d6c89b22f7d19c596e65e.tar.gz frameworks_av-489c9fb62f02e1d23d6d6c89b22f7d19c596e65e.tar.bz2 |
audiopolicy: Update legacy policy for session callbacks
Change-Id: Id6f24195721a48dc5a0d3a7ff7fbee2bd8614128
Diffstat (limited to 'services/audiopolicy')
-rw-r--r-- | services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp index 318c6d2..e3d69ba 100644 --- a/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp +++ b/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp @@ -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; } |