aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-05-12 23:12:11 -0700
committerChris Robinson <[email protected]>2016-05-12 23:12:11 -0700
commit9e6d8342de62df83377b19577268af7106cdc088 (patch)
treeb60690e092a3c5d7de442273e8cfeafd814a0a72 /OpenAL32/Include
parent8d14824c657a1471d08e175c8153909627313d70 (diff)
Hold the effect and filter maps while handling effects and filters
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alEffect.h13
-rw-r--r--OpenAL32/Include/alFilter.h13
2 files changed, 22 insertions, 4 deletions
diff --git a/OpenAL32/Include/alEffect.h b/OpenAL32/Include/alEffect.h
index 91ee782f..d20ef077 100644
--- a/OpenAL32/Include/alEffect.h
+++ b/OpenAL32/Include/alEffect.h
@@ -176,10 +176,19 @@ typedef struct ALeffect {
ALuint id;
} ALeffect;
+inline void LockEffectsRead(ALCdevice *device)
+{ LockUIntMapRead(&device->EffectMap); }
+inline void UnlockEffectsRead(ALCdevice *device)
+{ UnlockUIntMapRead(&device->EffectMap); }
+inline void LockEffectsWrite(ALCdevice *device)
+{ LockUIntMapWrite(&device->EffectMap); }
+inline void UnlockEffectsWrite(ALCdevice *device)
+{ UnlockUIntMapWrite(&device->EffectMap); }
+
inline struct ALeffect *LookupEffect(ALCdevice *device, ALuint id)
-{ return (struct ALeffect*)LookupUIntMapKey(&device->EffectMap, id); }
+{ return (struct ALeffect*)LookupUIntMapKeyNoLock(&device->EffectMap, id); }
inline struct ALeffect *RemoveEffect(ALCdevice *device, ALuint id)
-{ return (struct ALeffect*)RemoveUIntMapKey(&device->EffectMap, id); }
+{ return (struct ALeffect*)RemoveUIntMapKeyNoLock(&device->EffectMap, id); }
inline ALboolean IsReverbEffect(ALenum type)
{ return type == AL_EFFECT_REVERB || type == AL_EFFECT_EAXREVERB; }
diff --git a/OpenAL32/Include/alFilter.h b/OpenAL32/Include/alFilter.h
index 6f44e3b7..855bb534 100644
--- a/OpenAL32/Include/alFilter.h
+++ b/OpenAL32/Include/alFilter.h
@@ -151,10 +151,19 @@ typedef struct ALfilter {
#define ALfilter_GetParamf(x, c, p, v) ((x)->GetParamf((x),(c),(p),(v)))
#define ALfilter_GetParamfv(x, c, p, v) ((x)->GetParamfv((x),(c),(p),(v)))
+inline void LockFiltersRead(ALCdevice *device)
+{ LockUIntMapRead(&device->FilterMap); }
+inline void UnlockFiltersRead(ALCdevice *device)
+{ UnlockUIntMapRead(&device->FilterMap); }
+inline void LockFiltersWrite(ALCdevice *device)
+{ LockUIntMapWrite(&device->FilterMap); }
+inline void UnlockFiltersWrite(ALCdevice *device)
+{ UnlockUIntMapWrite(&device->FilterMap); }
+
inline struct ALfilter *LookupFilter(ALCdevice *device, ALuint id)
-{ return (struct ALfilter*)LookupUIntMapKey(&device->FilterMap, id); }
+{ return (struct ALfilter*)LookupUIntMapKeyNoLock(&device->FilterMap, id); }
inline struct ALfilter *RemoveFilter(ALCdevice *device, ALuint id)
-{ return (struct ALfilter*)RemoveUIntMapKey(&device->FilterMap, id); }
+{ return (struct ALfilter*)RemoveUIntMapKeyNoLock(&device->FilterMap, id); }
ALvoid ReleaseALFilters(ALCdevice *device);