3#ifndef QAMBISONICDECODER_P_H
4#define QAMBISONICDECODER_P_H
17#include <QtSpatialAudio/private/qtspatialaudioglobal_p.h>
18#include <QtMultimedia/qaudioformat.h>
22struct QAmbisonicDecoderData;
44 int outputSize(
int nSamples)
const {
return outputChannels * nSamples; }
47 void processBuffer(
const float *input[],
float *output,
int nSamples);
48 void processBuffer(
const float *input[],
short *output,
int nSamples);
56 QAudioFormat::ChannelConfig channelConfig;
58 int inputChannels = 0;
59 int outputChannels = 0;
60 const QAmbisonicDecoderData *decoderData =
nullptr;
62 float *simpleDecoderFactors =
nullptr;
63 const float *reverbFactors =
nullptr;
QAmbisonicDecoderFilter()=default
void configure(float sampleRate, float cutoffFrequency=380)
static constexpr int maxAmbisonicOrder
int nInputChannels() const
QAmbisonicDecoder(AmbisonicOrder ambisonicOrder, const QAudioFormat &format)
static constexpr int maxAmbisonicChannels
int nOutputChannels() const
void processBuffer(const float *input[], float *output, int nSamples)
void processBuffer(const float *input[], short *output, int nSamples)
int outputSize(int nSamples) const
bool hasValidConfig() const
void processBufferWithReverb(const float *input[], const float *reverb[2], short *output, int nSamples)
static constexpr QAmbisonicDecoderData decoderMap[]
constexpr float reverb_x_1[]
constexpr float reverb_x_0[]