Mercurial > audio-send
comparison OpenAL32/Include/alAuxEffectSlot.h @ 0:f9476ff7637e
initial forking of open-al to create multiple listeners
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Tue, 25 Oct 2011 13:02:31 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f9476ff7637e |
---|---|
1 #ifndef _AL_AUXEFFECTSLOT_H_ | |
2 #define _AL_AUXEFFECTSLOT_H_ | |
3 | |
4 #include "AL/al.h" | |
5 #include "alEffect.h" | |
6 #include "alFilter.h" | |
7 | |
8 #ifdef __cplusplus | |
9 extern "C" { | |
10 #endif | |
11 | |
12 typedef struct ALeffectState ALeffectState; | |
13 | |
14 typedef struct ALeffectslot | |
15 { | |
16 ALeffect effect; | |
17 | |
18 ALfloat Gain; | |
19 ALboolean AuxSendAuto; | |
20 | |
21 ALboolean NeedsUpdate; | |
22 ALeffectState *EffectState; | |
23 | |
24 ALfloat WetBuffer[BUFFERSIZE]; | |
25 | |
26 ALfloat ClickRemoval[1]; | |
27 ALfloat PendingClicks[1]; | |
28 | |
29 ALuint refcount; | |
30 | |
31 // Index to itself | |
32 ALuint effectslot; | |
33 | |
34 struct ALeffectslot *next; | |
35 } ALeffectslot; | |
36 | |
37 | |
38 ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context); | |
39 | |
40 | |
41 struct ALeffectState { | |
42 ALvoid (*Destroy)(ALeffectState *State); | |
43 ALboolean (*DeviceUpdate)(ALeffectState *State, ALCdevice *Device); | |
44 ALvoid (*Update)(ALeffectState *State, ALCcontext *Context, const ALeffectslot *Slot); | |
45 ALvoid (*Process)(ALeffectState *State, const ALeffectslot *Slot, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[MAXCHANNELS]); | |
46 }; | |
47 | |
48 ALeffectState *NoneCreate(void); | |
49 ALeffectState *EAXVerbCreate(void); | |
50 ALeffectState *VerbCreate(void); | |
51 ALeffectState *EchoCreate(void); | |
52 ALeffectState *ModulatorCreate(void); | |
53 ALeffectState *DedicatedDLGCreate(void); | |
54 ALeffectState *DedicatedLFECreate(void); | |
55 | |
56 #define ALEffect_Destroy(a) ((a)->Destroy((a))) | |
57 #define ALEffect_DeviceUpdate(a,b) ((a)->DeviceUpdate((a),(b))) | |
58 #define ALEffect_Update(a,b,c) ((a)->Update((a),(b),(c))) | |
59 #define ALEffect_Process(a,b,c,d,e) ((a)->Process((a),(b),(c),(d),(e))) | |
60 | |
61 | |
62 #ifdef __cplusplus | |
63 } | |
64 #endif | |
65 | |
66 #endif |