Constify some variables
[openal-soft.git] / OpenAL32 / Include / alAuxEffectSlot.h
blob43d2f71983221ac1928cbafe1a0a321ef423f25e
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 typedef struct ALeffectState ALeffectState;
14 typedef struct ALeffectslot
16 ALeffect effect;
18 ALfloat Gain;
19 ALboolean AuxSendAuto;
21 ALeffectState *EffectState;
23 ALfloat WetBuffer[BUFFERSIZE];
25 ALfloat ClickRemoval[1];
26 ALfloat PendingClicks[1];
28 ALuint refcount;
30 // Index to itself
31 ALuint effectslot;
33 struct ALeffectslot *next;
34 } ALeffectslot;
37 ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context);
40 struct ALeffectState {
41 ALvoid (*Destroy)(ALeffectState *State);
42 ALboolean (*DeviceUpdate)(ALeffectState *State, ALCdevice *Device);
43 ALvoid (*Update)(ALeffectState *State, ALCcontext *Context, const ALeffect *Effect);
44 ALvoid (*Process)(ALeffectState *State, const ALeffectslot *Slot, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[MAXCHANNELS]);
47 ALeffectState *NoneCreate(void);
48 ALeffectState *EAXVerbCreate(void);
49 ALeffectState *VerbCreate(void);
50 ALeffectState *EchoCreate(void);
51 ALeffectState *ModulatorCreate(void);
53 #define ALEffect_Destroy(a) ((a)->Destroy((a)))
54 #define ALEffect_DeviceUpdate(a,b) ((a)->DeviceUpdate((a),(b)))
55 #define ALEffect_Update(a,b,c) ((a)->Update((a),(b),(c)))
56 #define ALEffect_Process(a,b,c,d,e) ((a)->Process((a),(b),(c),(d),(e)))
59 #ifdef __cplusplus
61 #endif
63 #endif