#pragma once /** * Base class for composites embeddable in a VCV Widget * This is used for "real" implementations */ class WidgetComposite { public: WidgetComposite(Module * parent) : inputs(parent->inputs), outputs(parent->outputs), params(parent->params), lights(parent->lights), module(parent) { } virtual void step() { }; float engineGetSampleRate() { return ::engineGetSampleRate(); } float engineGetSampleTime() { return ::engineGetSampleTime(); } protected: std::vector& inputs; std::vector& outputs; std::vector& params; std::vector& lights; private: Module * const module; };