aboutsummaryrefslogtreecommitdiffstats
path: root/al/effects/chorus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'al/effects/chorus.cpp')
-rw-r--r--al/effects/chorus.cpp41
1 files changed, 14 insertions, 27 deletions
diff --git a/al/effects/chorus.cpp b/al/effects/chorus.cpp
index a9088157..a6845ee8 100644
--- a/al/effects/chorus.cpp
+++ b/al/effects/chorus.cpp
@@ -350,14 +350,11 @@ struct EaxChorusTraits {
static constexpr auto efx_default_feedback() { return AL_CHORUS_DEFAULT_FEEDBACK; }
static constexpr auto efx_default_delay() { return AL_CHORUS_DEFAULT_DELAY; }
- static al::optional<ChorusWaveform> eax_waveform(unsigned long type)
+ static ChorusWaveform eax_waveform(unsigned long type)
{
- switch(type)
- {
- case EAX_CHORUS_SINUSOID: return ChorusWaveform::Sinusoid;
- case EAX_CHORUS_TRIANGLE: return ChorusWaveform::Triangle;
- }
- return al::nullopt;
+ if(type == EAX_CHORUS_SINUSOID) return ChorusWaveform::Sinusoid;
+ if(type == EAX_CHORUS_TRIANGLE) return ChorusWaveform::Triangle;
+ return ChorusWaveform::Sinusoid;
}
}; // EaxChorusTraits
@@ -420,14 +417,11 @@ struct EaxFlangerTraits {
static constexpr auto efx_default_feedback() { return AL_FLANGER_DEFAULT_FEEDBACK; }
static constexpr auto efx_default_delay() { return AL_FLANGER_DEFAULT_DELAY; }
- static al::optional<ChorusWaveform> eax_waveform(unsigned long type)
+ static ChorusWaveform eax_waveform(unsigned long type)
{
- switch(type)
- {
- case EAX_FLANGER_SINUSOID: return ChorusWaveform::Sinusoid;
- case EAX_FLANGER_TRIANGLE: return ChorusWaveform::Triangle;
- }
- return al::nullopt;
+ if(type == EAX_FLANGER_SINUSOID) return ChorusWaveform::Sinusoid;
+ if(type == EAX_FLANGER_TRIANGLE) return ChorusWaveform::Triangle;
+ return ChorusWaveform::Sinusoid;
}
}; // EaxFlangerTraits
@@ -626,19 +620,12 @@ public:
&& dst.flFeedback == src.flFeedback && dst.flDelay == src.flDelay)
return false;
- const auto efx_waveform = Traits::eax_waveform(dst.ulWaveform);
- assert(efx_waveform.has_value());
- al_effect_props_.Chorus.Waveform = *efx_waveform;
- al_effect_props_.Chorus.Phase = clamp(static_cast<ALint>(dst.lPhase),
- Traits::efx_min_phase(), Traits::efx_max_phase());
- al_effect_props_.Chorus.Rate = clamp(dst.flRate,
- Traits::efx_min_rate(), Traits::efx_max_rate());
- al_effect_props_.Chorus.Depth = clamp(dst.flDepth,
- Traits::efx_min_depth(), Traits::efx_max_depth());
- al_effect_props_.Chorus.Feedback = clamp(dst.flFeedback,
- Traits::efx_min_feedback(), Traits::efx_max_feedback());
- al_effect_props_.Chorus.Delay = clamp(dst.flDelay,
- Traits::efx_min_delay(), Traits::efx_max_delay());
+ al_effect_props_.Chorus.Waveform = Traits::eax_waveform(dst.ulWaveform);
+ al_effect_props_.Chorus.Phase = static_cast<ALint>(dst.lPhase);
+ al_effect_props_.Chorus.Rate = dst.flRate;
+ al_effect_props_.Chorus.Depth = dst.flDepth;
+ al_effect_props_.Chorus.Feedback = dst.flFeedback;
+ al_effect_props_.Chorus.Delay = dst.flDelay;
return true;
}