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.

110 lines
2.5KB

  1. #include "turing-module-widget.hh"
  2. #include "turing-module.hh"
  3. namespace rack_plugin_Skylights {
  4. turing_module_widget::turing_module_widget(Module* module) : ModuleWidget(module) {
  5. setPanel(SVG::load(assetPlugin(plugin, "res/Alan.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(63, 167),
  12. Port::INPUT,
  13. module,
  14. turing_module::I_MODE));
  15. addInput(Port::create<DavidLTPort>
  16. (Vec(4.5, 173),
  17. Port::INPUT,
  18. module,
  19. turing_module::I_CLOCK));
  20. addOutput(Port::create<DavidLTPort>
  21. (Vec(64, 317),
  22. Port::OUTPUT,
  23. module,
  24. turing_module::O_VOLTAGE));
  25. addOutput(Port::create<DavidLTPort>
  26. (Vec(116, 317),
  27. Port::OUTPUT,
  28. module,
  29. turing_module::O_EXPANSION));
  30. addOutput(Port::create<DavidLTPort>
  31. (Vec(90, 274),
  32. Port::OUTPUT,
  33. module,
  34. turing_module::O_PULSE));
  35. addOutput(Port::create<DavidLTPort>
  36. (Vec(90, 317),
  37. Port::OUTPUT,
  38. module,
  39. turing_module::O_GATE));
  40. addParam(ParamWidget::create<RoundHugeBlackKnob>
  41. (Vec(47, 80),
  42. module,
  43. turing_module::P_MODE,
  44. 0.0,
  45. 1.0,
  46. 1.0));
  47. addParam(ParamWidget::create<RoundSmallBlackKnob>
  48. (Vec(34, 320),
  49. module,
  50. turing_module::P_SCALE,
  51. 0.0,
  52. 10.0,
  53. 1.0));
  54. addParam(ParamWidget::create<RoundBlackSnapKnob>
  55. (Vec(61, 215),
  56. module,
  57. turing_module::P_LENGTH,
  58. 2.0,
  59. 16.0,
  60. 8.0));
  61. addParam(ParamWidget::create<CKSS>
  62. (Vec(10, 320),
  63. module,
  64. turing_module::P_POLE,
  65. 0.0,
  66. 1.0,
  67. 0.0));
  68. addParam(ParamWidget::create<CKSS>
  69. (Vec(121, 175),
  70. module,
  71. turing_module::P_WRITE,
  72. 0.0,
  73. 1.0,
  74. 0.0));
  75. for (size_t i = 0;
  76. i < 8;
  77. i++)
  78. {
  79. addChild(ModuleLightWidget::create<MediumLight<BlueLight>>
  80. (Vec(18 + (15 * i), 50),
  81. module,
  82. turing_module::L_LIGHT1 + i));
  83. }
  84. }
  85. } // namespace rack_plugin_Skylights
  86. using namespace rack_plugin_Skylights;
  87. RACK_PLUGIN_MODEL_INIT(Skylights, turing_model) {
  88. Model *turing_model = Model::create<turing_module, turing_module_widget>("Skylights", "SkTuringV2", "SK Alan (Turing Machine)", SEQUENCER_TAG);
  89. return turing_model;
  90. }