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.

67 lines
1.9KB

  1. #include "turing-pulse-module-widget.hh"
  2. #include "turing-pulse-module.hh"
  3. namespace rack_plugin_Skylights {
  4. turing_pulse_module_widget::turing_pulse_module_widget(Module* module) : ModuleWidget(module) {
  5. setPanel(SVG::load(assetPlugin(plugin, "res/AlanPulses.svg")));
  6. addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
  7. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
  8. addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  9. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  10. addInput(Port::create<DavidLTPort>
  11. (Vec(25, 45),
  12. Port::INPUT,
  13. module,
  14. turing_pulse_module::I_EXPANDER));
  15. addInput(Port::create<DavidLTPort>
  16. (Vec(65, 45),
  17. Port::INPUT,
  18. module,
  19. turing_pulse_module::I_PULSE));
  20. for (size_t i = 0;
  21. i < 7;
  22. i++)
  23. {
  24. addOutput(Port::create<DavidLTPort>
  25. (Vec(15, 80 + (30 * i)),
  26. Port::OUTPUT,
  27. module,
  28. turing_pulse_module::O_GATE1 + i));
  29. addChild(ModuleLightWidget::create<MediumLight<BlueLight>>
  30. (Vec(43, 88 + (30 * i)),
  31. module,
  32. turing_pulse_module::L_GATE1 + i));
  33. }
  34. for (size_t i = 0;
  35. i < 4;
  36. i++)
  37. {
  38. addOutput(Port::create<DavidLTPort>
  39. (Vec(95, 80 + (60 * i)),
  40. Port::OUTPUT,
  41. module,
  42. turing_pulse_module::O_GATE1P2 + i));
  43. addChild(ModuleLightWidget::create<MediumLight<BlueLight>>
  44. (Vec(123, 88 + (60 * i)),
  45. module,
  46. turing_pulse_module::L_GATE1P2 + i));
  47. }
  48. }
  49. } // namespace rack_plugin_Skylights
  50. using namespace rack_plugin_Skylights;
  51. RACK_PLUGIN_MODEL_INIT(Skylights, turing_pulse_model) {
  52. Model *turing_pulse_model = Model::create<turing_pulse_module, turing_pulse_module_widget>("Skylights", "SkTuringPulse", "SK Alan (Pulse Expander)", UTILITY_TAG);
  53. return turing_pulse_model;
  54. }