aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/ADClip7/ADClip7.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/LV2/src/ADClip7/ADClip7.h')
-rw-r--r--plugins/LV2/src/ADClip7/ADClip7.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/plugins/LV2/src/ADClip7/ADClip7.h b/plugins/LV2/src/ADClip7/ADClip7.h
new file mode 100644
index 0000000..3ec6033
--- /dev/null
+++ b/plugins/LV2/src/ADClip7/ADClip7.h
@@ -0,0 +1,60 @@
+#ifndef __ADClip7_H
+#define __ADClip7_H
+
+#include <cstdint>
+
+// Required typa alias for VTS processing funcs.
+using VstInt32 = int32_t;
+
+class ADClip7 {
+public:
+ ADClip7(double rate);
+
+ void connect_port(uint32_t port, void * data);
+ void run(uint32_t num_samples);
+
+private:
+ void processReplacing(float **in, float **out, VstInt32 samples);
+ void processDoubleReplacing(double **in, double **out, VstInt32 samples);
+
+ double getSampleRate();
+
+ double rate;
+
+ // Pointers to control ports
+ const float * boost;
+ const float * soften;
+ const float * enhance;
+ const float * mode;
+
+ // Pointer to audio buffers
+ const float * in[2];
+ float * out[2];
+
+ // Temp values used by the processing code
+ float A;
+ float B;
+ float C;
+ float D;
+
+ // To keep state between runs
+ long double fpNShapeL;
+ long double fpNShapeR;
+
+ //default stuff
+ long double lastSampleL;
+ long double lastSampleR;
+ float bL[22200];
+ float bR[22200];
+ int gcount;
+ double lowsL;
+ double lowsR;
+ double iirLowsAL;
+ double iirLowsAR;
+ double iirLowsBL;
+ double iirLowsBR;
+ long double refclipL;
+ long double refclipR;
+};
+
+#endif