Store the separate effect parameters in a union

This commit is contained in:
Chris Robinson
2011-05-20 09:36:36 -07:00
parent 1b5caa4112
commit 35a0430c81
7 changed files with 235 additions and 232 deletions
+3 -3
View File
@@ -423,7 +423,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
if(ALSource->Send[i].Slot &&
(ALSource->Send[i].Slot->effect.type == AL_EFFECT_REVERB ||
ALSource->Send[i].Slot->effect.type == AL_EFFECT_EAXREVERB))
RoomRolloff[i] += ALSource->Send[i].Slot->effect.Reverb.RoomRolloffFactor;
RoomRolloff[i] += ALSource->Send[i].Slot->effect.Params.Reverb.RoomRolloffFactor;
}
switch(ALContext->SourceDistanceModel ? ALSource->DistanceModel :
@@ -570,10 +570,10 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
*/
WetGain[i] *= aluPow(10.0f, EffectiveDist /
(SPEEDOFSOUNDMETRESPERSEC *
Slot->effect.Reverb.DecayTime) *
Slot->effect.Params.Reverb.DecayTime) *
(-60.0/20.0));
WetGainHF[i] *= aluPow(Slot->effect.Reverb.AirAbsorptionGainHF,
WetGainHF[i] *= aluPow(Slot->effect.Params.Reverb.AirAbsorptionGainHF,
AirAbsorptionFactor * EffectiveDist);
}
}
+2 -2
View File
@@ -62,7 +62,7 @@ static ALvoid DedicatedDLGUpdate(ALeffectState *effect, ALCcontext *Context, con
SpeakerGain = &device->PanningLUT[MAXCHANNELS * pos];
for(s = 0;s < MAXCHANNELS;s++)
state->gains[s] = SpeakerGain[s] * Effect->Dedicated.Gain;
state->gains[s] = SpeakerGain[s] * Effect->Params.Dedicated.Gain;
}
static ALvoid DedicatedLFEUpdate(ALeffectState *effect, ALCcontext *Context, const ALeffect *Effect)
@@ -73,7 +73,7 @@ static ALvoid DedicatedLFEUpdate(ALeffectState *effect, ALCcontext *Context, con
for(s = 0;s < MAXCHANNELS;s++)
state->gains[s] = 0.0f;
state->gains[LFE] = Effect->Dedicated.Gain;
state->gains[LFE] = Effect->Params.Dedicated.Gain;
}
static ALvoid DedicatedProcess(ALeffectState *effect, const ALeffectslot *Slot, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[MAXCHANNELS])
+5 -5
View File
@@ -107,18 +107,18 @@ static ALvoid EchoUpdate(ALeffectState *effect, ALCcontext *Context, const ALeff
ALuint frequency = Context->Device->Frequency;
ALfloat lrpan, cw, g;
state->Tap[0].delay = (ALuint)(Effect->Echo.Delay * frequency) + 1;
state->Tap[1].delay = (ALuint)(Effect->Echo.LRDelay * frequency);
state->Tap[0].delay = (ALuint)(Effect->Params.Echo.Delay * frequency) + 1;
state->Tap[1].delay = (ALuint)(Effect->Params.Echo.LRDelay * frequency);
state->Tap[1].delay += state->Tap[0].delay;
lrpan = Effect->Echo.Spread*0.5f + 0.5f;
lrpan = Effect->Params.Echo.Spread*0.5f + 0.5f;
state->GainL = aluSqrt( lrpan);
state->GainR = aluSqrt(1.0f-lrpan);
state->FeedGain = Effect->Echo.Feedback;
state->FeedGain = Effect->Params.Echo.Feedback;
cw = cos(2.0*M_PI * LOWPASSFREQCUTOFF / frequency);
g = 1.0f - Effect->Echo.Damping;
g = 1.0f - Effect->Params.Echo.Damping;
state->iirFilter.coeff = lpCoeffCalc(g, cw);
}
+6 -5
View File
@@ -108,19 +108,20 @@ static ALvoid ModulatorUpdate(ALeffectState *effect, ALCcontext *Context, const
ALmodulatorState *state = (ALmodulatorState*)effect;
ALfloat cw, a = 0.0f;
if(Effect->Modulator.Waveform == AL_RING_MODULATOR_SINUSOID)
if(Effect->Params.Modulator.Waveform == AL_RING_MODULATOR_SINUSOID)
state->Waveform = SINUSOID;
else if(Effect->Modulator.Waveform == AL_RING_MODULATOR_SAWTOOTH)
else if(Effect->Params.Modulator.Waveform == AL_RING_MODULATOR_SAWTOOTH)
state->Waveform = SAWTOOTH;
else if(Effect->Modulator.Waveform == AL_RING_MODULATOR_SQUARE)
else if(Effect->Params.Modulator.Waveform == AL_RING_MODULATOR_SQUARE)
state->Waveform = SQUARE;
state->step = Effect->Modulator.Frequency*(1<<WAVEFORM_FRACBITS) /
state->step = Effect->Params.Modulator.Frequency*(1<<WAVEFORM_FRACBITS) /
Context->Device->Frequency;
if(!state->step)
state->step = 1;
cw = cos(2.0*M_PI * Effect->Modulator.HighPassCutoff / Context->Device->Frequency);
cw = cos(2.0*M_PI * Effect->Params.Modulator.HighPassCutoff /
Context->Device->Frequency);
a = (2.0f-cw) - aluSqrt(aluPow(2.0f-cw, 2.0f) - 1.0f);
state->iirFilter.coeff = a;
}
+39 -37
View File
@@ -1070,37 +1070,38 @@ static ALvoid VerbUpdate(ALeffectState *effect, ALCcontext *Context, const ALeff
ALfloat cw, x, y, hfRatio;
// Calculate the master low-pass filter (from the master effect HF gain).
cw = CalcI3DL2HFreq(Effect->Reverb.HFReference, frequency);
cw = CalcI3DL2HFreq(Effect->Params.Reverb.HFReference, frequency);
// This is done with 2 chained 1-pole filters, so no need to square g.
State->LpFilter.coeff = lpCoeffCalc(Effect->Reverb.GainHF, cw);
State->LpFilter.coeff = lpCoeffCalc(Effect->Params.Reverb.GainHF, cw);
// Update the initial effect delay.
UpdateDelayLine(Effect->Reverb.ReflectionsDelay,
Effect->Reverb.LateReverbDelay, frequency, State);
UpdateDelayLine(Effect->Params.Reverb.ReflectionsDelay,
Effect->Params.Reverb.LateReverbDelay, frequency, State);
// Update the early lines.
UpdateEarlyLines(Effect->Reverb.Gain, Effect->Reverb.ReflectionsGain,
Effect->Reverb.LateReverbDelay, State);
UpdateEarlyLines(Effect->Params.Reverb.Gain, Effect->Params.Reverb.ReflectionsGain,
Effect->Params.Reverb.LateReverbDelay, State);
// Update the decorrelator.
UpdateDecorrelator(Effect->Reverb.Density, frequency, State);
UpdateDecorrelator(Effect->Params.Reverb.Density, frequency, State);
// Get the mixing matrix coefficients (x and y).
CalcMatrixCoeffs(Effect->Reverb.Diffusion, &x, &y);
CalcMatrixCoeffs(Effect->Params.Reverb.Diffusion, &x, &y);
// Then divide x into y to simplify the matrix calculation.
State->Late.MixCoeff = y / x;
// If the HF limit parameter is flagged, calculate an appropriate limit
// based on the air absorption parameter.
hfRatio = Effect->Reverb.DecayHFRatio;
if(Effect->Reverb.DecayHFLimit && Effect->Reverb.AirAbsorptionGainHF < 1.0f)
hfRatio = CalcLimitedHfRatio(hfRatio, Effect->Reverb.AirAbsorptionGainHF,
Effect->Reverb.DecayTime);
hfRatio = Effect->Params.Reverb.DecayHFRatio;
if(Effect->Params.Reverb.DecayHFLimit &&
Effect->Params.Reverb.AirAbsorptionGainHF < 1.0f)
hfRatio = CalcLimitedHfRatio(hfRatio, Effect->Params.Reverb.AirAbsorptionGainHF,
Effect->Params.Reverb.DecayTime);
// Update the late lines.
UpdateLateLines(Effect->Reverb.Gain, Effect->Reverb.LateReverbGain,
x, Effect->Reverb.Density, Effect->Reverb.DecayTime,
Effect->Reverb.Diffusion, hfRatio, cw, frequency, State);
UpdateLateLines(Effect->Params.Reverb.Gain, Effect->Params.Reverb.LateReverbGain,
x, Effect->Params.Reverb.Density, Effect->Params.Reverb.DecayTime,
Effect->Params.Reverb.Diffusion, hfRatio, cw, frequency, State);
}
// This updates the EAX reverb state. This is called any time the EAX reverb
@@ -1112,51 +1113,52 @@ static ALvoid EAXVerbUpdate(ALeffectState *effect, ALCcontext *Context, const AL
ALfloat cw, x, y, hfRatio;
// Calculate the master low-pass filter (from the master effect HF gain).
cw = CalcI3DL2HFreq(Effect->Reverb.HFReference, frequency);
cw = CalcI3DL2HFreq(Effect->Params.Reverb.HFReference, frequency);
// This is done with 2 chained 1-pole filters, so no need to square g.
State->LpFilter.coeff = lpCoeffCalc(Effect->Reverb.GainHF, cw);
State->LpFilter.coeff = lpCoeffCalc(Effect->Params.Reverb.GainHF, cw);
// Update the modulator line.
UpdateModulator(Effect->Reverb.ModulationTime,
Effect->Reverb.ModulationDepth, frequency, State);
UpdateModulator(Effect->Params.Reverb.ModulationTime,
Effect->Params.Reverb.ModulationDepth, frequency, State);
// Update the initial effect delay.
UpdateDelayLine(Effect->Reverb.ReflectionsDelay,
Effect->Reverb.LateReverbDelay, frequency, State);
UpdateDelayLine(Effect->Params.Reverb.ReflectionsDelay,
Effect->Params.Reverb.LateReverbDelay, frequency, State);
// Update the early lines.
UpdateEarlyLines(Effect->Reverb.Gain, Effect->Reverb.ReflectionsGain,
Effect->Reverb.LateReverbDelay, State);
UpdateEarlyLines(Effect->Params.Reverb.Gain, Effect->Params.Reverb.ReflectionsGain,
Effect->Params.Reverb.LateReverbDelay, State);
// Update the decorrelator.
UpdateDecorrelator(Effect->Reverb.Density, frequency, State);
UpdateDecorrelator(Effect->Params.Reverb.Density, frequency, State);
// Get the mixing matrix coefficients (x and y).
CalcMatrixCoeffs(Effect->Reverb.Diffusion, &x, &y);
CalcMatrixCoeffs(Effect->Params.Reverb.Diffusion, &x, &y);
// Then divide x into y to simplify the matrix calculation.
State->Late.MixCoeff = y / x;
// If the HF limit parameter is flagged, calculate an appropriate limit
// based on the air absorption parameter.
hfRatio = Effect->Reverb.DecayHFRatio;
if(Effect->Reverb.DecayHFLimit && Effect->Reverb.AirAbsorptionGainHF < 1.0f)
hfRatio = CalcLimitedHfRatio(hfRatio, Effect->Reverb.AirAbsorptionGainHF,
Effect->Reverb.DecayTime);
hfRatio = Effect->Params.Reverb.DecayHFRatio;
if(Effect->Params.Reverb.DecayHFLimit &&
Effect->Params.Reverb.AirAbsorptionGainHF < 1.0f)
hfRatio = CalcLimitedHfRatio(hfRatio, Effect->Params.Reverb.AirAbsorptionGainHF,
Effect->Params.Reverb.DecayTime);
// Update the late lines.
UpdateLateLines(Effect->Reverb.Gain, Effect->Reverb.LateReverbGain,
x, Effect->Reverb.Density, Effect->Reverb.DecayTime,
Effect->Reverb.Diffusion, hfRatio, cw, frequency, State);
UpdateLateLines(Effect->Params.Reverb.Gain, Effect->Params.Reverb.LateReverbGain,
x, Effect->Params.Reverb.Density, Effect->Params.Reverb.DecayTime,
Effect->Params.Reverb.Diffusion, hfRatio, cw, frequency, State);
// Update the echo line.
UpdateEchoLine(Effect->Reverb.Gain, Effect->Reverb.LateReverbGain,
Effect->Reverb.EchoTime, Effect->Reverb.DecayTime,
Effect->Reverb.Diffusion, Effect->Reverb.EchoDepth,
UpdateEchoLine(Effect->Params.Reverb.Gain, Effect->Params.Reverb.LateReverbGain,
Effect->Params.Reverb.EchoTime, Effect->Params.Reverb.DecayTime,
Effect->Params.Reverb.Diffusion, Effect->Params.Reverb.EchoDepth,
hfRatio, cw, frequency, State);
// Update early and late 3D panning.
Update3DPanning(Context->Device, Effect->Reverb.ReflectionsPan,
Effect->Reverb.LateReverbPan, State);
Update3DPanning(Context->Device, Effect->Params.Reverb.ReflectionsPan,
Effect->Params.Reverb.LateReverbPan, State);
}
// This processes the reverb state, given the input samples and an output
+44 -44
View File
@@ -1,5 +1,3 @@
// NOTE: The effect structure is getting too large, it may be a good idea to
// start using a union or another form of unified storage.
#ifndef _AL_EFFECT_H_
#define _AL_EFFECT_H_
@@ -25,54 +23,56 @@ typedef struct ALeffect
// Effect type (AL_EFFECT_NULL, ...)
ALenum type;
struct {
// Shared Reverb Properties
ALfloat Density;
ALfloat Diffusion;
ALfloat Gain;
ALfloat GainHF;
ALfloat DecayTime;
ALfloat DecayHFRatio;
ALfloat ReflectionsGain;
ALfloat ReflectionsDelay;
ALfloat LateReverbGain;
ALfloat LateReverbDelay;
ALfloat AirAbsorptionGainHF;
ALfloat RoomRolloffFactor;
ALboolean DecayHFLimit;
union {
struct {
// Shared Reverb Properties
ALfloat Density;
ALfloat Diffusion;
ALfloat Gain;
ALfloat GainHF;
ALfloat DecayTime;
ALfloat DecayHFRatio;
ALfloat ReflectionsGain;
ALfloat ReflectionsDelay;
ALfloat LateReverbGain;
ALfloat LateReverbDelay;
ALfloat AirAbsorptionGainHF;
ALfloat RoomRolloffFactor;
ALboolean DecayHFLimit;
// Additional EAX Reverb Properties
ALfloat GainLF;
ALfloat DecayLFRatio;
ALfloat ReflectionsPan[3];
ALfloat LateReverbPan[3];
ALfloat EchoTime;
ALfloat EchoDepth;
ALfloat ModulationTime;
ALfloat ModulationDepth;
ALfloat HFReference;
ALfloat LFReference;
} Reverb;
// Additional EAX Reverb Properties
ALfloat GainLF;
ALfloat DecayLFRatio;
ALfloat ReflectionsPan[3];
ALfloat LateReverbPan[3];
ALfloat EchoTime;
ALfloat EchoDepth;
ALfloat ModulationTime;
ALfloat ModulationDepth;
ALfloat HFReference;
ALfloat LFReference;
} Reverb;
struct {
ALfloat Delay;
ALfloat LRDelay;
struct {
ALfloat Delay;
ALfloat LRDelay;
ALfloat Damping;
ALfloat Feedback;
ALfloat Damping;
ALfloat Feedback;
ALfloat Spread;
} Echo;
ALfloat Spread;
} Echo;
struct {
ALfloat Frequency;
ALfloat HighPassCutoff;
ALint Waveform;
} Modulator;
struct {
ALfloat Frequency;
ALfloat HighPassCutoff;
ALint Waveform;
} Modulator;
struct {
ALfloat Gain;
} Dedicated;
struct {
ALfloat Gain;
} Dedicated;
} Params;
// Index to itself
ALuint effect;
+136 -136
View File
@@ -188,7 +188,7 @@ AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint iValue)
case AL_EAXREVERB_DECAY_HFLIMIT:
if(iValue >= AL_EAXREVERB_MIN_DECAY_HFLIMIT &&
iValue <= AL_EAXREVERB_MAX_DECAY_HFLIMIT)
ALEffect->Reverb.DecayHFLimit = iValue;
ALEffect->Params.Reverb.DecayHFLimit = iValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -205,7 +205,7 @@ AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint iValue)
case AL_REVERB_DECAY_HFLIMIT:
if(iValue >= AL_REVERB_MIN_DECAY_HFLIMIT &&
iValue <= AL_REVERB_MAX_DECAY_HFLIMIT)
ALEffect->Reverb.DecayHFLimit = iValue;
ALEffect->Params.Reverb.DecayHFLimit = iValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -236,7 +236,7 @@ AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint iValue)
case AL_RING_MODULATOR_WAVEFORM:
if(iValue >= AL_RING_MODULATOR_MIN_WAVEFORM &&
iValue <= AL_RING_MODULATOR_MAX_WAVEFORM)
ALEffect->Modulator.Waveform = iValue;
ALEffect->Params.Modulator.Waveform = iValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -349,7 +349,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_DENSITY:
if(flValue >= AL_EAXREVERB_MIN_DENSITY &&
flValue <= AL_EAXREVERB_MAX_DENSITY)
ALEffect->Reverb.Density = flValue;
ALEffect->Params.Reverb.Density = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -357,7 +357,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_DIFFUSION:
if(flValue >= AL_EAXREVERB_MIN_DIFFUSION &&
flValue <= AL_EAXREVERB_MAX_DIFFUSION)
ALEffect->Reverb.Diffusion = flValue;
ALEffect->Params.Reverb.Diffusion = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -365,7 +365,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_GAIN:
if(flValue >= AL_EAXREVERB_MIN_GAIN &&
flValue <= AL_EAXREVERB_MAX_GAIN)
ALEffect->Reverb.Gain = flValue;
ALEffect->Params.Reverb.Gain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -373,7 +373,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_GAINHF:
if(flValue >= AL_EAXREVERB_MIN_GAINHF &&
flValue <= AL_EAXREVERB_MAX_GAINHF)
ALEffect->Reverb.GainHF = flValue;
ALEffect->Params.Reverb.GainHF = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -381,7 +381,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_GAINLF:
if(flValue >= AL_EAXREVERB_MIN_GAINLF &&
flValue <= AL_EAXREVERB_MAX_GAINLF)
ALEffect->Reverb.GainLF = flValue;
ALEffect->Params.Reverb.GainLF = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -389,7 +389,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_DECAY_TIME:
if(flValue >= AL_EAXREVERB_MIN_DECAY_TIME &&
flValue <= AL_EAXREVERB_MAX_DECAY_TIME)
ALEffect->Reverb.DecayTime = flValue;
ALEffect->Params.Reverb.DecayTime = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -397,7 +397,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_DECAY_HFRATIO:
if(flValue >= AL_EAXREVERB_MIN_DECAY_HFRATIO &&
flValue <= AL_EAXREVERB_MAX_DECAY_HFRATIO)
ALEffect->Reverb.DecayHFRatio = flValue;
ALEffect->Params.Reverb.DecayHFRatio = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -405,7 +405,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_DECAY_LFRATIO:
if(flValue >= AL_EAXREVERB_MIN_DECAY_LFRATIO &&
flValue <= AL_EAXREVERB_MAX_DECAY_LFRATIO)
ALEffect->Reverb.DecayLFRatio = flValue;
ALEffect->Params.Reverb.DecayLFRatio = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -413,7 +413,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_REFLECTIONS_GAIN:
if(flValue >= AL_EAXREVERB_MIN_REFLECTIONS_GAIN &&
flValue <= AL_EAXREVERB_MAX_REFLECTIONS_GAIN)
ALEffect->Reverb.ReflectionsGain = flValue;
ALEffect->Params.Reverb.ReflectionsGain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -421,7 +421,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_REFLECTIONS_DELAY:
if(flValue >= AL_EAXREVERB_MIN_REFLECTIONS_DELAY &&
flValue <= AL_EAXREVERB_MAX_REFLECTIONS_DELAY)
ALEffect->Reverb.ReflectionsDelay = flValue;
ALEffect->Params.Reverb.ReflectionsDelay = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -429,7 +429,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_LATE_REVERB_GAIN:
if(flValue >= AL_EAXREVERB_MIN_LATE_REVERB_GAIN &&
flValue <= AL_EAXREVERB_MAX_LATE_REVERB_GAIN)
ALEffect->Reverb.LateReverbGain = flValue;
ALEffect->Params.Reverb.LateReverbGain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -437,7 +437,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_LATE_REVERB_DELAY:
if(flValue >= AL_EAXREVERB_MIN_LATE_REVERB_DELAY &&
flValue <= AL_EAXREVERB_MAX_LATE_REVERB_DELAY)
ALEffect->Reverb.LateReverbDelay = flValue;
ALEffect->Params.Reverb.LateReverbDelay = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -445,7 +445,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_AIR_ABSORPTION_GAINHF:
if(flValue >= AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF &&
flValue <= AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF)
ALEffect->Reverb.AirAbsorptionGainHF = flValue;
ALEffect->Params.Reverb.AirAbsorptionGainHF = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -453,7 +453,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_ECHO_TIME:
if(flValue >= AL_EAXREVERB_MIN_ECHO_TIME &&
flValue <= AL_EAXREVERB_MAX_ECHO_TIME)
ALEffect->Reverb.EchoTime = flValue;
ALEffect->Params.Reverb.EchoTime = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -461,7 +461,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_ECHO_DEPTH:
if(flValue >= AL_EAXREVERB_MIN_ECHO_DEPTH &&
flValue <= AL_EAXREVERB_MAX_ECHO_DEPTH)
ALEffect->Reverb.EchoDepth = flValue;
ALEffect->Params.Reverb.EchoDepth = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -469,7 +469,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_MODULATION_TIME:
if(flValue >= AL_EAXREVERB_MIN_MODULATION_TIME &&
flValue <= AL_EAXREVERB_MAX_MODULATION_TIME)
ALEffect->Reverb.ModulationTime = flValue;
ALEffect->Params.Reverb.ModulationTime = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -477,7 +477,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_MODULATION_DEPTH:
if(flValue >= AL_EAXREVERB_MIN_MODULATION_DEPTH &&
flValue <= AL_EAXREVERB_MAX_MODULATION_DEPTH)
ALEffect->Reverb.ModulationDepth = flValue;
ALEffect->Params.Reverb.ModulationDepth = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -485,7 +485,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_HFREFERENCE:
if(flValue >= AL_EAXREVERB_MIN_HFREFERENCE &&
flValue <= AL_EAXREVERB_MAX_HFREFERENCE)
ALEffect->Reverb.HFReference = flValue;
ALEffect->Params.Reverb.HFReference = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -493,14 +493,14 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_EAXREVERB_LFREFERENCE:
if(flValue >= AL_EAXREVERB_MIN_LFREFERENCE &&
flValue <= AL_EAXREVERB_MAX_LFREFERENCE)
ALEffect->Reverb.LFReference = flValue;
ALEffect->Params.Reverb.LFReference = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
case AL_EAXREVERB_ROOM_ROLLOFF_FACTOR:
if(flValue >= 0.0f && flValue <= 10.0f)
ALEffect->Reverb.RoomRolloffFactor = flValue;
ALEffect->Params.Reverb.RoomRolloffFactor = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -517,7 +517,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_DENSITY:
if(flValue >= AL_REVERB_MIN_DENSITY &&
flValue <= AL_REVERB_MAX_DENSITY)
ALEffect->Reverb.Density = flValue;
ALEffect->Params.Reverb.Density = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -525,7 +525,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_DIFFUSION:
if(flValue >= AL_REVERB_MIN_DIFFUSION &&
flValue <= AL_REVERB_MAX_DIFFUSION)
ALEffect->Reverb.Diffusion = flValue;
ALEffect->Params.Reverb.Diffusion = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -533,7 +533,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_GAIN:
if(flValue >= AL_REVERB_MIN_GAIN &&
flValue <= AL_REVERB_MAX_GAIN)
ALEffect->Reverb.Gain = flValue;
ALEffect->Params.Reverb.Gain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -541,7 +541,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_GAINHF:
if(flValue >= AL_REVERB_MIN_GAINHF &&
flValue <= AL_REVERB_MAX_GAINHF)
ALEffect->Reverb.GainHF = flValue;
ALEffect->Params.Reverb.GainHF = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -549,7 +549,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_DECAY_TIME:
if(flValue >= AL_REVERB_MIN_DECAY_TIME &&
flValue <= AL_REVERB_MAX_DECAY_TIME)
ALEffect->Reverb.DecayTime = flValue;
ALEffect->Params.Reverb.DecayTime = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -557,7 +557,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_DECAY_HFRATIO:
if(flValue >= AL_REVERB_MIN_DECAY_HFRATIO &&
flValue <= AL_REVERB_MAX_DECAY_HFRATIO)
ALEffect->Reverb.DecayHFRatio = flValue;
ALEffect->Params.Reverb.DecayHFRatio = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -565,7 +565,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_REFLECTIONS_GAIN:
if(flValue >= AL_REVERB_MIN_REFLECTIONS_GAIN &&
flValue <= AL_REVERB_MAX_REFLECTIONS_GAIN)
ALEffect->Reverb.ReflectionsGain = flValue;
ALEffect->Params.Reverb.ReflectionsGain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -573,7 +573,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_REFLECTIONS_DELAY:
if(flValue >= AL_REVERB_MIN_REFLECTIONS_DELAY &&
flValue <= AL_REVERB_MAX_REFLECTIONS_DELAY)
ALEffect->Reverb.ReflectionsDelay = flValue;
ALEffect->Params.Reverb.ReflectionsDelay = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -581,7 +581,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_LATE_REVERB_GAIN:
if(flValue >= AL_REVERB_MIN_LATE_REVERB_GAIN &&
flValue <= AL_REVERB_MAX_LATE_REVERB_GAIN)
ALEffect->Reverb.LateReverbGain = flValue;
ALEffect->Params.Reverb.LateReverbGain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -589,7 +589,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_LATE_REVERB_DELAY:
if(flValue >= AL_REVERB_MIN_LATE_REVERB_DELAY &&
flValue <= AL_REVERB_MAX_LATE_REVERB_DELAY)
ALEffect->Reverb.LateReverbDelay = flValue;
ALEffect->Params.Reverb.LateReverbDelay = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -597,7 +597,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_AIR_ABSORPTION_GAINHF:
if(flValue >= AL_REVERB_MIN_AIR_ABSORPTION_GAINHF &&
flValue <= AL_REVERB_MAX_AIR_ABSORPTION_GAINHF)
ALEffect->Reverb.AirAbsorptionGainHF = flValue;
ALEffect->Params.Reverb.AirAbsorptionGainHF = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -605,7 +605,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_REVERB_ROOM_ROLLOFF_FACTOR:
if(flValue >= AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR &&
flValue <= AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR)
ALEffect->Reverb.RoomRolloffFactor = flValue;
ALEffect->Params.Reverb.RoomRolloffFactor = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -621,35 +621,35 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
{
case AL_ECHO_DELAY:
if(flValue >= AL_ECHO_MIN_DELAY && flValue <= AL_ECHO_MAX_DELAY)
ALEffect->Echo.Delay = flValue;
ALEffect->Params.Echo.Delay = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
case AL_ECHO_LRDELAY:
if(flValue >= AL_ECHO_MIN_LRDELAY && flValue <= AL_ECHO_MAX_LRDELAY)
ALEffect->Echo.LRDelay = flValue;
ALEffect->Params.Echo.LRDelay = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
case AL_ECHO_DAMPING:
if(flValue >= AL_ECHO_MIN_DAMPING && flValue <= AL_ECHO_MAX_DAMPING)
ALEffect->Echo.Damping = flValue;
ALEffect->Params.Echo.Damping = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
case AL_ECHO_FEEDBACK:
if(flValue >= AL_ECHO_MIN_FEEDBACK && flValue <= AL_ECHO_MAX_FEEDBACK)
ALEffect->Echo.Feedback = flValue;
ALEffect->Params.Echo.Feedback = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
case AL_ECHO_SPREAD:
if(flValue >= AL_ECHO_MIN_SPREAD && flValue <= AL_ECHO_MAX_SPREAD)
ALEffect->Echo.Spread = flValue;
ALEffect->Params.Echo.Spread = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -666,7 +666,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_RING_MODULATOR_FREQUENCY:
if(flValue >= AL_RING_MODULATOR_MIN_FREQUENCY &&
flValue <= AL_RING_MODULATOR_MAX_FREQUENCY)
ALEffect->Modulator.Frequency = flValue;
ALEffect->Params.Modulator.Frequency = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -674,7 +674,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
case AL_RING_MODULATOR_HIGHPASS_CUTOFF:
if(flValue >= AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF &&
flValue <= AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF)
ALEffect->Modulator.HighPassCutoff = flValue;
ALEffect->Params.Modulator.HighPassCutoff = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -691,7 +691,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue
{
case AL_DEDICATED_GAIN:
if(flValue >= 0.0f)
ALEffect->Dedicated.Gain = flValue;
ALEffect->Params.Dedicated.Gain = flValue;
else
alSetError(Context, AL_INVALID_VALUE);
break;
@@ -752,9 +752,9 @@ AL_API ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, ALfloat *pflVa
case AL_EAXREVERB_REFLECTIONS_PAN:
if(!isnan(pflValues[0]) && !isnan(pflValues[1]) && !isnan(pflValues[2]))
{
ALEffect->Reverb.ReflectionsPan[0] = pflValues[0];
ALEffect->Reverb.ReflectionsPan[1] = pflValues[1];
ALEffect->Reverb.ReflectionsPan[2] = pflValues[2];
ALEffect->Params.Reverb.ReflectionsPan[0] = pflValues[0];
ALEffect->Params.Reverb.ReflectionsPan[1] = pflValues[1];
ALEffect->Params.Reverb.ReflectionsPan[2] = pflValues[2];
}
else
alSetError(Context, AL_INVALID_VALUE);
@@ -762,9 +762,9 @@ AL_API ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, ALfloat *pflVa
case AL_EAXREVERB_LATE_REVERB_PAN:
if(!isnan(pflValues[0]) && !isnan(pflValues[1]) && !isnan(pflValues[2]))
{
ALEffect->Reverb.LateReverbPan[0] = pflValues[0];
ALEffect->Reverb.LateReverbPan[1] = pflValues[1];
ALEffect->Reverb.LateReverbPan[2] = pflValues[2];
ALEffect->Params.Reverb.LateReverbPan[0] = pflValues[0];
ALEffect->Params.Reverb.LateReverbPan[1] = pflValues[1];
ALEffect->Params.Reverb.LateReverbPan[2] = pflValues[2];
}
else
alSetError(Context, AL_INVALID_VALUE);
@@ -874,7 +874,7 @@ AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *piVal
switch(param)
{
case AL_EAXREVERB_DECAY_HFLIMIT:
*piValue = ALEffect->Reverb.DecayHFLimit;
*piValue = ALEffect->Params.Reverb.DecayHFLimit;
break;
default:
@@ -887,7 +887,7 @@ AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *piVal
switch(param)
{
case AL_REVERB_DECAY_HFLIMIT:
*piValue = ALEffect->Reverb.DecayHFLimit;
*piValue = ALEffect->Params.Reverb.DecayHFLimit;
break;
default:
@@ -909,13 +909,13 @@ AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *piVal
switch(param)
{
case AL_RING_MODULATOR_FREQUENCY:
*piValue = (ALint)ALEffect->Modulator.Frequency;
*piValue = (ALint)ALEffect->Params.Modulator.Frequency;
break;
case AL_RING_MODULATOR_HIGHPASS_CUTOFF:
*piValue = (ALint)ALEffect->Modulator.HighPassCutoff;
*piValue = (ALint)ALEffect->Params.Modulator.HighPassCutoff;
break;
case AL_RING_MODULATOR_WAVEFORM:
*piValue = ALEffect->Modulator.Waveform;
*piValue = ALEffect->Params.Modulator.Waveform;
break;
default:
@@ -1024,83 +1024,83 @@ AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pfl
switch(param)
{
case AL_EAXREVERB_DENSITY:
*pflValue = ALEffect->Reverb.Density;
*pflValue = ALEffect->Params.Reverb.Density;
break;
case AL_EAXREVERB_DIFFUSION:
*pflValue = ALEffect->Reverb.Diffusion;
*pflValue = ALEffect->Params.Reverb.Diffusion;
break;
case AL_EAXREVERB_GAIN:
*pflValue = ALEffect->Reverb.Gain;
*pflValue = ALEffect->Params.Reverb.Gain;
break;
case AL_EAXREVERB_GAINHF:
*pflValue = ALEffect->Reverb.GainHF;
*pflValue = ALEffect->Params.Reverb.GainHF;
break;
case AL_EAXREVERB_GAINLF:
*pflValue = ALEffect->Reverb.GainLF;
*pflValue = ALEffect->Params.Reverb.GainLF;
break;
case AL_EAXREVERB_DECAY_TIME:
*pflValue = ALEffect->Reverb.DecayTime;
*pflValue = ALEffect->Params.Reverb.DecayTime;
break;
case AL_EAXREVERB_DECAY_HFRATIO:
*pflValue = ALEffect->Reverb.DecayHFRatio;
*pflValue = ALEffect->Params.Reverb.DecayHFRatio;
break;
case AL_EAXREVERB_DECAY_LFRATIO:
*pflValue = ALEffect->Reverb.DecayLFRatio;
*pflValue = ALEffect->Params.Reverb.DecayLFRatio;
break;
case AL_EAXREVERB_REFLECTIONS_GAIN:
*pflValue = ALEffect->Reverb.ReflectionsGain;
*pflValue = ALEffect->Params.Reverb.ReflectionsGain;
break;
case AL_EAXREVERB_REFLECTIONS_DELAY:
*pflValue = ALEffect->Reverb.ReflectionsDelay;
*pflValue = ALEffect->Params.Reverb.ReflectionsDelay;
break;
case AL_EAXREVERB_LATE_REVERB_GAIN:
*pflValue = ALEffect->Reverb.LateReverbGain;
*pflValue = ALEffect->Params.Reverb.LateReverbGain;
break;
case AL_EAXREVERB_LATE_REVERB_DELAY:
*pflValue = ALEffect->Reverb.LateReverbDelay;
*pflValue = ALEffect->Params.Reverb.LateReverbDelay;
break;
case AL_EAXREVERB_AIR_ABSORPTION_GAINHF:
*pflValue = ALEffect->Reverb.AirAbsorptionGainHF;
*pflValue = ALEffect->Params.Reverb.AirAbsorptionGainHF;
break;
case AL_EAXREVERB_ECHO_TIME:
*pflValue = ALEffect->Reverb.EchoTime;
*pflValue = ALEffect->Params.Reverb.EchoTime;
break;
case AL_EAXREVERB_ECHO_DEPTH:
*pflValue = ALEffect->Reverb.EchoDepth;
*pflValue = ALEffect->Params.Reverb.EchoDepth;
break;
case AL_EAXREVERB_MODULATION_TIME:
*pflValue = ALEffect->Reverb.ModulationTime;
*pflValue = ALEffect->Params.Reverb.ModulationTime;
break;
case AL_EAXREVERB_MODULATION_DEPTH:
*pflValue = ALEffect->Reverb.ModulationDepth;
*pflValue = ALEffect->Params.Reverb.ModulationDepth;
break;
case AL_EAXREVERB_HFREFERENCE:
*pflValue = ALEffect->Reverb.HFReference;
*pflValue = ALEffect->Params.Reverb.HFReference;
break;
case AL_EAXREVERB_LFREFERENCE:
*pflValue = ALEffect->Reverb.LFReference;
*pflValue = ALEffect->Params.Reverb.LFReference;
break;
case AL_EAXREVERB_ROOM_ROLLOFF_FACTOR:
*pflValue = ALEffect->Reverb.RoomRolloffFactor;
*pflValue = ALEffect->Params.Reverb.RoomRolloffFactor;
break;
default:
@@ -1113,51 +1113,51 @@ AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pfl
switch(param)
{
case AL_REVERB_DENSITY:
*pflValue = ALEffect->Reverb.Density;
*pflValue = ALEffect->Params.Reverb.Density;
break;
case AL_REVERB_DIFFUSION:
*pflValue = ALEffect->Reverb.Diffusion;
*pflValue = ALEffect->Params.Reverb.Diffusion;
break;
case AL_REVERB_GAIN:
*pflValue = ALEffect->Reverb.Gain;
*pflValue = ALEffect->Params.Reverb.Gain;
break;
case AL_REVERB_GAINHF:
*pflValue = ALEffect->Reverb.GainHF;
*pflValue = ALEffect->Params.Reverb.GainHF;
break;
case AL_REVERB_DECAY_TIME:
*pflValue = ALEffect->Reverb.DecayTime;
*pflValue = ALEffect->Params.Reverb.DecayTime;
break;
case AL_REVERB_DECAY_HFRATIO:
*pflValue = ALEffect->Reverb.DecayHFRatio;
*pflValue = ALEffect->Params.Reverb.DecayHFRatio;
break;
case AL_REVERB_REFLECTIONS_GAIN:
*pflValue = ALEffect->Reverb.ReflectionsGain;
*pflValue = ALEffect->Params.Reverb.ReflectionsGain;
break;
case AL_REVERB_REFLECTIONS_DELAY:
*pflValue = ALEffect->Reverb.ReflectionsDelay;
*pflValue = ALEffect->Params.Reverb.ReflectionsDelay;
break;
case AL_REVERB_LATE_REVERB_GAIN:
*pflValue = ALEffect->Reverb.LateReverbGain;
*pflValue = ALEffect->Params.Reverb.LateReverbGain;
break;
case AL_REVERB_LATE_REVERB_DELAY:
*pflValue = ALEffect->Reverb.LateReverbDelay;
*pflValue = ALEffect->Params.Reverb.LateReverbDelay;
break;
case AL_REVERB_AIR_ABSORPTION_GAINHF:
*pflValue = ALEffect->Reverb.AirAbsorptionGainHF;
*pflValue = ALEffect->Params.Reverb.AirAbsorptionGainHF;
break;
case AL_REVERB_ROOM_ROLLOFF_FACTOR:
*pflValue = ALEffect->Reverb.RoomRolloffFactor;
*pflValue = ALEffect->Params.Reverb.RoomRolloffFactor;
break;
default:
@@ -1170,23 +1170,23 @@ AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pfl
switch(param)
{
case AL_ECHO_DELAY:
*pflValue = ALEffect->Echo.Delay;
*pflValue = ALEffect->Params.Echo.Delay;
break;
case AL_ECHO_LRDELAY:
*pflValue = ALEffect->Echo.LRDelay;
*pflValue = ALEffect->Params.Echo.LRDelay;
break;
case AL_ECHO_DAMPING:
*pflValue = ALEffect->Echo.Damping;
*pflValue = ALEffect->Params.Echo.Damping;
break;
case AL_ECHO_FEEDBACK:
*pflValue = ALEffect->Echo.Feedback;
*pflValue = ALEffect->Params.Echo.Feedback;
break;
case AL_ECHO_SPREAD:
*pflValue = ALEffect->Echo.Spread;
*pflValue = ALEffect->Params.Echo.Spread;
break;
default:
@@ -1199,10 +1199,10 @@ AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pfl
switch(param)
{
case AL_RING_MODULATOR_FREQUENCY:
*pflValue = ALEffect->Modulator.Frequency;
*pflValue = ALEffect->Params.Modulator.Frequency;
break;
case AL_RING_MODULATOR_HIGHPASS_CUTOFF:
*pflValue = ALEffect->Modulator.HighPassCutoff;
*pflValue = ALEffect->Params.Modulator.HighPassCutoff;
break;
default:
@@ -1216,7 +1216,7 @@ AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pfl
switch(param)
{
case AL_DEDICATED_GAIN:
*pflValue = ALEffect->Dedicated.Gain;
*pflValue = ALEffect->Params.Dedicated.Gain;
break;
default:
@@ -1273,14 +1273,14 @@ AL_API ALvoid AL_APIENTRY alGetEffectfv(ALuint effect, ALenum param, ALfloat *pf
break;
case AL_EAXREVERB_REFLECTIONS_PAN:
pflValues[0] = ALEffect->Reverb.ReflectionsPan[0];
pflValues[1] = ALEffect->Reverb.ReflectionsPan[1];
pflValues[2] = ALEffect->Reverb.ReflectionsPan[2];
pflValues[0] = ALEffect->Params.Reverb.ReflectionsPan[0];
pflValues[1] = ALEffect->Params.Reverb.ReflectionsPan[1];
pflValues[2] = ALEffect->Params.Reverb.ReflectionsPan[2];
break;
case AL_EAXREVERB_LATE_REVERB_PAN:
pflValues[0] = ALEffect->Reverb.LateReverbPan[0];
pflValues[1] = ALEffect->Reverb.LateReverbPan[1];
pflValues[2] = ALEffect->Reverb.LateReverbPan[2];
pflValues[0] = ALEffect->Params.Reverb.LateReverbPan[0];
pflValues[1] = ALEffect->Params.Reverb.LateReverbPan[1];
pflValues[2] = ALEffect->Params.Reverb.LateReverbPan[2];
break;
default:
@@ -1394,49 +1394,49 @@ static void InitEffectParams(ALeffect *effect, ALenum type)
*/
case AL_EFFECT_EAXREVERB:
case AL_EFFECT_REVERB:
effect->Reverb.Density = AL_EAXREVERB_DEFAULT_DENSITY;
effect->Reverb.Diffusion = AL_EAXREVERB_DEFAULT_DIFFUSION;
effect->Reverb.Gain = AL_EAXREVERB_DEFAULT_GAIN;
effect->Reverb.GainHF = AL_EAXREVERB_DEFAULT_GAINHF;
effect->Reverb.GainLF = AL_EAXREVERB_DEFAULT_GAINLF;
effect->Reverb.DecayTime = AL_EAXREVERB_DEFAULT_DECAY_TIME;
effect->Reverb.DecayHFRatio = AL_EAXREVERB_DEFAULT_DECAY_HFRATIO;
effect->Reverb.DecayLFRatio = AL_EAXREVERB_DEFAULT_DECAY_LFRATIO;
effect->Reverb.ReflectionsGain = AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN;
effect->Reverb.ReflectionsDelay = AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY;
effect->Reverb.ReflectionsPan[0] = AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ;
effect->Reverb.ReflectionsPan[1] = AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ;
effect->Reverb.ReflectionsPan[2] = AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ;
effect->Reverb.LateReverbGain = AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN;
effect->Reverb.LateReverbDelay = AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY;
effect->Reverb.LateReverbPan[0] = AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ;
effect->Reverb.LateReverbPan[1] = AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ;
effect->Reverb.LateReverbPan[2] = AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ;
effect->Reverb.EchoTime = AL_EAXREVERB_DEFAULT_ECHO_TIME;
effect->Reverb.EchoDepth = AL_EAXREVERB_DEFAULT_ECHO_DEPTH;
effect->Reverb.ModulationTime = AL_EAXREVERB_DEFAULT_MODULATION_TIME;
effect->Reverb.ModulationDepth = AL_EAXREVERB_DEFAULT_MODULATION_DEPTH;
effect->Reverb.AirAbsorptionGainHF = AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF;
effect->Reverb.HFReference = AL_EAXREVERB_DEFAULT_HFREFERENCE;
effect->Reverb.LFReference = AL_EAXREVERB_DEFAULT_LFREFERENCE;
effect->Reverb.RoomRolloffFactor = AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR;
effect->Reverb.DecayHFLimit = AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT;
effect->Params.Reverb.Density = AL_EAXREVERB_DEFAULT_DENSITY;
effect->Params.Reverb.Diffusion = AL_EAXREVERB_DEFAULT_DIFFUSION;
effect->Params.Reverb.Gain = AL_EAXREVERB_DEFAULT_GAIN;
effect->Params.Reverb.GainHF = AL_EAXREVERB_DEFAULT_GAINHF;
effect->Params.Reverb.GainLF = AL_EAXREVERB_DEFAULT_GAINLF;
effect->Params.Reverb.DecayTime = AL_EAXREVERB_DEFAULT_DECAY_TIME;
effect->Params.Reverb.DecayHFRatio = AL_EAXREVERB_DEFAULT_DECAY_HFRATIO;
effect->Params.Reverb.DecayLFRatio = AL_EAXREVERB_DEFAULT_DECAY_LFRATIO;
effect->Params.Reverb.ReflectionsGain = AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN;
effect->Params.Reverb.ReflectionsDelay = AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY;
effect->Params.Reverb.ReflectionsPan[0] = AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ;
effect->Params.Reverb.ReflectionsPan[1] = AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ;
effect->Params.Reverb.ReflectionsPan[2] = AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ;
effect->Params.Reverb.LateReverbGain = AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN;
effect->Params.Reverb.LateReverbDelay = AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY;
effect->Params.Reverb.LateReverbPan[0] = AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ;
effect->Params.Reverb.LateReverbPan[1] = AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ;
effect->Params.Reverb.LateReverbPan[2] = AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ;
effect->Params.Reverb.EchoTime = AL_EAXREVERB_DEFAULT_ECHO_TIME;
effect->Params.Reverb.EchoDepth = AL_EAXREVERB_DEFAULT_ECHO_DEPTH;
effect->Params.Reverb.ModulationTime = AL_EAXREVERB_DEFAULT_MODULATION_TIME;
effect->Params.Reverb.ModulationDepth = AL_EAXREVERB_DEFAULT_MODULATION_DEPTH;
effect->Params.Reverb.AirAbsorptionGainHF = AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF;
effect->Params.Reverb.HFReference = AL_EAXREVERB_DEFAULT_HFREFERENCE;
effect->Params.Reverb.LFReference = AL_EAXREVERB_DEFAULT_LFREFERENCE;
effect->Params.Reverb.RoomRolloffFactor = AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR;
effect->Params.Reverb.DecayHFLimit = AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT;
break;
case AL_EFFECT_ECHO:
effect->Echo.Delay = AL_ECHO_DEFAULT_DELAY;
effect->Echo.LRDelay = AL_ECHO_DEFAULT_LRDELAY;
effect->Echo.Damping = AL_ECHO_DEFAULT_DAMPING;
effect->Echo.Feedback = AL_ECHO_DEFAULT_FEEDBACK;
effect->Echo.Spread = AL_ECHO_DEFAULT_SPREAD;
effect->Params.Echo.Delay = AL_ECHO_DEFAULT_DELAY;
effect->Params.Echo.LRDelay = AL_ECHO_DEFAULT_LRDELAY;
effect->Params.Echo.Damping = AL_ECHO_DEFAULT_DAMPING;
effect->Params.Echo.Feedback = AL_ECHO_DEFAULT_FEEDBACK;
effect->Params.Echo.Spread = AL_ECHO_DEFAULT_SPREAD;
break;
case AL_EFFECT_RING_MODULATOR:
effect->Modulator.Frequency = AL_RING_MODULATOR_DEFAULT_FREQUENCY;
effect->Modulator.HighPassCutoff = AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF;
effect->Modulator.Waveform = AL_RING_MODULATOR_DEFAULT_WAVEFORM;
effect->Params.Modulator.Frequency = AL_RING_MODULATOR_DEFAULT_FREQUENCY;
effect->Params.Modulator.HighPassCutoff = AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF;
effect->Params.Modulator.Waveform = AL_RING_MODULATOR_DEFAULT_WAVEFORM;
break;
case AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT:
case AL_EFFECT_DEDICATED_DIALOGUE:
effect->Dedicated.Gain = 1.0f;
effect->Params.Dedicated.Gain = 1.0f;
break;
}
}