diff options
Diffstat (limited to 'alc/uhjfilter.h')
-rw-r--r-- | alc/uhjfilter.h | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/alc/uhjfilter.h b/alc/uhjfilter.h deleted file mode 100644 index 4984bcab..00000000 --- a/alc/uhjfilter.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef UHJFILTER_H -#define UHJFILTER_H - -#include <array> - -#include "almalloc.h" -#include "core/bufferline.h" - - -struct Uhj2Encoder { - /* A particular property of the filter allows it to cover nearly twice its - * length, so the filter size is also the effective delay (despite being - * center-aligned). - */ - constexpr static size_t sFilterSize{128}; - - /* Delays for the unfiltered signal. */ - alignas(16) std::array<float,sFilterSize> mMidDelay{}; - alignas(16) std::array<float,sFilterSize> mSideDelay{}; - - alignas(16) std::array<float,BufferLineSize+sFilterSize> mMid{}; - alignas(16) std::array<float,BufferLineSize+sFilterSize> mSide{}; - - /* History for the FIR filter. */ - alignas(16) std::array<float,sFilterSize*2 - 1> mSideHistory{}; - - alignas(16) std::array<float,BufferLineSize + sFilterSize*2> mTemp{}; - - /** - * Encodes a 2-channel UHJ (stereo-compatible) signal from a B-Format input - * signal. The input must use FuMa channel ordering and scaling. - */ - void encode(FloatBufferLine &LeftOut, FloatBufferLine &RightOut, - const FloatBufferLine *InSamples, const size_t SamplesToDo); - - DEF_NEWDEL(Uhj2Encoder) -}; - -#endif /* UHJFILTER_H */ |