aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2013-05-18 01:33:01 -0700
committerChris Robinson <[email protected]>2013-05-18 01:33:01 -0700
commit78e7c1c27bb0dcc05fc961e53060be17e3df3e02 (patch)
treed4a1368d6a4039bf11b1a5ae9995089ee705cc71 /OpenAL32/Include
parenta7ad6080f0d3fc783fd5e1811b961ab9efe79cde (diff)
Implement distortion and equalizer effects
Code provided by Mike Gorchak
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alAuxEffectSlot.h2
-rw-r--r--OpenAL32/Include/alEffect.h42
2 files changed, 44 insertions, 0 deletions
diff --git a/OpenAL32/Include/alAuxEffectSlot.h b/OpenAL32/Include/alAuxEffectSlot.h
index e39a3d91..c19eb7b3 100644
--- a/OpenAL32/Include/alAuxEffectSlot.h
+++ b/OpenAL32/Include/alAuxEffectSlot.h
@@ -48,6 +48,8 @@ ALeffectState *ModulatorCreate(void);
ALeffectState *DedicatedCreate(void);
ALeffectState *ChorusCreate(void);
ALeffectState *FlangerCreate(void);
+ALeffectState *EqualizerCreate(void);
+ALeffectState *DistortionCreate(void);
#define ALeffectState_Destroy(a) ((a)->Destroy((a)))
#define ALeffectState_DeviceUpdate(a,b) ((a)->DeviceUpdate((a),(b)))
diff --git a/OpenAL32/Include/alEffect.h b/OpenAL32/Include/alEffect.h
index 87dc717d..a3d40b82 100644
--- a/OpenAL32/Include/alEffect.h
+++ b/OpenAL32/Include/alEffect.h
@@ -15,6 +15,8 @@ enum {
DEDICATED,
CHORUS,
FLANGER,
+ EQUALIZER,
+ DISTORTION,
MAX_EFFECTS
};
@@ -95,6 +97,28 @@ typedef struct ALeffect
ALfloat Delay;
} Flanger;
+ struct {
+ ALfloat Delay;
+ ALfloat LowCutoff;
+ ALfloat LowGain;
+ ALfloat Mid1Center;
+ ALfloat Mid1Gain;
+ ALfloat Mid1Width;
+ ALfloat Mid2Center;
+ ALfloat Mid2Gain;
+ ALfloat Mid2Width;
+ ALfloat HighCutoff;
+ ALfloat HighGain;
+ } Equalizer;
+
+ struct {
+ ALfloat Edge;
+ ALfloat Gain;
+ ALfloat LowpassCutoff;
+ ALfloat EQCenter;
+ ALfloat EQBandwidth;
+ } Distortion;
+
void (*SetParami)(struct ALeffect *effect, ALCcontext *context, ALenum param, ALint val);
void (*SetParamiv)(struct ALeffect *effect, ALCcontext *context, ALenum param, const ALint *vals);
void (*SetParamf)(struct ALeffect *effect, ALCcontext *context, ALenum param, ALfloat val);
@@ -149,6 +173,15 @@ void chorus_GetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, ALin
void chorus_GetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *val);
void chorus_GetParamfv(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *vals);
+void distortion_SetParami(ALeffect *effect, ALCcontext *context, ALenum param, ALint val);
+void distortion_SetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, const ALint *vals);
+void distortion_SetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat val);
+void distortion_SetParamfv(ALeffect *effect, ALCcontext *context, ALenum param, const ALfloat *vals);
+void distortion_GetParami(ALeffect *effect, ALCcontext *context, ALenum param, ALint *val);
+void distortion_GetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, ALint *vals);
+void distortion_GetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *val);
+void distortion_GetParamfv(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *vals);
+
void echo_SetParami(ALeffect *effect, ALCcontext *context, ALenum param, ALint val);
void echo_SetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, const ALint *vals);
void echo_SetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat val);
@@ -158,6 +191,15 @@ void echo_GetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, ALint
void echo_GetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *val);
void echo_GetParamfv(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *vals);
+void equalizer_SetParami(ALeffect *effect, ALCcontext *context, ALenum param, ALint val);
+void equalizer_SetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, const ALint *vals);
+void equalizer_SetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat val);
+void equalizer_SetParamfv(ALeffect *effect, ALCcontext *context, ALenum param, const ALfloat *vals);
+void equalizer_GetParami(ALeffect *effect, ALCcontext *context, ALenum param, ALint *val);
+void equalizer_GetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, ALint *vals);
+void equalizer_GetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *val);
+void equalizer_GetParamfv(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat *vals);
+
void flanger_SetParami(ALeffect *effect, ALCcontext *context, ALenum param, ALint val);
void flanger_SetParamiv(ALeffect *effect, ALCcontext *context, ALenum param, const ALint *vals);
void flanger_SetParamf(ALeffect *effect, ALCcontext *context, ALenum param, ALfloat val);