2021-09-18 13:37:23 +02:00
|
|
|
#pragma once
|
|
|
|
|
2022-11-24 01:17:13 +01:00
|
|
|
class PConvSingle {
|
2023-03-02 02:37:55 +01:00
|
|
|
struct PConvData {
|
|
|
|
|
|
|
|
};
|
2021-09-18 13:37:23 +02:00
|
|
|
public:
|
2022-11-24 01:17:13 +01:00
|
|
|
PConvSingle();
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2022-11-24 01:17:13 +01:00
|
|
|
~PConvSingle();
|
2021-09-18 13:37:23 +02:00
|
|
|
|
|
|
|
void Reset();
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2021-09-18 13:37:23 +02:00
|
|
|
int GetFFTSize();
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2021-09-18 13:37:23 +02:00
|
|
|
int GetSegmentCount();
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2021-09-18 13:37:23 +02:00
|
|
|
int GetSegmentSize();
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2021-09-18 13:37:23 +02:00
|
|
|
bool InstanceUsable();
|
|
|
|
|
2022-08-23 00:26:44 +02:00
|
|
|
void Convolve(float *buffer);
|
|
|
|
|
|
|
|
void ConvolveInterleaved(float *buffer, int channel);
|
|
|
|
|
|
|
|
void ConvSegment(float *buffer, bool interleaved, int channel);
|
|
|
|
|
2023-05-21 18:46:20 +02:00
|
|
|
int LoadKernel(const float *kernel, int kernelSize, int segmentSize);
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2023-05-21 18:46:20 +02:00
|
|
|
int LoadKernel(const float *kernel, float param_3, int kernelSize, int segmentSize);
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2023-05-21 18:46:20 +02:00
|
|
|
int ProcessKernel(const float *kernel, int kernelSize, int param_4);
|
2021-09-18 13:37:23 +02:00
|
|
|
|
2023-05-21 18:46:20 +02:00
|
|
|
int ProcessKernel(const float *kernel, float param_3, int kernelSize, int param_5);
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2021-09-18 13:37:23 +02:00
|
|
|
void ReleaseResources();
|
2022-08-23 00:26:44 +02:00
|
|
|
|
2021-09-18 13:37:23 +02:00
|
|
|
void UnloadKernel();
|
|
|
|
|
2023-03-02 02:37:55 +01:00
|
|
|
bool instanceUsable;
|
|
|
|
int segmentCount;
|
|
|
|
int segmentSize;
|
|
|
|
PConvData *data;
|
2021-09-18 13:37:23 +02:00
|
|
|
};
|