diff options
author | Chris Robinson <[email protected]> | 2013-05-18 01:33:01 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2013-05-18 01:33:01 -0700 |
commit | 78e7c1c27bb0dcc05fc961e53060be17e3df3e02 (patch) | |
tree | d4a1368d6a4039bf11b1a5ae9995089ee705cc71 /OpenAL32/Include | |
parent | a7ad6080f0d3fc783fd5e1811b961ab9efe79cde (diff) |
Implement distortion and equalizer effects
Code provided by Mike Gorchak
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r-- | OpenAL32/Include/alAuxEffectSlot.h | 2 | ||||
-rw-r--r-- | OpenAL32/Include/alEffect.h | 42 |
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); |