#include #include // Required typa alias for VTS processing funcs. using VstInt32 = int32_t; template class LV2Plugin { public: LV2Plugin(double frame_rate) : rate(frame_rate) {} virtual ~LV2Plugin() {} void connect_port(uint32_t port, void * data) { if (port < nparams) { params[port] = static_cast(data); } else if (port < nparams + ninputs) { in[port - nparams] = static_cast(data); } else if (port < nparams + ninputs + noutputs) { out[port - nparams - ninputs] = static_cast(data); } else { std::cerr << "Invalid port " << port << ": ignoring." << std::endl; } } double getSampleRate() const { return rate; } virtual void activate() {} virtual void deactivate() {} const float * params[nparams]; const float * in[ninputs]; float * out[noutputs]; private: double rate; };