diff options
author | Haynes Mathew George <hgeorge@codeaurora.org> | 2015-10-30 15:29:47 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-11-09 23:37:04 -0800 |
commit | 614ee35203329c5a617d0c5cfca9cd08446c3af5 (patch) | |
tree | 3f03532828454cc1ad6191efdac0bc8eeb702ae0 /services/audiopolicy | |
parent | 898d55ba5c1467c615efdf6d553c4a3bf62aeb25 (diff) | |
download | frameworks_av-614ee35203329c5a617d0c5cfca9cd08446c3af5.zip frameworks_av-614ee35203329c5a617d0c5cfca9cd08446c3af5.tar.gz frameworks_av-614ee35203329c5a617d0c5cfca9cd08446c3af5.tar.bz2 |
audiopolicy: Add synchronization to EffectDescriptorCollection
Synchronize public APIs of EffectDescriptorCollection
CRs-Fixed: 920103
Change-Id: I04ccac526c6f99e61e43288776653d6b7ff325c4
Diffstat (limited to 'services/audiopolicy')
-rw-r--r-- | services/audiopolicy/common/managerdefinitions/include/EffectDescriptor.h | 3 | ||||
-rw-r--r-- | services/audiopolicy/common/managerdefinitions/src/EffectDescriptor.cpp | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/services/audiopolicy/common/managerdefinitions/include/EffectDescriptor.h b/services/audiopolicy/common/managerdefinitions/include/EffectDescriptor.h index c9783a1..396541b 100644 --- a/services/audiopolicy/common/managerdefinitions/include/EffectDescriptor.h +++ b/services/audiopolicy/common/managerdefinitions/include/EffectDescriptor.h @@ -21,6 +21,7 @@ #include <utils/KeyedVector.h> #include <utils/RefBase.h> #include <utils/Errors.h> +#include <utils/Thread.h> namespace android { @@ -66,6 +67,8 @@ private: * Maximum memory allocated to audio effects in KB */ static const uint32_t MAX_EFFECTS_MEMORY = 512; + + Mutex mLock; }; }; // namespace android diff --git a/services/audiopolicy/common/managerdefinitions/src/EffectDescriptor.cpp b/services/audiopolicy/common/managerdefinitions/src/EffectDescriptor.cpp index 33d838d..6a0d079 100644 --- a/services/audiopolicy/common/managerdefinitions/src/EffectDescriptor.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/EffectDescriptor.cpp @@ -56,6 +56,7 @@ status_t EffectDescriptorCollection::registerEffect(const effect_descriptor_t *d int session, int id) { + Mutex::Autolock _l(mLock); if (mTotalEffectsMemory + desc->memoryUsage > getMaxEffectsMemory()) { ALOGW("registerEffect() memory limit exceeded for Fx %s, Memory %d KB", desc->name, desc->memoryUsage); @@ -80,6 +81,7 @@ status_t EffectDescriptorCollection::registerEffect(const effect_descriptor_t *d status_t EffectDescriptorCollection::unregisterEffect(int id) { + Mutex::Autolock _l(mLock); ssize_t index = indexOfKey(id); if (index < 0) { ALOGW("unregisterEffect() unknown effect ID %d", id); @@ -106,6 +108,7 @@ status_t EffectDescriptorCollection::unregisterEffect(int id) status_t EffectDescriptorCollection::setEffectEnabled(int id, bool enabled) { + Mutex::Autolock _l(mLock); ssize_t index = indexOfKey(id); if (index < 0) { ALOGW("unregisterEffect() unknown effect ID %d", id); @@ -148,6 +151,7 @@ status_t EffectDescriptorCollection::setEffectEnabled(const sp<EffectDescriptor> bool EffectDescriptorCollection::isNonOffloadableEffectEnabled() { + Mutex::Autolock _l(mLock); for (size_t i = 0; i < size(); i++) { sp<EffectDescriptor> effectDesc = valueAt(i); if (effectDesc->mEnabled && (effectDesc->mStrategy == STRATEGY_MEDIA) && @@ -172,6 +176,7 @@ uint32_t EffectDescriptorCollection::getMaxEffectsMemory() const status_t EffectDescriptorCollection::dump(int fd) { + Mutex::Autolock _l(mLock); const size_t SIZE = 256; char buffer[SIZE]; |