Implement yet another low-pass filter
[openal-soft.git] / OpenAL32 / Include / alAuxEffectSlot.h
blob9bae788dbfc81aeb2640211689d36d371fbe4c09
1 #ifndef _AL_AUXEFFECTSLOT_H_
2 #define _AL_AUXEFFECTSLOT_H_
4 #include "AL/al.h"
5 #include "alEffect.h"
6 #include "alFilter.h"
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
12 #define AL_EFFECTSLOT_EFFECT 0x0001
13 #define AL_EFFECTSLOT_GAIN 0x0002
14 #define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
16 #define AL_EFFECTSLOT_NULL 0x0000
18 typedef struct ALeffectslot
20 ALeffect effect;
22 ALfloat Gain;
23 ALboolean AuxSendAuto;
25 ALfloat *ReverbBuffer;
26 // in frames!
27 ALuint ReverbLength;
28 ALuint ReverbPos;
29 ALuint ReverbReflectPos;
30 ALuint ReverbLatePos;
31 ALfloat ReverbDecayGain;
33 FILTER iirFilter;
35 ALuint refcount;
37 // Index to itself
38 ALuint effectslot;
40 struct ALeffectslot *next;
41 } ALeffectslot;
43 AL_API ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots);
44 AL_API ALvoid AL_APIENTRY alDeleteAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots);
45 AL_API ALboolean AL_APIENTRY alIsAuxiliaryEffectSlot(ALuint effectslot);
47 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint iValue);
48 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues);
49 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat flValue);
50 AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues);
52 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint *piValue);
53 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues);
54 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat *pflValue);
55 AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues);
57 ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context);
59 #ifdef __cplusplus
61 #endif
63 #endif