Keep track of references to effect slots, so they aren't deleted while in use
[openal-soft.git] / OpenAL32 / Include / alAuxEffectSlot.h
blob66b3ba20a5be4fa7a8bef322239d1c58fe453bd7
1 #ifndef _AL_AUXEFFECTSLOT_H_
2 #define _AL_AUXEFFECTSLOT_H_
4 #include "alEffect.h"
5 #include "AL/al.h"
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
11 #define AL_EFFECTSLOT_EFFECT 0x0001
12 #define AL_EFFECTSLOT_GAIN 0x0002
13 #define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
15 #define AL_EFFECTSLOT_NULL 0x0000
17 typedef struct ALeffectslot
19 ALeffect effect;
21 ALfloat Gain;
22 ALboolean AuxSendAuto;
24 ALuint refcount;
26 // Index to itself
27 ALuint effectslot;
29 struct ALeffectslot *next;
30 } ALeffectslot;
32 AL_API ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots);
33 AL_API ALvoid AL_APIENTRY alDeleteAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots);
34 AL_API ALboolean AL_APIENTRY alIsAuxiliaryEffectSlot(ALuint effectslot);
36 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint iValue);
37 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues);
38 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat flValue);
39 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues);
41 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint *piValue);
42 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues);
43 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat *pflValue);
44 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues);
46 ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context);
48 #ifdef __cplusplus
50 #endif
52 #endif