ViPERFX_RE/src/viper/effects/Convolver.h

47 lines
1.2 KiB
C
Raw Normal View History

#pragma once
#include <cstdint>
2022-11-24 01:17:13 +01:00
#include "../utils/WaveBuffer.h"
#include "../utils/PConvSingle.h"
class Convolver {
public:
Convolver();
~Convolver();
void CommitKernelBuffer(uint32_t param_1, uint32_t param_2, uint32_t kernelId);
bool GetEnabled();
uint32_t GetKernelID();
2023-03-01 19:38:35 +01:00
void PrepareKernelBuffer(uint32_t param_1, uint32_t param_2, int32_t param_3);
2022-10-06 03:37:22 +02:00
uint32_t Process(float *source, float *dest, uint32_t frameSize);
void Reset();
void SetCrossChannel(float param_1);
void SetEnable(bool enabled);
2023-03-01 19:38:35 +01:00
void SetKernel(float *buf, uint32_t len);
void SetKernelBuffer(uint32_t param_1, float *buf, uint32_t len);
void SetKernelStereo(float *param_1, float *param_2, uint32_t param_3);
void SetSamplingRate(uint32_t param_1);
2022-11-24 01:17:13 +01:00
private:
WaveBuffer *waveBufferL;
WaveBuffer *waveBufferR;
PConvSingle kernelCh1;
PConvSingle kernelCh2;
PConvSingle kernelCh3;
PConvSingle kernelCh4;
char kernelFilePath[256];
uint32_t kernelId;
2023-03-01 19:38:35 +01:00
float *unknown1;
uint32_t unknown2;
uint32_t unknown3;
uint32_t unknown4;
uint32_t unknown5;
2022-11-24 01:17:13 +01:00
int isQuadChannel;
float crossChannel;
bool isValidCrossChannel;
uint32_t samplingRate;
bool enable;
};