1 #ifndef CORE_FRONT_STABLIZER_H
2 #define CORE_FRONT_STABLIZER_H
8 #include "bufferline.h"
9 #include "filters/splitter.h"
10 #include "flexarray.h"
13 struct FrontStablizer
{
14 FrontStablizer(size_t numchans
) : ChannelFilters
{numchans
} { }
16 alignas(16) std::array
<float,BufferLineSize
> MidDirect
{};
17 alignas(16) std::array
<float,BufferLineSize
> Side
{};
18 alignas(16) std::array
<float,BufferLineSize
> Temp
{};
20 BandSplitter MidFilter
;
21 alignas(16) FloatBufferLine MidLF
{};
22 alignas(16) FloatBufferLine MidHF
{};
24 al::FlexArray
<BandSplitter
,16> ChannelFilters
;
26 static std::unique_ptr
<FrontStablizer
> Create(size_t numchans
)
27 { return std::unique_ptr
<FrontStablizer
>{new(FamCount(numchans
)) FrontStablizer
{numchans
}}; }
29 DEF_FAM_NEWDEL(FrontStablizer
, ChannelFilters
)
32 #endif /* CORE_FRONT_STABLIZER_H */