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.

109 lines
2.4KB

  1. #include "rack.hpp"
  2. #pragma once
  3. using namespace rack;
  4. RACK_PLUGIN_DECLARE(LabSeven);
  5. #ifdef USE_VST2
  6. #define plugin "LabSeven"
  7. #endif // USE_VST2
  8. namespace rack_plugin_LabSeven {
  9. //GUI elements
  10. struct LabSeven_Port : SVGPort
  11. {
  12. LabSeven_Port()
  13. {
  14. setSVG(SVG::load(assetPlugin(plugin,"res/LabSeven_Port.svg")));
  15. }
  16. };
  17. struct LabSeven_3340_FaderLarge : SVGFader
  18. {
  19. LabSeven_3340_FaderLarge()
  20. {
  21. Vec margin = Vec(4, 4);
  22. maxHandlePos = Vec(0, -20).plus(margin);
  23. minHandlePos = Vec(0, 40).plus(margin);
  24. background->svg = SVG::load(assetPlugin(plugin,"res/LabSeven_3340_SlidePot.svg"));
  25. background->wrap();
  26. background->box.pos = margin;
  27. box.size = background->box.size.plus(margin.mult(2));
  28. }
  29. };
  30. struct LabSeven_3340_FaderRedLargeRed : LabSeven_3340_FaderLarge
  31. {
  32. LabSeven_3340_FaderRedLargeRed()
  33. {
  34. handle->svg = SVG::load(assetPlugin(plugin,"res/LabSeven_3340_SlidePotHandleRed.svg"));
  35. handle->wrap();
  36. }
  37. };
  38. struct LabSeven_3340_FaderRedLargeGreen : LabSeven_3340_FaderLarge
  39. {
  40. LabSeven_3340_FaderRedLargeGreen()
  41. {
  42. handle->svg = SVG::load(assetPlugin(plugin,"res/LabSeven_3340_SlidePotHandleGreen.svg"));
  43. handle->wrap();
  44. }
  45. };
  46. struct LabSeven_3340_FaderRedLargeYellow3Stage : SVGFader
  47. {
  48. LabSeven_3340_FaderRedLargeYellow3Stage()
  49. {
  50. Vec margin = Vec(4, 4);
  51. maxHandlePos = Vec(0, -20).plus(margin);
  52. minHandlePos = Vec(0, -5).plus(margin);
  53. background->svg = SVG::load(assetPlugin(plugin,"res/LabSeven_3340_SlidePot3Stage.svg"));
  54. background->wrap();
  55. background->box.pos = margin;
  56. box.size = background->box.size.plus(margin.mult(2));
  57. handle->svg = SVG::load(assetPlugin(plugin,"res/LabSeven_3340_SlidePotHandleYellow.svg"));
  58. handle->wrap();
  59. snap=true;
  60. }
  61. };
  62. struct LabSeven_3340_KnobLarge : SVGKnob
  63. {
  64. LabSeven_3340_KnobLarge()
  65. {
  66. box.size = Vec(36, 36);
  67. minAngle = -0.3*M_PI;
  68. maxAngle = 0.3*M_PI;
  69. setSVG(SVG::load(assetPlugin(plugin, "res/LabSeven_3340_KnobLarge.svg")));
  70. snap=true;
  71. }
  72. };
  73. struct LabSeven_3340_KnobLargeRange : LabSeven_3340_KnobLarge
  74. {
  75. LabSeven_3340_KnobLargeRange()
  76. {
  77. minAngle = -0.25*M_PI;
  78. maxAngle = 0.27*M_PI;
  79. }
  80. };
  81. /*
  82. struct LabSeven_KnobLargeBlue : SVGKnob {
  83. LabSeven_KnobLargeBlue() {
  84. box.size = Vec(50, 50);
  85. minAngle = -0.75*M_PI;
  86. maxAngle = 0.75*M_PI;
  87. setSVG(SVG::load(assetPlugin(plugin, "res/LabSeven_KnobLargeBlue.svg")));
  88. }
  89. };
  90. */
  91. } // namespace rack_plugin_LabSeven