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.

80 lines
2.1KB

  1. #include "turing-vactrol-module-widget.hh"
  2. #include "turing-vactrol-module.hh"
  3. namespace rack_plugin_Skylights {
  4. turing_vactrol_module_widget::turing_vactrol_module_widget(Module* module) : ModuleWidget(module) {
  5. setPanel(SVG::load(assetPlugin(plugin, "res/AlanVactrol.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(10, 40),
  12. Port::INPUT,
  13. module,
  14. turing_vactrol_module::I_EXPANDER));
  15. for (size_t i = 0;
  16. i < 4;
  17. i++)
  18. {
  19. addInput(Port::create<DavidLTPort>
  20. (Vec(10, 100 + (30 * i)),
  21. Port::INPUT,
  22. module,
  23. turing_vactrol_module::I_INPUT1 + i));
  24. }
  25. size_t y = 0;
  26. for (size_t i = 0;
  27. i < 4;
  28. i++)
  29. {
  30. addParam(ParamWidget::create<RoundBlackKnob>
  31. (Vec(60, 80 + (50 * i)),
  32. module,
  33. turing_vactrol_module::P_VOL1 + i,
  34. -1.0,
  35. 1.0,
  36. 0.0));
  37. addChild(ModuleLightWidget::create<MediumLight<BlueLight>>
  38. (Vec(63, 65 + (50 * i)),
  39. module,
  40. turing_vactrol_module::L_GATE1 + y++));
  41. addChild(ModuleLightWidget::create<MediumLight<BlueLight>>
  42. (Vec(78, 65 + (50 * i)),
  43. module,
  44. turing_vactrol_module::L_GATE1 + y++));
  45. }
  46. addOutput(Port::create<DavidLTPort>
  47. (Vec(10, 300),
  48. Port::OUTPUT,
  49. module,
  50. turing_vactrol_module::O_LEFT));
  51. addOutput(Port::create<DavidLTPort>
  52. (Vec(40, 300),
  53. Port::OUTPUT,
  54. module,
  55. turing_vactrol_module::O_RIGHT));
  56. }
  57. } // namespace rack_plugin_Skylights
  58. using namespace rack_plugin_Skylights;
  59. RACK_PLUGIN_MODEL_INIT(Skylights, turing_vactrol_model) {
  60. Model *turing_vactrol_model =
  61. Model::create<turing_vactrol_module,
  62. turing_vactrol_module_widget>
  63. ("Skylights",
  64. "SkTuringVactrol",
  65. "SK Alan (Vactrol Mix Expander)",
  66. UTILITY_TAG);
  67. return turing_vactrol_model;
  68. }