#include "ADT.h" #include #include 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(port)) { case PortIndex::HEADRM: headroom = static_cast(data); break; case PortIndex::A_DELAY: a_delay = static_cast(data); break; case PortIndex::A_LEVEL: a_level = static_cast(data); break; case PortIndex::B_DELAY: b_delay = static_cast(data); break; case PortIndex::B_LEVEL: b_level = static_cast(data); break; case PortIndex::OUTPUT: out_level = static_cast(data); break; case PortIndex::IN_L: in[0] = static_cast(data); break; case PortIndex::IN_R: in[1] = static_cast(data); break; case PortIndex::OUT_L: out[0] = static_cast(data); break; case PortIndex::OUT_R: out[1] = static_cast(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; processReplacing(const_cast(in), out, num_samples); } // // Include the processing code from the VST version. // #include #include "../../../LinuxVST/src/ADT/ADTProc.cpp" // Create the LV2Wrapper and register the plugin LV2Wrapper accel;