aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include/alAuxEffectSlot.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-05-29 13:30:50 -0700
committerChris Robinson <[email protected]>2009-05-29 13:30:50 -0700
commit74dc7090fdf4084fae1824986e382fde4535ae7c (patch)
tree7aa7485bba3a17a9449c65432af7a360cb879d8d /OpenAL32/Include/alAuxEffectSlot.h
parente12ac95d6926c0b576775d2817f2e829c153947b (diff)
Don't expose effect-specific structures
Diffstat (limited to 'OpenAL32/Include/alAuxEffectSlot.h')
-rw-r--r--OpenAL32/Include/alAuxEffectSlot.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h
index 8dfa9418..e4c46d70 100644
--- a/OpenAL32/Include/alAuxEffectSlot.h
+++ b/OpenAL32/Include/alAuxEffectSlot.h
@@ -4,8 +4,6 @@
#include "AL/al.h"
#include "alEffect.h"
#include "alFilter.h"
-#include "alReverb.h"
-#include "alEcho.h"
#ifdef __cplusplus
extern "C" {
@@ -17,6 +15,8 @@ extern "C" {
#define AL_EFFECTSLOT_NULL 0x0000
+typedef struct ALeffectState ALeffectState;
+
typedef struct ALeffectslot
{
ALeffect effect;
@@ -24,8 +24,7 @@ typedef struct ALeffectslot
ALfloat Gain;
ALboolean AuxSendAuto;
- ALverbState *ReverbState;
- ALechoState *EchoState;
+ ALeffectState *EffectState;
ALfloat WetBuffer[BUFFERSIZE];
@@ -53,6 +52,22 @@ ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, A
ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context);
+
+struct ALeffectState {
+ ALvoid (*Destroy)(ALeffectState *State);
+ ALvoid (*Update)(ALeffectState *State, ALCcontext *Context, ALeffectslot *Slot, ALeffect *Effect);
+ ALvoid (*Process)(ALeffectState *State, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[OUTPUTCHANNELS]);
+};
+
+ALeffectState *EAXVerbCreate(ALCcontext *Context);
+ALeffectState *VerbCreate(ALCcontext *Context);
+ALeffectState *EchoCreate(ALCcontext *Context);
+
+#define ALEffect_Destroy(a) ((a)->Destroy((a)))
+#define ALEffect_Update(a,b,c,d) ((a)->Update((a),(b),(c),(d)))
+#define ALEffect_Process(a,b,c,d) ((a)->Process((a),(b),(c),(d)))
+
+
#ifdef __cplusplus
}
#endif