#include "Mult.hpp" void Mult::step() { float out = inputs[INA_INPUT].value; outputs[OUTA1_OUTPUT].value = out; outputs[OUTA2_OUTPUT].value = out; outputs[OUTA3_OUTPUT].value = out; if (inputs[INB_INPUT].active) { out = inputs[INB_INPUT].value; } outputs[OUTB1_OUTPUT].value = out; outputs[OUTB2_OUTPUT].value = out; outputs[OUTB3_OUTPUT].value = out; } struct MultWidget : ModuleWidget { static constexpr int hp = 3; MultWidget(Mult* module) : ModuleWidget(module) { box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { SVGPanel *panel = new SVGPanel(); panel->box.size = box.size; panel->setBackground(SVG::load(assetPlugin(plugin, "res/Mult.svg"))); addChild(panel); } addChild(Widget::create(Vec(0, 0))); addChild(Widget::create(Vec(box.size.x - 15, 365))); // generated by svg_widgets.rb auto inaInputPosition = Vec(10.5, 21.0); auto inbInputPosition = Vec(10.5, 181.0); auto outa1OutputPosition = Vec(10.5, 62.0); auto outa2OutputPosition = Vec(10.5, 92.0); auto outa3OutputPosition = Vec(10.5, 122.0); auto outb1OutputPosition = Vec(10.5, 222.0); auto outb2OutputPosition = Vec(10.5, 252.0); auto outb3OutputPosition = Vec(10.5, 282.0); // end generated by svg_widgets.rb addInput(Port::create(inaInputPosition, Port::INPUT, module, Mult::INA_INPUT)); addInput(Port::create(inbInputPosition, Port::INPUT, module, Mult::INB_INPUT)); addOutput(Port::create(outa1OutputPosition, Port::OUTPUT, module, Mult::OUTA1_OUTPUT)); addOutput(Port::create(outa2OutputPosition, Port::OUTPUT, module, Mult::OUTA2_OUTPUT)); addOutput(Port::create(outa3OutputPosition, Port::OUTPUT, module, Mult::OUTA3_OUTPUT)); addOutput(Port::create(outb1OutputPosition, Port::OUTPUT, module, Mult::OUTB1_OUTPUT)); addOutput(Port::create(outb2OutputPosition, Port::OUTPUT, module, Mult::OUTB2_OUTPUT)); addOutput(Port::create(outb3OutputPosition, Port::OUTPUT, module, Mult::OUTB3_OUTPUT)); } }; RACK_PLUGIN_MODEL_INIT(Bogaudio, Mult) { Model *modelMult = createModel("Bogaudio-Mult", "Mult", "multiple", MULTIPLE_TAG); return modelMult; }