#include #include "Squinky.hpp" #include "WidgetComposite.h" #include "Blank.h" /** */ struct BlankModule : Module { public: BlankModule(); /** * * Overrides of Module functions */ void step() override; void onSampleRateChange() override; Blank blank; private: }; void BlankModule::onSampleRateChange() { } BlankModule::BlankModule() : Module(blank.NUM_PARAMS, blank.NUM_INPUTS, blank.NUM_OUTPUTS, blank.NUM_LIGHTS), blank(this) { onSampleRateChange(); blank.init(); } void BlankModule::step() { blank.step(); } //////////////////// // module widget //////////////////// struct BlankWidget : ModuleWidget { BlankWidget(BlankModule *); Label* addLabel(const Vec& v, const char* str, const NVGcolor& color = COLOR_BLACK) { Label* label = new Label(); label->box.pos = v; label->text = str; label->color = color; addChild(label); return label; } }; /** * Widget constructor will describe my implementation structure and * provide meta-data. * This is not shared by all modules in the DLL, just one */ BlankWidget::BlankWidget(BlankModule *module) : ModuleWidget(module) { box.size = Vec(6 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT); { SVGPanel *panel = new SVGPanel(); panel->box.size = box.size; panel->setBackground(SVG::load(assetPlugin(plugin, "res/blank_panel.svg"))); addChild(panel); } // screws addChild(Widget::create(Vec(RACK_GRID_WIDTH, 0))); addChild(Widget::create(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); addChild(Widget::create(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); addChild(Widget::create(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); } RACK_PLUGIN_MODEL_INIT(squinkylabs_plug1, Blank) { Model *modelBlankModule = Model::create("Squinky Labs", "squinkylabs-blank", "-- Blank --", RANDOM_TAG); return modelBlankModule; }