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.

97 lines
2.2KB

  1. #include <sstream>
  2. #include "Squinky.hpp"
  3. #include "WidgetComposite.h"
  4. #include "Blank.h"
  5. /**
  6. */
  7. struct BlankModule : Module
  8. {
  9. public:
  10. BlankModule();
  11. /**
  12. *
  13. * Overrides of Module functions
  14. */
  15. void step() override;
  16. void onSampleRateChange() override;
  17. Blank<WidgetComposite> blank;
  18. private:
  19. };
  20. void BlankModule::onSampleRateChange()
  21. {
  22. }
  23. BlankModule::BlankModule()
  24. : Module(blank.NUM_PARAMS,
  25. blank.NUM_INPUTS,
  26. blank.NUM_OUTPUTS,
  27. blank.NUM_LIGHTS),
  28. blank(this)
  29. {
  30. onSampleRateChange();
  31. blank.init();
  32. }
  33. void BlankModule::step()
  34. {
  35. blank.step();
  36. }
  37. ////////////////////
  38. // module widget
  39. ////////////////////
  40. struct BlankWidget : ModuleWidget
  41. {
  42. BlankWidget(BlankModule *);
  43. Label* addLabel(const Vec& v, const char* str, const NVGcolor& color = COLOR_BLACK)
  44. {
  45. Label* label = new Label();
  46. label->box.pos = v;
  47. label->text = str;
  48. label->color = color;
  49. addChild(label);
  50. return label;
  51. }
  52. };
  53. /**
  54. * Widget constructor will describe my implementation structure and
  55. * provide meta-data.
  56. * This is not shared by all modules in the DLL, just one
  57. */
  58. BlankWidget::BlankWidget(BlankModule *module) : ModuleWidget(module)
  59. {
  60. box.size = Vec(6 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT);
  61. {
  62. SVGPanel *panel = new SVGPanel();
  63. panel->box.size = box.size;
  64. panel->setBackground(SVG::load(assetPlugin(plugin, "res/blank_panel.svg")));
  65. addChild(panel);
  66. }
  67. // screws
  68. addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
  69. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
  70. addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  71. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  72. }
  73. RACK_PLUGIN_MODEL_INIT(squinkylabs_plug1, Blank) {
  74. Model *modelBlankModule = Model::create<BlankModule,
  75. BlankWidget>("Squinky Labs",
  76. "squinkylabs-blank",
  77. "-- Blank --", RANDOM_TAG);
  78. return modelBlankModule;
  79. }