]> git.tdb.fi Git - ext/openal.git/blob - core/front_stablizer.h
Tweak some types to work around an MSVC compile error
[ext/openal.git] / core / front_stablizer.h
1 #ifndef CORE_FRONT_STABLIZER_H
2 #define CORE_FRONT_STABLIZER_H
3
4 #include <array>
5 #include <memory>
6
7 #include "almalloc.h"
8 #include "bufferline.h"
9 #include "filters/splitter.h"
10
11
12 struct FrontStablizer {
13     FrontStablizer(size_t numchans) : ChannelFilters{numchans} { }
14
15     alignas(16) std::array<float,BufferLineSize> MidDirect{};
16     alignas(16) std::array<float,BufferLineSize> Side{};
17     alignas(16) std::array<float,BufferLineSize> Temp{};
18
19     BandSplitter MidFilter;
20     alignas(16) FloatBufferLine MidLF{};
21     alignas(16) FloatBufferLine MidHF{};
22
23     al::FlexArray<BandSplitter,16> ChannelFilters;
24
25     static std::unique_ptr<FrontStablizer> Create(size_t numchans)
26     { return std::unique_ptr<FrontStablizer>{new(FamCount(numchans)) FrontStablizer{numchans}}; }
27
28     DEF_FAM_NEWDEL(FrontStablizer, ChannelFilters)
29 };
30
31 #endif /* CORE_FRONT_STABLIZER_H */