diff options
Diffstat (limited to 'plugins/LV2/src/Air')
-rw-r--r-- | plugins/LV2/src/Air/Air.cpp | 77 | ||||
-rw-r--r-- | plugins/LV2/src/Air/Air.h | 13 |
2 files changed, 7 insertions, 83 deletions
diff --git a/plugins/LV2/src/Air/Air.cpp b/plugins/LV2/src/Air/Air.cpp index 0783317..9a9e1e3 100644 --- a/plugins/LV2/src/Air/Air.cpp +++ b/plugins/LV2/src/Air/Air.cpp @@ -2,84 +2,19 @@ #include <iostream> #include <lv2wrapper.h> -namespace { - -enum class PortIndex : uint32_t { - TAP22, - TAP15, - TAP11, - FILTERS_Q, - OUTPUT, - DRY_WET, - IN_L, - IN_R, - OUT_L, - OUT_R, -}; - -} // anon namespace - Air::Air(double rate) : LV2Plugin(rate) { } -void Air::connect_port(uint32_t port, void * data) -{ - switch (static_cast<PortIndex>(port)) { - case PortIndex::TAP22: - tap22 = static_cast<const float *>(data); - break; - - case PortIndex::TAP15: - tap15 = static_cast<const float *>(data); - break; - - case PortIndex::TAP11: - tap11 = static_cast<const float *>(data); - break; - - case PortIndex::FILTERS_Q: - filters_q = static_cast<const float *>(data); - break; - - case PortIndex::OUTPUT: - out_level = static_cast<const float *>(data); - break; - - case PortIndex::DRY_WET: - dry_wet = 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 Air::run(uint32_t num_samples) { - A = *tap22; - B = *tap15; - C = *tap11; - D = *filters_q; - E = *out_level; - F = *dry_wet; + 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/Air/Air.h b/plugins/LV2/src/Air/Air.h index 580650a..2ff3877 100644 --- a/plugins/LV2/src/Air/Air.h +++ b/plugins/LV2/src/Air/Air.h @@ -4,11 +4,10 @@ #include <cstdint> #include <lv2plugin.h> -class Air : protected LV2Plugin { +class Air : public LV2Plugin<6> { public: Air(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/air"; @@ -21,16 +20,6 @@ private: void processReplacing(float **in, float **out, VstInt32 samples); void processDoubleReplacing(double **in, double **out, VstInt32 samples); - const float * tap22; - const float * tap15; - const float * tap11; - const float * filters_q; - const float * out_level; - const float * dry_wet; - - const float * in[2]; - float * out[2]; - /* * Members needed by the processing functions. */ |