You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.2KB

  1. #include "Mult.hpp"
  2. void Mult::step() {
  3. float out = inputs[INA_INPUT].value;
  4. outputs[OUTA1_OUTPUT].value = out;
  5. outputs[OUTA2_OUTPUT].value = out;
  6. outputs[OUTA3_OUTPUT].value = out;
  7. if (inputs[INB_INPUT].active) {
  8. out = inputs[INB_INPUT].value;
  9. }
  10. outputs[OUTB1_OUTPUT].value = out;
  11. outputs[OUTB2_OUTPUT].value = out;
  12. outputs[OUTB3_OUTPUT].value = out;
  13. }
  14. struct MultWidget : ModuleWidget {
  15. static constexpr int hp = 3;
  16. MultWidget(Mult* module) : ModuleWidget(module) {
  17. box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT);
  18. {
  19. SVGPanel *panel = new SVGPanel();
  20. panel->box.size = box.size;
  21. panel->setBackground(SVG::load(assetPlugin(plugin, "res/Mult.svg")));
  22. addChild(panel);
  23. }
  24. addChild(Widget::create<ScrewSilver>(Vec(0, 0)));
  25. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 15, 365)));
  26. // generated by svg_widgets.rb
  27. auto inaInputPosition = Vec(10.5, 21.0);
  28. auto inbInputPosition = Vec(10.5, 181.0);
  29. auto outa1OutputPosition = Vec(10.5, 62.0);
  30. auto outa2OutputPosition = Vec(10.5, 92.0);
  31. auto outa3OutputPosition = Vec(10.5, 122.0);
  32. auto outb1OutputPosition = Vec(10.5, 222.0);
  33. auto outb2OutputPosition = Vec(10.5, 252.0);
  34. auto outb3OutputPosition = Vec(10.5, 282.0);
  35. // end generated by svg_widgets.rb
  36. addInput(Port::create<Port24>(inaInputPosition, Port::INPUT, module, Mult::INA_INPUT));
  37. addInput(Port::create<Port24>(inbInputPosition, Port::INPUT, module, Mult::INB_INPUT));
  38. addOutput(Port::create<Port24>(outa1OutputPosition, Port::OUTPUT, module, Mult::OUTA1_OUTPUT));
  39. addOutput(Port::create<Port24>(outa2OutputPosition, Port::OUTPUT, module, Mult::OUTA2_OUTPUT));
  40. addOutput(Port::create<Port24>(outa3OutputPosition, Port::OUTPUT, module, Mult::OUTA3_OUTPUT));
  41. addOutput(Port::create<Port24>(outb1OutputPosition, Port::OUTPUT, module, Mult::OUTB1_OUTPUT));
  42. addOutput(Port::create<Port24>(outb2OutputPosition, Port::OUTPUT, module, Mult::OUTB2_OUTPUT));
  43. addOutput(Port::create<Port24>(outb3OutputPosition, Port::OUTPUT, module, Mult::OUTB3_OUTPUT));
  44. }
  45. };
  46. RACK_PLUGIN_MODEL_INIT(Bogaudio, Mult) {
  47. Model *modelMult = createModel<Mult, MultWidget>("Bogaudio-Mult", "Mult", "multiple", MULTIPLE_TAG);
  48. return modelMult;
  49. }