aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/Acceleration
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/LV2/src/Acceleration')
-rw-r--r--plugins/LV2/src/Acceleration/Acceleration.cpp49
-rw-r--r--plugins/LV2/src/Acceleration/Acceleration.h9
2 files changed, 5 insertions, 53 deletions
diff --git a/plugins/LV2/src/Acceleration/Acceleration.cpp b/plugins/LV2/src/Acceleration/Acceleration.cpp
index 840d0f3..3499537 100644
--- a/plugins/LV2/src/Acceleration/Acceleration.cpp
+++ b/plugins/LV2/src/Acceleration/Acceleration.cpp
@@ -2,60 +2,17 @@
#include <iostream>
#include <lv2wrapper.h>
-namespace {
-
-enum class PortIndex : uint32_t {
- LIMIT,
- DRYWET,
- IN_L,
- IN_R,
- OUT_L,
- OUT_R,
-};
-
-} // anon namespace
-
Acceleration::Acceleration(double rate)
: LV2Plugin(rate)
{
}
-void Acceleration::connect_port(uint32_t port, void * data)
-{
- switch (static_cast<PortIndex>(port)) {
- case PortIndex::LIMIT:
- limit = (const float *) data;
- break;
-
- case PortIndex::DRYWET:
- drywet = (const float *) data;
- break;
-
- case PortIndex::IN_L:
- in[0] = (const float *) data;
- break;
-
- case PortIndex::IN_R:
- in[1] = (const float *) data;
- break;
-
- case PortIndex::OUT_L:
- out[0] = (float *) data;
- break;
-
- case PortIndex::OUT_R:
- out[1] = (float *) data;
- break;
-
- default:
- std::cerr << "Invalid port " << port << ": ignoring." << std::endl;
- }
-}
void Acceleration::run(uint32_t num_samples)
{
- A = *limit;
- B = *drywet;
+ A = *params[0];
+ B = *params[1];
+
processReplacing(const_cast<float **>(in), out, num_samples);
}
diff --git a/plugins/LV2/src/Acceleration/Acceleration.h b/plugins/LV2/src/Acceleration/Acceleration.h
index 0971045..a038a12 100644
--- a/plugins/LV2/src/Acceleration/Acceleration.h
+++ b/plugins/LV2/src/Acceleration/Acceleration.h
@@ -1,14 +1,14 @@
#ifndef __Acceleration_H
#define __Acceleration_H
+#include <cstddef>
#include <cstdint>
#include <lv2plugin.h>
-class Acceleration : protected LV2Plugin {
+class Acceleration : public LV2Plugin<2> {
public:
Acceleration(double rate);
- void connect_port(uint32_t port, void * data);
void run(uint32_t num_samples);
static constexpr const char * URI = "https://www.airwindows.com/acceleration";
@@ -21,11 +21,6 @@ private:
void processReplacing(float **in, float **out, VstInt32 samples);
void processDoubleReplacing(double **in, double **out, VstInt32 samples);
- const float * limit;
- const float * drywet;
- const float * in[2];
- float * out[2];
-
// Temp values used by the processing code
double A; // Value of limit when processing called
double B; // Value of dry/wet when processing called