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