From d16b61dffb24cbe90e03e921684cb538cb23e181 Mon Sep 17 00:00:00 2001
From: Chris Robinson <chris.kcat@gmail.com>
Date: Fri, 17 Dec 2021 17:13:59 -0800
Subject: Move the effects base and effectslot to core

---
 alc/effects/autowah.cpp     |   2 +-
 alc/effects/base.h          | 201 +-------------------------------------------
 alc/effects/chorus.cpp      |   2 +-
 alc/effects/compressor.cpp  |   2 +-
 alc/effects/convolution.cpp |   2 +-
 alc/effects/dedicated.cpp   |   2 +-
 alc/effects/distortion.cpp  |   2 +-
 alc/effects/echo.cpp        |   2 +-
 alc/effects/equalizer.cpp   |   2 +-
 alc/effects/fshifter.cpp    |   2 +-
 alc/effects/modulator.cpp   |   2 +-
 alc/effects/pshifter.cpp    |   2 +-
 alc/effects/reverb.cpp      |   2 +-
 alc/effects/vmorpher.cpp    |   2 +-
 14 files changed, 14 insertions(+), 213 deletions(-)

(limited to 'alc/effects')

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"
-- 
cgit v1.2.3