summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp')
-rw-r--r--services/audiopolicy/service/AudioPolicyInterfaceImplLegacy.cpp38
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;
}