aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALu.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/ALu.c')
-rw-r--r--Alc/ALu.c72
1 files changed, 35 insertions, 37 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index ad15d77b..ce1645fe 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -263,10 +263,10 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
ALfloat Velocity[3],ListenerVel[3];
ALfloat MinVolume,MaxVolume,MinDist,MaxDist,Rolloff,OuterGainHF;
ALfloat ConeVolume,ConeHF,SourceVolume,ListenerGain;
- ALfloat DopplerFactor, DopplerVelocity, flSpeedOfSound;
+ ALfloat DopplerFactor, DopplerVelocity, SpeedOfSound;
ALfloat AirAbsorptionFactor;
ALbufferlistitem *BufferListItem;
- ALfloat flAttenuation, effectiveDist;
+ ALfloat Attenuation, EffectiveDist;
ALfloat RoomAttenuation[MAX_SENDS];
ALfloat MetersPerUnit;
ALfloat RoomRolloff[MAX_SENDS];
@@ -290,7 +290,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
//Get context properties
DopplerFactor = ALContext->DopplerFactor * ALSource->DopplerFactor;
DopplerVelocity = ALContext->DopplerVelocity;
- flSpeedOfSound = ALContext->flSpeedOfSound;
+ SpeedOfSound = ALContext->flSpeedOfSound;
NumSends = Device->NumAuxSends;
Frequency = Device->Frequency;
@@ -357,7 +357,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
Distance = aluSqrt(aluDotproduct(Position, Position));
OrigDist = Distance;
- flAttenuation = 1.0f;
+ Attenuation = 1.0f;
for(i = 0;i < NumSends;i++)
{
RoomAttenuation[i] = 1.0f;
@@ -382,7 +382,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
if(MinDist > 0.0f)
{
if((MinDist + (Rolloff * (Distance - MinDist))) > 0.0f)
- flAttenuation = MinDist / (MinDist + (Rolloff * (Distance - MinDist)));
+ Attenuation = MinDist / (MinDist + (Rolloff * (Distance - MinDist)));
for(i = 0;i < NumSends;i++)
{
if((MinDist + (RoomRolloff[i] * (Distance - MinDist))) > 0.0f)
@@ -400,8 +400,8 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
case AL_LINEAR_DISTANCE:
if(MaxDist != MinDist)
{
- flAttenuation = 1.0f - (Rolloff*(Distance-MinDist)/(MaxDist - MinDist));
- flAttenuation = __max(flAttenuation, 0.0f);
+ Attenuation = 1.0f - (Rolloff*(Distance-MinDist)/(MaxDist - MinDist));
+ Attenuation = __max(Attenuation, 0.0f);
for(i = 0;i < NumSends;i++)
{
RoomAttenuation[i] = 1.0f - (RoomRolloff[i]*(Distance-MinDist)/(MaxDist - MinDist));
@@ -419,7 +419,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
case AL_EXPONENT_DISTANCE:
if(Distance > 0.0f && MinDist > 0.0f)
{
- flAttenuation = aluPow(Distance/MinDist, -Rolloff);
+ Attenuation = aluPow(Distance/MinDist, -Rolloff);
for(i = 0;i < NumSends;i++)
RoomAttenuation[i] = aluPow(Distance/MinDist, -RoomRolloff[i]);
}
@@ -430,22 +430,22 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
}
// Source Gain + Attenuation
- DryGain = SourceVolume * flAttenuation;
+ DryGain = SourceVolume * Attenuation;
for(i = 0;i < NumSends;i++)
WetGain[i] = SourceVolume * RoomAttenuation[i];
- effectiveDist = 0.0f;
- if(MinDist > 0.0f && flAttenuation < 1.0f)
- effectiveDist = (MinDist/flAttenuation - MinDist)*MetersPerUnit;
+ EffectiveDist = 0.0f;
+ if(MinDist > 0.0f && Attenuation < 1.0f)
+ EffectiveDist = (MinDist/Attenuation - MinDist)*MetersPerUnit;
// Distance-based air absorption
- if(AirAbsorptionFactor > 0.0f && effectiveDist > 0.0f)
+ if(AirAbsorptionFactor > 0.0f && EffectiveDist > 0.0f)
{
ALfloat absorb;
// Absorption calculation is done in dB
absorb = (AirAbsorptionFactor*AIRABSORBGAINDBHF) *
- effectiveDist;
+ EffectiveDist;
// Convert dB to linear gain before applying
absorb = aluPow(10.0f, absorb/20.0f);
@@ -525,13 +525,13 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
* distance, the initial decay of the reverb effect is
* calculated and applied to the wet path.
*/
- WetGain[i] *= aluPow(10.0f, effectiveDist /
+ WetGain[i] *= aluPow(10.0f, EffectiveDist /
(SPEEDOFSOUNDMETRESPERSEC *
Slot->effect.Reverb.DecayTime) *
-60.0 / 20.0);
WetGainHF[i] *= aluPow(Slot->effect.Reverb.AirAbsorptionGainHF,
- AirAbsorptionFactor * effectiveDist);
+ AirAbsorptionFactor * EffectiveDist);
}
}
else
@@ -568,30 +568,28 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
DryGain *= ListenerGain;
// Calculate Velocity
+ Pitch = ALSource->flPitch;
if(DopplerFactor != 0.0f)
{
- ALfloat flVSS, flVLS;
- ALfloat flMaxVelocity = (DopplerVelocity * flSpeedOfSound) /
- DopplerFactor;
-
- flVSS = aluDotproduct(Velocity, SourceToListener);
- if(flVSS >= flMaxVelocity)
- flVSS = (flMaxVelocity - 1.0f);
- else if(flVSS <= -flMaxVelocity)
- flVSS = -flMaxVelocity + 1.0f;
-
- flVLS = aluDotproduct(ListenerVel, SourceToListener);
- if(flVLS >= flMaxVelocity)
- flVLS = (flMaxVelocity - 1.0f);
- else if(flVLS <= -flMaxVelocity)
- flVLS = -flMaxVelocity + 1.0f;
-
- Pitch = ALSource->flPitch *
- ((flSpeedOfSound * DopplerVelocity) - (DopplerFactor * flVLS)) /
- ((flSpeedOfSound * DopplerVelocity) - (DopplerFactor * flVSS));
+ ALfloat VSS, VLS;
+ ALfloat MaxVelocity = (SpeedOfSound*DopplerVelocity) /
+ DopplerFactor;
+
+ VSS = aluDotproduct(Velocity, SourceToListener);
+ if(VSS >= MaxVelocity)
+ VSS = (MaxVelocity - 1.0f);
+ else if(VSS <= -MaxVelocity)
+ VSS = -MaxVelocity + 1.0f;
+
+ VLS = aluDotproduct(ListenerVel, SourceToListener);
+ if(VLS >= MaxVelocity)
+ VLS = (MaxVelocity - 1.0f);
+ else if(VLS <= -MaxVelocity)
+ VLS = -MaxVelocity + 1.0f;
+
+ Pitch *= ((SpeedOfSound*DopplerVelocity) - (DopplerFactor*VLS)) /
+ ((SpeedOfSound*DopplerVelocity) - (DopplerFactor*VSS));
}
- else
- Pitch = ALSource->flPitch;
BufferListItem = ALSource->queue;
while(BufferListItem != NULL)