diff options
Diffstat (limited to 'alc/alcmain.h')
-rw-r--r-- | alc/alcmain.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/alc/alcmain.h b/alc/alcmain.h index e7451ab0..464febcc 100644 --- a/alc/alcmain.h +++ b/alc/alcmain.h @@ -23,6 +23,7 @@ #include "ambidefs.h" #include "atomic.h" #include "devformat.h" +#include "filters/splitter.h" #include "hrtf.h" #include "inprogext.h" #include "intrusive_ptr.h" @@ -35,7 +36,6 @@ struct ALfilter; struct BackendBase; struct Compressor; struct EffectState; -struct FrontStablizer; struct Uhj2Encoder; struct bs2b; @@ -160,6 +160,21 @@ using FloatBufferLine = std::array<float,BUFFERSIZE>; #define MAX_RESAMPLE_PADDING 24 +struct FrontStablizer { + static constexpr size_t DelayLength{256u}; + + alignas(16) float DelayBuf[MAX_OUTPUT_CHANNELS][DelayLength]; + + BandSplitter LFilter, RFilter; + alignas(16) float LSplit[2][BUFFERSIZE]; + alignas(16) float RSplit[2][BUFFERSIZE]; + + alignas(16) float TempBuf[BUFFERSIZE + DelayLength]; + + DEF_NEWDEL(FrontStablizer) +}; + + struct MixParams { /* Coefficient channel mapping for mixing to the buffer. */ std::array<BFChannelConfig,MAX_OUTPUT_CHANNELS> AmbiMap{}; |