Loading services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -482,6 +482,7 @@ status_t AudioPolicyService::registerEffect(const effect_descriptor_t *desc, if (mAudioPolicyManager == NULL) { return NO_INIT; } Mutex::Autolock _l(mEffectsLock); return mAudioPolicyManager->registerEffect(desc, io, strategy, session, id); } Loading @@ -490,6 +491,7 @@ status_t AudioPolicyService::unregisterEffect(int id) if (mAudioPolicyManager == NULL) { return NO_INIT; } Mutex::Autolock _l(mEffectsLock); return mAudioPolicyManager->unregisterEffect(id); } Loading @@ -498,6 +500,7 @@ status_t AudioPolicyService::setEffectEnabled(int id, bool enabled) if (mAudioPolicyManager == NULL) { return NO_INIT; } Mutex::Autolock _l(mEffectsLock); return mAudioPolicyManager->setEffectEnabled(id, enabled); } Loading Loading @@ -561,6 +564,8 @@ bool AudioPolicyService::isOffloadSupported(const audio_offload_info_t& info) return false; } Mutex::Autolock _l(mLock); Mutex::Autolock _le(mEffectsLock); // isOffloadSupported queries for // non-offloadable effects return mAudioPolicyManager->isOffloadSupported(info); } Loading services/audiopolicy/service/AudioPolicyService.h +4 −0 Original line number Diff line number Diff line Loading @@ -553,6 +553,10 @@ private: mutable Mutex mLock; // prevents concurrent access to AudioPolicy manager functions changing // device connection state or routing mutable Mutex mEffectsLock; // serialize access to Effect state within APM. // Note: lock acquisition order is always mLock > mEffectsLock: // mLock protects AudioPolicyManager methods that can call into audio flinger // and possibly back in to audio policy service and acquire mEffectsLock. sp<AudioCommandThread> mAudioCommandThread; // audio commands thread sp<AudioCommandThread> mTonePlaybackThread; // tone playback thread sp<AudioCommandThread> mOutputCommandThread; // process stop and release output Loading Loading
services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -482,6 +482,7 @@ status_t AudioPolicyService::registerEffect(const effect_descriptor_t *desc, if (mAudioPolicyManager == NULL) { return NO_INIT; } Mutex::Autolock _l(mEffectsLock); return mAudioPolicyManager->registerEffect(desc, io, strategy, session, id); } Loading @@ -490,6 +491,7 @@ status_t AudioPolicyService::unregisterEffect(int id) if (mAudioPolicyManager == NULL) { return NO_INIT; } Mutex::Autolock _l(mEffectsLock); return mAudioPolicyManager->unregisterEffect(id); } Loading @@ -498,6 +500,7 @@ status_t AudioPolicyService::setEffectEnabled(int id, bool enabled) if (mAudioPolicyManager == NULL) { return NO_INIT; } Mutex::Autolock _l(mEffectsLock); return mAudioPolicyManager->setEffectEnabled(id, enabled); } Loading Loading @@ -561,6 +564,8 @@ bool AudioPolicyService::isOffloadSupported(const audio_offload_info_t& info) return false; } Mutex::Autolock _l(mLock); Mutex::Autolock _le(mEffectsLock); // isOffloadSupported queries for // non-offloadable effects return mAudioPolicyManager->isOffloadSupported(info); } Loading
services/audiopolicy/service/AudioPolicyService.h +4 −0 Original line number Diff line number Diff line Loading @@ -553,6 +553,10 @@ private: mutable Mutex mLock; // prevents concurrent access to AudioPolicy manager functions changing // device connection state or routing mutable Mutex mEffectsLock; // serialize access to Effect state within APM. // Note: lock acquisition order is always mLock > mEffectsLock: // mLock protects AudioPolicyManager methods that can call into audio flinger // and possibly back in to audio policy service and acquire mEffectsLock. sp<AudioCommandThread> mAudioCommandThread; // audio commands thread sp<AudioCommandThread> mTonePlaybackThread; // tone playback thread sp<AudioCommandThread> mOutputCommandThread; // process stop and release output Loading