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.

61 lines
1.6KB

  1. #include "rack.hpp"
  2. using namespace rack;
  3. RACK_PLUGIN_DECLARE(Hora_Examples);
  4. #if defined(USE_VST2) && !defined(RACK_PLUGIN_SHARED)
  5. #define plugin "Hora-Examples"
  6. #endif // USE_VST2
  7. struct switch_0 : SVGSwitch, ToggleSwitch {
  8. switch_0() {
  9. addFrame(SVG::load(assetPlugin(plugin,"res/switch_0.svg")));
  10. addFrame(SVG::load(assetPlugin(plugin,"res/switch_1.svg")));
  11. sw->wrap();
  12. box.size = sw->box.size;
  13. }
  14. };
  15. struct jack : SVGPort{
  16. jack() {
  17. background->svg = SVG::load(assetPlugin(plugin,"res/jack.svg"));
  18. background->wrap();
  19. box.size = background->box.size;
  20. }
  21. };
  22. struct mediumKnob : SVGKnob{
  23. mediumKnob() {
  24. box.size = Vec(25, 25);
  25. minAngle = -0.75*M_PI;
  26. maxAngle = 0.75*M_PI;
  27. setSVG(SVG::load(assetPlugin(plugin,"res/mediumKnob.svg")));
  28. SVGWidget *shadow = new SVGWidget();
  29. shadow->setSVG(SVG::load(assetPlugin(plugin, "res/mediumknobShadow.svg")));
  30. addChild(shadow);
  31. }
  32. };
  33. struct mediumRotarysnap : SVGKnob{
  34. mediumRotarysnap() {
  35. box.size = Vec(25, 25);
  36. minAngle = -0.75*M_PI;
  37. maxAngle = 0.75*M_PI;
  38. setSVG(SVG::load(assetPlugin(plugin,"res/mediumRotary.svg")));
  39. SVGWidget *shadow = new SVGWidget();
  40. shadow->setSVG(SVG::load(assetPlugin(plugin, "res/mediumRotaryShadow.svg")));
  41. addChild(shadow);
  42. }
  43. };
  44. struct mediumRotarysnap_snap : mediumRotarysnap{
  45. mediumRotarysnap_snap() {
  46. snap = true;
  47. }
  48. };
  49. struct button : SVGSwitch, MomentarySwitch {
  50. button(){
  51. addFrame(SVG::load(assetPlugin(plugin,"res/button.svg")));
  52. addFrame(SVG::load(assetPlugin(plugin,"res/buttonPushed.svg")));
  53. sw->wrap();
  54. box.size = sw->box.size;
  55. }
  56. };