summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-04-19 02:41:45 -0700
committerSteve Kondik <steve@cyngn.com>2016-04-19 22:21:40 -0700
commit32ef0556ae58ff6b7c6fe6fb0a17d3ff7f01de31 (patch)
treee134a8ab7a0b5a00c7f3680b7b3ed6562ccbef80 /services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
parent489c9fb62f02e1d23d6d6c89b22f7d19c596e65e (diff)
downloadframeworks_av-32ef0556ae58ff6b7c6fe6fb0a17d3ff7f01de31.zip
frameworks_av-32ef0556ae58ff6b7c6fe6fb0a17d3ff7f01de31.tar.gz
frameworks_av-32ef0556ae58ff6b7c6fe6fb0a17d3ff7f01de31.tar.bz2
audiopolicy: Clean up the mess
* Since we're not using the policy directly to auto-attach, let's clean it up and remove the unused stuff. * Also fixes notifications for session release. This reverts commit 47f8c7303c9e2054f1492b02b6c7472385c52dc9. Change-Id: Ibe65f427773c6ef012dde4f289d10e4089c094ea
Diffstat (limited to 'services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp')
-rw-r--r--services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp33
1 files changed, 13 insertions, 20 deletions
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index 51af20b..96bc4c7 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -182,30 +182,12 @@ status_t AudioPolicyService::getOutputForAttr(const audio_attributes_t *attr,
}
if (audioPolicyEffects != 0) {
- addOutputSessionEffects(*output, *stream, session, flags, channelMask, uid);
+ audioPolicyEffects->doAddOutputSessionEffects(*output, *stream, session, flags, channelMask, uid);
}
return status;
}
-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)
@@ -231,8 +213,19 @@ 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 mAudioPolicyManager->startOutput(output, stream, session);
}