Add a few more EFX
This commit is contained in:
parent
2c53e42b8a
commit
43ece4d257
2 changed files with 101 additions and 0 deletions
|
|
@ -49,9 +49,30 @@ typedef enum
|
|||
{
|
||||
EFFECT_NONE = 0,
|
||||
EFFECT_REVERB,
|
||||
EFFECT_CHORUS,
|
||||
EFFECT_DISTORTION,
|
||||
EFFECT_ECHO,
|
||||
EFFECT_PITCHSHIFT,
|
||||
EFFECT_RINGMOD,
|
||||
EFFECT_COMPRESSOR,
|
||||
EFFECT_EQ,
|
||||
} effecttypes_t;
|
||||
|
||||
#ifdef HAVE_OPENAL
|
||||
typedef enum
|
||||
{
|
||||
CHORUSWAVE_SINUSOID = AL_CHORUS_WAVEFORM_SINUSOID,
|
||||
CHORUSWAVE_TRIANGLE = AL_CHORUS_WAVEFORM_TRIANGLE,
|
||||
} choruswaves_t;
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
{
|
||||
RINGMOD_SIN = 0,
|
||||
RINGMOD_SAW,
|
||||
RINGMOD_SQUARE,
|
||||
} ringmodwaves_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
// flags for effects
|
||||
|
|
|
|||
|
|
@ -1946,6 +1946,22 @@ efx_t *I_CreateEFX(efx_t *efx)
|
|||
TRY(alEffectf, efxc->effect, AL_REVERB_ROOM_ROLLOFF_FACTOR, efxc->var13);
|
||||
|
||||
break;
|
||||
case EFFECT_CHORUS:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_CHORUS);
|
||||
|
||||
if (efxc->var1 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_CHORUS_WAVEFORM, efxc->var1);
|
||||
if (efxc->var2 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_CHORUS_PHASE, efxc->var2);
|
||||
if (efxc->var3 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_CHORUS_RATE, efxc->var3);
|
||||
if (efxc->var4 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_CHORUS_DEPTH, efxc->var4);
|
||||
if (efxc->var5 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_CHORUS_FEEDBACK, efxc->var5);
|
||||
if (efxc->var6 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_CHORUS_DELAY, efxc->var6);
|
||||
break;
|
||||
case EFFECT_DISTORTION:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_DISTORTION);
|
||||
|
||||
|
|
@ -1960,6 +1976,70 @@ efx_t *I_CreateEFX(efx_t *efx)
|
|||
if (efxc->var5 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_DISTORTION_EQBANDWIDTH, efxc->var5);
|
||||
break;
|
||||
case EFFECT_ECHO:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_ECHO);
|
||||
|
||||
if (efxc->var1 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_ECHO_DELAY, efxc->var1);
|
||||
if (efxc->var2 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_ECHO_LRDELAY, efxc->var2);
|
||||
if (efxc->var3 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_ECHO_DAMPING, efxc->var3);
|
||||
if (efxc->var4 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_ECHO_FEEDBACK, efxc->var4);
|
||||
if (efxc->var5 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_ECHO_SPREAD, efxc->var5);
|
||||
|
||||
break;
|
||||
case EFFECT_PITCHSHIFT:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_PITCH_SHIFTER);
|
||||
|
||||
if (efxc->var1 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_PITCH_SHIFTER_COARSE_TUNE, efxc->var1);
|
||||
if (efxc->var2 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_PITCH_SHIFTER_FINE_TUNE , efxc->var2);
|
||||
break;
|
||||
case EFFECT_RINGMOD:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_RING_MODULATOR);
|
||||
|
||||
if (efxc->var1 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_RING_MODULATOR_FREQUENCY, efxc->var1);
|
||||
if (efxc->var2 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_RING_MODULATOR_HIGHPASS_CUTOFF, efxc->var2);
|
||||
if (efxc->var3 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_RING_MODULATOR_WAVEFORM, efxc->var3);
|
||||
|
||||
break;
|
||||
case EFFECT_COMPRESSOR:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_COMPRESSOR);
|
||||
|
||||
if (efxc->var1 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_COMPRESSOR_ONOFF, efxc->var1);
|
||||
break;
|
||||
case EFFECT_EQ:
|
||||
TRY(alEffecti, efxc->effect, AL_EFFECT_TYPE, AL_EFFECT_EQUALIZER);
|
||||
|
||||
if (efxc->var1 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_LOW_GAIN, efxc->var1);
|
||||
if (efxc->var2 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_LOW_CUTOFF, efxc->var2);
|
||||
if (efxc->var3 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_MID1_GAIN, efxc->var3);
|
||||
if (efxc->var4 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_MID1_CENTER, efxc->var4);
|
||||
if (efxc->var5 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_MID1_WIDTH, efxc->var5);
|
||||
if (efxc->var6 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_MID2_GAIN, efxc->var6);
|
||||
if (efxc->var7 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_MID2_CENTER, efxc->var7);
|
||||
if (efxc->var8 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_MID2_WIDTH, efxc->var8);
|
||||
if (efxc->var9 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_HIGH_GAIN, efxc->var9);
|
||||
if (efxc->var10 != -255)
|
||||
TRY(alEffectf, efxc->effect, AL_EQUALIZER_HIGH_CUTOFF, efxc->var10);
|
||||
break;
|
||||
}
|
||||
|
||||
TRY(alAuxiliaryEffectSloti, efxc->slot, AL_EFFECTSLOT_EFFECT, efxc->effect);
|
||||
|
|
|
|||
Loading…
Reference in a new issue