Mercurial > audio-send
diff 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 |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/OpenAL32/Include/alAuxEffectSlot.h Tue Oct 25 13:02:31 2011 -0700 1.3 @@ -0,0 +1,66 @@ 1.4 +#ifndef _AL_AUXEFFECTSLOT_H_ 1.5 +#define _AL_AUXEFFECTSLOT_H_ 1.6 + 1.7 +#include "AL/al.h" 1.8 +#include "alEffect.h" 1.9 +#include "alFilter.h" 1.10 + 1.11 +#ifdef __cplusplus 1.12 +extern "C" { 1.13 +#endif 1.14 + 1.15 +typedef struct ALeffectState ALeffectState; 1.16 + 1.17 +typedef struct ALeffectslot 1.18 +{ 1.19 + ALeffect effect; 1.20 + 1.21 + ALfloat Gain; 1.22 + ALboolean AuxSendAuto; 1.23 + 1.24 + ALboolean NeedsUpdate; 1.25 + ALeffectState *EffectState; 1.26 + 1.27 + ALfloat WetBuffer[BUFFERSIZE]; 1.28 + 1.29 + ALfloat ClickRemoval[1]; 1.30 + ALfloat PendingClicks[1]; 1.31 + 1.32 + ALuint refcount; 1.33 + 1.34 + // Index to itself 1.35 + ALuint effectslot; 1.36 + 1.37 + struct ALeffectslot *next; 1.38 +} ALeffectslot; 1.39 + 1.40 + 1.41 +ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context); 1.42 + 1.43 + 1.44 +struct ALeffectState { 1.45 + ALvoid (*Destroy)(ALeffectState *State); 1.46 + ALboolean (*DeviceUpdate)(ALeffectState *State, ALCdevice *Device); 1.47 + ALvoid (*Update)(ALeffectState *State, ALCcontext *Context, const ALeffectslot *Slot); 1.48 + ALvoid (*Process)(ALeffectState *State, const ALeffectslot *Slot, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[MAXCHANNELS]); 1.49 +}; 1.50 + 1.51 +ALeffectState *NoneCreate(void); 1.52 +ALeffectState *EAXVerbCreate(void); 1.53 +ALeffectState *VerbCreate(void); 1.54 +ALeffectState *EchoCreate(void); 1.55 +ALeffectState *ModulatorCreate(void); 1.56 +ALeffectState *DedicatedDLGCreate(void); 1.57 +ALeffectState *DedicatedLFECreate(void); 1.58 + 1.59 +#define ALEffect_Destroy(a) ((a)->Destroy((a))) 1.60 +#define ALEffect_DeviceUpdate(a,b) ((a)->DeviceUpdate((a),(b))) 1.61 +#define ALEffect_Update(a,b,c) ((a)->Update((a),(b),(c))) 1.62 +#define ALEffect_Process(a,b,c,d,e) ((a)->Process((a),(b),(c),(d),(e))) 1.63 + 1.64 + 1.65 +#ifdef __cplusplus 1.66 +} 1.67 +#endif 1.68 + 1.69 +#endif