aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/effects/echo.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2018-12-24 13:29:36 -0800
committerChris Robinson <[email protected]>2018-12-24 13:29:36 -0800
commitae86aef4db02675ec64d690556905ea034753c87 (patch)
tree9cfaf0b176150d2563ca62429ced1884c6db510d /Alc/effects/echo.cpp
parentcd213fe6b731269caa484eb3cb9b830dac7f5c58 (diff)
Provide effect target parameters through a common struct
Diffstat (limited to 'Alc/effects/echo.cpp')
-rw-r--r--Alc/effects/echo.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/Alc/effects/echo.cpp b/Alc/effects/echo.cpp
index dae99912..f48f1e89 100644
--- a/Alc/effects/echo.cpp
+++ b/Alc/effects/echo.cpp
@@ -57,7 +57,7 @@ struct ALechoState final : public EffectState {
ALboolean deviceUpdate(const ALCdevice *device) override;
- void update(const ALCcontext *context, const ALeffectslot *slot, const ALeffectProps *props) override;
+ void update(const ALCcontext *context, const ALeffectslot *slot, const ALeffectProps *props, const EffectTarget target) override;
void process(ALsizei samplesToDo, const ALfloat (*RESTRICT samplesIn)[BUFFERSIZE], ALfloat (*RESTRICT samplesOut)[BUFFERSIZE], ALsizei numChannels) override;
DEF_NEWDEL(ALechoState)
@@ -90,7 +90,7 @@ ALboolean ALechoState::deviceUpdate(const ALCdevice *Device)
return AL_TRUE;
}
-void ALechoState::update(const ALCcontext *context, const ALeffectslot *slot, const ALeffectProps *props)
+void ALechoState::update(const ALCcontext *context, const ALeffectslot *slot, const ALeffectProps *props, const EffectTarget target)
{
const ALCdevice *device = context->Device;
ALuint frequency = device->Frequency;
@@ -119,20 +119,10 @@ void ALechoState::update(const ALCcontext *context, const ALeffectslot *slot, co
CalcAngleCoeffs(-F_PI_2*lrpan, 0.0f, spread, coeffs[0]);
CalcAngleCoeffs( F_PI_2*lrpan, 0.0f, spread, coeffs[1]);
- if(ALeffectslot *target{slot->Params.Target})
- {
- mOutBuffer = target->WetBuffer;
- mOutChannels = target->NumChannels;
- ComputePanGains(target, coeffs[0], slot->Params.Gain, mGains[0].Target);
- ComputePanGains(target, coeffs[1], slot->Params.Gain, mGains[1].Target);
- }
- else
- {
- mOutBuffer = device->Dry.Buffer;
- mOutChannels = device->Dry.NumChannels;
- ComputePanGains(&device->Dry, coeffs[0], slot->Params.Gain, mGains[0].Target);
- ComputePanGains(&device->Dry, coeffs[1], slot->Params.Gain, mGains[1].Target);
- }
+ mOutBuffer = target.Main->Buffer;
+ mOutChannels = target.Main->NumChannels;
+ ComputePanGains(target.Main, coeffs[0], slot->Params.Gain, mGains[0].Target);
+ ComputePanGains(target.Main, coeffs[1], slot->Params.Gain, mGains[1].Target);
}
void ALechoState::process(ALsizei SamplesToDo, const ALfloat (*RESTRICT SamplesIn)[BUFFERSIZE], ALfloat (*RESTRICT SamplesOut)[BUFFERSIZE], ALsizei NumChannels)