diff options
Diffstat (limited to 'alc/effects')
-rw-r--r-- | alc/effects/autowah.cpp | 2 | ||||
-rw-r--r-- | alc/effects/base.h | 201 | ||||
-rw-r--r-- | alc/effects/chorus.cpp | 2 | ||||
-rw-r--r-- | alc/effects/compressor.cpp | 2 | ||||
-rw-r--r-- | alc/effects/convolution.cpp | 2 | ||||
-rw-r--r-- | alc/effects/dedicated.cpp | 2 | ||||
-rw-r--r-- | alc/effects/distortion.cpp | 2 | ||||
-rw-r--r-- | alc/effects/echo.cpp | 2 | ||||
-rw-r--r-- | alc/effects/equalizer.cpp | 2 | ||||
-rw-r--r-- | alc/effects/fshifter.cpp | 2 | ||||
-rw-r--r-- | alc/effects/modulator.cpp | 2 | ||||
-rw-r--r-- | alc/effects/pshifter.cpp | 2 | ||||
-rw-r--r-- | alc/effects/reverb.cpp | 2 | ||||
-rw-r--r-- | alc/effects/vmorpher.cpp | 2 |
14 files changed, 14 insertions, 213 deletions
diff --git a/alc/effects/autowah.cpp b/alc/effects/autowah.cpp index 9c2ec335..f496eb51 100644 --- a/alc/effects/autowah.cpp +++ b/alc/effects/autowah.cpp @@ -27,7 +27,6 @@ #include <utility> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -36,6 +35,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "intrusive_ptr.h" #include "math_defs.h" diff --git a/alc/effects/base.h b/alc/effects/base.h index 1fb339aa..95695857 100644 --- a/alc/effects/base.h +++ b/alc/effects/base.h @@ -1,206 +1,7 @@ #ifndef EFFECTS_BASE_H #define EFFECTS_BASE_H -#include <stddef.h> - -#include "albyte.h" -#include "almalloc.h" -#include "alspan.h" -#include "atomic.h" -#include "core/bufferline.h" -#include "intrusive_ptr.h" - -struct BufferStorage; -struct ContextBase; -struct DeviceBase; -struct EffectSlot; -struct MixParams; -struct RealMixParams; - - -/** Target gain for the reverb decay feedback reaching the decay time. */ -constexpr float ReverbDecayGain{0.001f}; /* -60 dB */ - -constexpr float ReverbMaxReflectionsDelay{0.3f}; -constexpr float ReverbMaxLateReverbDelay{0.1f}; - -enum class ChorusWaveform { - Sinusoid, - Triangle -}; - -constexpr float ChorusMaxDelay{0.016f}; -constexpr float FlangerMaxDelay{0.004f}; - -constexpr float EchoMaxDelay{0.207f}; -constexpr float EchoMaxLRDelay{0.404f}; - -enum class FShifterDirection { - Down, - Up, - Off -}; - -enum class ModulatorWaveform { - Sinusoid, - Sawtooth, - Square -}; - -enum class VMorpherPhenome { - A, E, I, O, U, - AA, AE, AH, AO, EH, ER, IH, IY, UH, UW, - B, D, F, G, J, K, L, M, N, P, R, S, T, V, Z -}; - -enum class VMorpherWaveform { - Sinusoid, - Triangle, - Sawtooth -}; - -union EffectProps { - struct { - // Shared Reverb Properties - float Density; - float Diffusion; - float Gain; - float GainHF; - float DecayTime; - float DecayHFRatio; - float ReflectionsGain; - float ReflectionsDelay; - float LateReverbGain; - float LateReverbDelay; - float AirAbsorptionGainHF; - float RoomRolloffFactor; - bool DecayHFLimit; - - // Additional EAX Reverb Properties - float GainLF; - float DecayLFRatio; - float ReflectionsPan[3]; - float LateReverbPan[3]; - float EchoTime; - float EchoDepth; - float ModulationTime; - float ModulationDepth; - float HFReference; - float LFReference; - } Reverb; - - struct { - float AttackTime; - float ReleaseTime; - float Resonance; - float PeakGain; - } Autowah; - - struct { - ChorusWaveform Waveform; - int Phase; - float Rate; - float Depth; - float Feedback; - float Delay; - } Chorus; /* Also Flanger */ - - struct { - bool OnOff; - } Compressor; - - struct { - float Edge; - float Gain; - float LowpassCutoff; - float EQCenter; - float EQBandwidth; - } Distortion; - - struct { - float Delay; - float LRDelay; - - float Damping; - float Feedback; - - float Spread; - } Echo; - - struct { - float LowCutoff; - float LowGain; - float Mid1Center; - float Mid1Gain; - float Mid1Width; - float Mid2Center; - float Mid2Gain; - float Mid2Width; - float HighCutoff; - float HighGain; - } Equalizer; - - struct { - float Frequency; - FShifterDirection LeftDirection; - FShifterDirection RightDirection; - } Fshifter; - - struct { - float Frequency; - float HighPassCutoff; - ModulatorWaveform Waveform; - } Modulator; - - struct { - int CoarseTune; - int FineTune; - } Pshifter; - - struct { - float Rate; - VMorpherPhenome PhonemeA; - VMorpherPhenome PhonemeB; - int PhonemeACoarseTuning; - int PhonemeBCoarseTuning; - VMorpherWaveform Waveform; - } Vmorpher; - - struct { - float Gain; - } Dedicated; -}; - - -struct EffectTarget { - MixParams *Main; - RealMixParams *RealOut; -}; - -struct EffectState : public al::intrusive_ref<EffectState> { - struct Buffer { - const BufferStorage *storage; - al::span<const al::byte> samples; - }; - - al::span<FloatBufferLine> mOutTarget; - - - virtual ~EffectState() = default; - - virtual void deviceUpdate(const DeviceBase *device, const Buffer &buffer) = 0; - virtual void update(const ContextBase *context, const EffectSlot *slot, - const EffectProps *props, const EffectTarget target) = 0; - virtual void process(const size_t samplesToDo, const al::span<const FloatBufferLine> samplesIn, - const al::span<FloatBufferLine> samplesOut) = 0; -}; - - -struct EffectStateFactory { - virtual ~EffectStateFactory() = default; - - virtual al::intrusive_ptr<EffectState> create() = 0; -}; +#include "core/effects/base.h" EffectStateFactory *NullStateFactory_getFactory(void); diff --git a/alc/effects/chorus.cpp b/alc/effects/chorus.cpp index 3a1b9ae4..7d32f8ff 100644 --- a/alc/effects/chorus.cpp +++ b/alc/effects/chorus.cpp @@ -27,7 +27,6 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -35,6 +34,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "core/mixer/defs.h" #include "core/resampler_limits.h" diff --git a/alc/effects/compressor.cpp b/alc/effects/compressor.cpp index 030bfe08..366f2275 100644 --- a/alc/effects/compressor.cpp +++ b/alc/effects/compressor.cpp @@ -38,7 +38,6 @@ #include <utility> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -46,6 +45,7 @@ #include "core/bufferline.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "core/mixer/defs.h" #include "intrusive_ptr.h" diff --git a/alc/effects/convolution.cpp b/alc/effects/convolution.cpp index 5724badb..dbbca143 100644 --- a/alc/effects/convolution.cpp +++ b/alc/effects/convolution.cpp @@ -19,7 +19,6 @@ #include "albyte.h" #include "alcomplex.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -30,6 +29,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/filters/splitter.h" #include "core/fmt_traits.h" #include "core/mixer.h" diff --git a/alc/effects/dedicated.cpp b/alc/effects/dedicated.cpp index e7ea89e0..671eb5ec 100644 --- a/alc/effects/dedicated.cpp +++ b/alc/effects/dedicated.cpp @@ -26,12 +26,12 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alspan.h" #include "core/bufferline.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "intrusive_ptr.h" diff --git a/alc/effects/distortion.cpp b/alc/effects/distortion.cpp index 26b4df8e..c9366791 100644 --- a/alc/effects/distortion.cpp +++ b/alc/effects/distortion.cpp @@ -26,7 +26,6 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -34,6 +33,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/filters/biquad.h" #include "core/mixer.h" #include "core/mixer/defs.h" diff --git a/alc/effects/echo.cpp b/alc/effects/echo.cpp index 4cdef37c..5d003718 100644 --- a/alc/effects/echo.cpp +++ b/alc/effects/echo.cpp @@ -27,7 +27,6 @@ #include <tuple> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -35,6 +34,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/filters/biquad.h" #include "core/mixer.h" #include "intrusive_ptr.h" diff --git a/alc/effects/equalizer.cpp b/alc/effects/equalizer.cpp index 800330a3..67ad67b0 100644 --- a/alc/effects/equalizer.cpp +++ b/alc/effects/equalizer.cpp @@ -28,7 +28,6 @@ #include <utility> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alspan.h" #include "core/ambidefs.h" @@ -36,6 +35,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/filters/biquad.h" #include "core/mixer.h" #include "intrusive_ptr.h" diff --git a/alc/effects/fshifter.cpp b/alc/effects/fshifter.cpp index c25aab82..b143db0c 100644 --- a/alc/effects/fshifter.cpp +++ b/alc/effects/fshifter.cpp @@ -28,7 +28,6 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "alcomplex.h" #include "almalloc.h" #include "alnumeric.h" @@ -37,6 +36,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "core/mixer/defs.h" #include "intrusive_ptr.h" diff --git a/alc/effects/modulator.cpp b/alc/effects/modulator.cpp index a518ff63..4a086b11 100644 --- a/alc/effects/modulator.cpp +++ b/alc/effects/modulator.cpp @@ -26,7 +26,6 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -35,6 +34,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/filters/biquad.h" #include "core/mixer.h" #include "intrusive_ptr.h" diff --git a/alc/effects/pshifter.cpp b/alc/effects/pshifter.cpp index 26115605..dae0a267 100644 --- a/alc/effects/pshifter.cpp +++ b/alc/effects/pshifter.cpp @@ -28,7 +28,6 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "alcomplex.h" #include "almalloc.h" #include "alnumeric.h" @@ -36,6 +35,7 @@ #include "core/bufferline.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "core/mixer/defs.h" #include "intrusive_ptr.h" diff --git a/alc/effects/reverb.cpp b/alc/effects/reverb.cpp index d6f1dbbf..db0aeb62 100644 --- a/alc/effects/reverb.cpp +++ b/alc/effects/reverb.cpp @@ -29,7 +29,6 @@ #include <stdint.h> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -38,6 +37,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/filters/biquad.h" #include "core/filters/splitter.h" #include "core/mixer.h" diff --git a/alc/effects/vmorpher.cpp b/alc/effects/vmorpher.cpp index 6c419ba2..e3eed179 100644 --- a/alc/effects/vmorpher.cpp +++ b/alc/effects/vmorpher.cpp @@ -39,7 +39,6 @@ #include <iterator> #include "alc/effects/base.h" -#include "alc/effectslot.h" #include "almalloc.h" #include "alnumeric.h" #include "alspan.h" @@ -48,6 +47,7 @@ #include "core/context.h" #include "core/devformat.h" #include "core/device.h" +#include "core/effectslot.h" #include "core/mixer.h" #include "intrusive_ptr.h" #include "math_defs.h" |