Implement a new reverb effect
[openal-soft.git] / OpenAL32 / Include / alAuxEffectSlot.h
blobcc5b9d349a6601f748b12d0b4031752451eaf403
1 #ifndef _AL_AUXEFFECTSLOT_H_
2 #define _AL_AUXEFFECTSLOT_H_
4 #include "AL/al.h"
5 #include "alEffect.h"
6 #include "alFilter.h"
7 #include "alReverb.h"
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
13 #define AL_EFFECTSLOT_EFFECT 0x0001
14 #define AL_EFFECTSLOT_GAIN 0x0002
15 #define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
17 #define AL_EFFECTSLOT_NULL 0x0000
19 typedef struct ALeffectslot
21 ALeffect effect;
23 ALfloat Gain;
24 ALboolean AuxSendAuto;
26 ALverbState *ReverbState;
28 ALuint refcount;
30 // Index to itself
31 ALuint effectslot;
33 struct ALeffectslot *next;
34 } ALeffectslot;
36 ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots);
37 ALvoid AL_APIENTRY alDeleteAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots);
38 ALboolean AL_APIENTRY alIsAuxiliaryEffectSlot(ALuint effectslot);
40 ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint iValue);
41 ALvoid AL_APIENTRY alAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues);
42 ALvoid AL_APIENTRY alAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat flValue);
43 ALvoid AL_APIENTRY alAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues);
45 ALvoid AL_APIENTRY alGetAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint *piValue);
46 ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues);
47 ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat *pflValue);
48 ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues);
50 ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context);
52 #ifdef __cplusplus
54 #endif
56 #endif