Mercurial > audio-send
view OpenAL32/Include/alAuxEffectSlot.h @ 32:b8bc24918d63
moved ear.org into cortex
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 04 Feb 2012 01:43:33 -0700 |
parents | f9476ff7637e |
children |
line wrap: on
line source
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 __cplusplus9 extern "C" {10 #endif12 typedef struct ALeffectState ALeffectState;14 typedef struct ALeffectslot15 {16 ALeffect effect;18 ALfloat Gain;19 ALboolean AuxSendAuto;21 ALboolean NeedsUpdate;22 ALeffectState *EffectState;24 ALfloat WetBuffer[BUFFERSIZE];26 ALfloat ClickRemoval[1];27 ALfloat PendingClicks[1];29 ALuint refcount;31 // Index to itself32 ALuint effectslot;34 struct ALeffectslot *next;35 } ALeffectslot;38 ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context);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 };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);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)))62 #ifdef __cplusplus63 }64 #endif66 #endif