aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/LV2/src/ADT
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/LV2/src/ADT')
-rw-r--r--plugins/LV2/src/ADT/ADT.cpp77
-rw-r--r--plugins/LV2/src/ADT/ADT.h13
2 files changed, 7 insertions, 83 deletions
diff --git a/plugins/LV2/src/ADT/ADT.cpp b/plugins/LV2/src/ADT/ADT.cpp
index 66423b2..5f5e6e0 100644
--- a/plugins/LV2/src/ADT/ADT.cpp
+++ b/plugins/LV2/src/ADT/ADT.cpp
@@ -2,84 +2,19 @@
#include <iostream>
#include <lv2wrapper.h>
-namespace {
-
-enum class PortIndex : uint32_t {
- HEADRM,
- A_DELAY,
- A_LEVEL,
- B_DELAY,
- B_LEVEL,
- OUTPUT,
- IN_L,
- IN_R,
- OUT_L,
- OUT_R,
-};
-
-} // anon namespace
-
ADT::ADT(double rate)
: LV2Plugin(rate)
{
}
-void ADT::connect_port(uint32_t port, void * data)
-{
- switch (static_cast<PortIndex>(port)) {
- case PortIndex::HEADRM:
- headroom = static_cast<const float *>(data);
- break;
-
- case PortIndex::A_DELAY:
- a_delay = static_cast<const float *>(data);
- break;
-
- case PortIndex::A_LEVEL:
- a_level = static_cast<const float *>(data);
- break;
-
- case PortIndex::B_DELAY:
- b_delay = static_cast<const float *>(data);
- break;
-
- case PortIndex::B_LEVEL:
- b_level = static_cast<const float *>(data);
- break;
-
- case PortIndex::OUTPUT:
- out_level = static_cast<const float *>(data);
- break;
-
- case PortIndex::IN_L:
- in[0] = static_cast<const float *>(data);
- break;
-
- case PortIndex::IN_R:
- in[1] = static_cast<const float *>(data);
- break;
-
- case PortIndex::OUT_L:
- out[0] = static_cast<float *>(data);
- break;
-
- case PortIndex::OUT_R:
- out[1] = static_cast<float *>(data);
- break;
-
- default:
- std::cerr << "Invalid port " << port << ": ignoring." << std::endl;
- }
-}
-
void ADT::run(uint32_t num_samples)
{
- A = *headroom;
- B = *a_delay;
- C = *a_level;
- D = *b_delay;
- E = *b_level;
- F = *out_level;
+ A = *params[0];
+ B = *params[1];
+ C = *params[2];
+ D = *params[3];
+ E = *params[4];
+ F = *params[5];
processReplacing(const_cast<float **>(in), out, num_samples);
}
diff --git a/plugins/LV2/src/ADT/ADT.h b/plugins/LV2/src/ADT/ADT.h
index e76ae87..fb6aab4 100644
--- a/plugins/LV2/src/ADT/ADT.h
+++ b/plugins/LV2/src/ADT/ADT.h
@@ -4,11 +4,10 @@
#include <cstdint>
#include <lv2plugin.h>
-class ADT : protected LV2Plugin {
+class ADT : public LV2Plugin<6> {
public:
ADT(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/adt";
@@ -21,16 +20,6 @@ private:
void processReplacing(float **in, float **out, VstInt32 samples);
void processDoubleReplacing(double **in, double **out, VstInt32 samples);
- const float * headroom;
- const float * a_delay;
- const float * a_level;
- const float * b_delay;
- const float * b_level;
- const float * out_level;
-
- const float * in[2];
- float * out[2];
-
/*
* Members needed by the processing functions.
*/