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.

86 lines
3.8KB

  1. #include "../controller/PrimeClockDivider.hpp"
  2. #include "../../deps/rack-components/jacks.hpp"
  3. #include "../../deps/rack-components/screws.hpp"
  4. namespace rack_plugin_SynthKit {
  5. struct PrimeClockDividerWidget : ModuleWidget {
  6. PrimeClockDividerWidget(PrimeClockDividerModule *module);
  7. };
  8. PrimeClockDividerWidget::PrimeClockDividerWidget(
  9. PrimeClockDividerModule *module)
  10. : ModuleWidget(module) {
  11. box.size = Vec(3 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT);
  12. {
  13. SVGPanel *panel = new SVGPanel();
  14. panel->box.size = box.size;
  15. panel->setBackground(
  16. SVG::load(assetPlugin(plugin, "res/PrimeClockDivider.svg")));
  17. addChild(panel);
  18. }
  19. addChild(Widget::create<JLHHexScrew>(Vec(1, 1)));
  20. addChild(Widget::create<JLHHexScrew>(Vec(31, 366)));
  21. addInput(Port::create<RCJackSmallLight>(Vec(10.23, 73), Port::INPUT, module,
  22. PrimeClockDividerModule::TOP_INPUT));
  23. addInput(
  24. Port::create<RCJackSmallLight>(Vec(10.23, 115), Port::INPUT, module,
  25. PrimeClockDividerModule::RESET_INPUT));
  26. addOutput(
  27. Port::create<RCJackSmallDark>(Vec(10.23, 158), Port::OUTPUT, module,
  28. PrimeClockDividerModule::FIRST_OUTPUT));
  29. addOutput(
  30. Port::create<RCJackSmallDark>(Vec(10.23, 179), Port::OUTPUT, module,
  31. PrimeClockDividerModule::SECOND_OUTPUT));
  32. addOutput(
  33. Port::create<RCJackSmallDark>(Vec(10.23, 200), Port::OUTPUT, module,
  34. PrimeClockDividerModule::THIRD_OUTPUT));
  35. addOutput(
  36. Port::create<RCJackSmallDark>(Vec(10.23, 221), Port::OUTPUT, module,
  37. PrimeClockDividerModule::FOURTH_OUTPUT));
  38. addOutput(
  39. Port::create<RCJackSmallDark>(Vec(10.23, 242), Port::OUTPUT, module,
  40. PrimeClockDividerModule::FIFTH_OUTPUT));
  41. addOutput(
  42. Port::create<RCJackSmallDark>(Vec(10.23, 263), Port::OUTPUT, module,
  43. PrimeClockDividerModule::SIXTH_OUTPUT));
  44. addOutput(
  45. Port::create<RCJackSmallDark>(Vec(10.23, 284), Port::OUTPUT, module,
  46. PrimeClockDividerModule::SEVENTH_OUTPUT));
  47. addOutput(
  48. Port::create<RCJackSmallDark>(Vec(10.23, 305), Port::OUTPUT, module,
  49. PrimeClockDividerModule::EIGHTH_OUTPUT));
  50. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  51. Vec(36.5, 167.06), module, PrimeClockDividerModule::FIRST_LED));
  52. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  53. Vec(36.5, 188.06), module, PrimeClockDividerModule::SECOND_LED));
  54. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  55. Vec(36.5, 209.06), module, PrimeClockDividerModule::THIRD_LED));
  56. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  57. Vec(36.5, 230.06), module, PrimeClockDividerModule::FOURTH_LED));
  58. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  59. Vec(36.5, 251.06), module, PrimeClockDividerModule::FIFTH_LED));
  60. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  61. Vec(36.5, 272.06), module, PrimeClockDividerModule::SIXTH_LED));
  62. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  63. Vec(36.5, 293.06), module, PrimeClockDividerModule::SEVENTH_LED));
  64. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  65. Vec(36.5, 314.06), module, PrimeClockDividerModule::EIGHTH_LED));
  66. }
  67. } // namespace rack_plugin_SynthKit
  68. using namespace rack_plugin_SynthKit;
  69. RACK_PLUGIN_MODEL_INIT(SynthKit, PrimeClockDivider) {
  70. Model *modelPrimeClockDivider =
  71. Model::create<PrimeClockDividerModule, PrimeClockDividerWidget>(
  72. "SynthKit", "Prime Clock Divider", "Prime Clock Divider", UTILITY_TAG,
  73. CLOCK_TAG);
  74. return modelPrimeClockDivider;
  75. }