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.

154 lines
3.3KB

  1. #pragma once
  2. #include "scene.hpp"
  3. namespace rack {
  4. ////////////////////
  5. // Knobs
  6. ////////////////////
  7. struct KnobDavies1900h : SpriteKnob {
  8. KnobDavies1900h() {
  9. box.size = Vec(36, 36);
  10. spriteOffset = Vec(-2, -2);
  11. spriteSize = Vec(42, 42);
  12. minIndex = 44;
  13. maxIndex = -46;
  14. spriteCount = 120;
  15. }
  16. };
  17. struct KnobDavies1900hWhite : KnobDavies1900h {
  18. KnobDavies1900hWhite() {
  19. spriteImage = Image::load("res/ComponentLibrary/Davies1900hWhite.png");
  20. }
  21. };
  22. struct KnobDavies1900hBlack : KnobDavies1900h {
  23. KnobDavies1900hBlack() {
  24. spriteImage = Image::load("res/ComponentLibrary/Davies1900hBlack.png");
  25. }
  26. };
  27. struct KnobDavies1900hRed : KnobDavies1900h {
  28. KnobDavies1900hRed() {
  29. spriteImage = Image::load("res/ComponentLibrary/Davies1900hRed.png");
  30. }
  31. };
  32. struct BefacoBigKnob : SpriteKnob {
  33. BefacoBigKnob() {
  34. box.size = Vec(75, 75);
  35. spriteOffset = Vec(-2, -2);
  36. spriteSize = Vec(81, 81);
  37. minIndex = 44;
  38. maxIndex = -46;
  39. spriteCount = 120;
  40. spriteImage = Image::load("res/ComponentLibrary/BefacoBigKnob.png");
  41. }
  42. };
  43. struct BefacoTinyKnob : SpriteKnob {
  44. BefacoTinyKnob() {
  45. box.size = Vec(26, 26);
  46. spriteOffset = Vec(-2, -2);
  47. spriteSize = Vec(32, 32);
  48. minIndex = 44;
  49. maxIndex = -46;
  50. spriteCount = 120;
  51. spriteImage = Image::load("res/ComponentLibrary/BefacoTinyKnob.png");
  52. }
  53. };
  54. struct BefacoSlidePot : SpriteKnob {
  55. BefacoSlidePot() {
  56. box.size = Vec(12, 122);
  57. spriteOffset = Vec(-2, -6);
  58. spriteSize = Vec(18, 134);
  59. minIndex = 97;
  60. maxIndex = 0;
  61. spriteCount = 98;
  62. spriteImage = Image::load("res/ComponentLibrary/BefacoSlidePot.png");
  63. }
  64. };
  65. ////////////////////
  66. // Jacks
  67. ////////////////////
  68. struct PJ301M : SpriteWidget {
  69. PJ301M() {
  70. box.size = Vec(24, 24);
  71. spriteOffset = Vec(-2, -2);
  72. spriteSize = Vec(30, 30);
  73. spriteImage = Image::load("res/ComponentLibrary/PJ301M.png");
  74. }
  75. };
  76. struct InputPortPJ301M : InputPort, PJ301M {};
  77. struct OutputPortPJ301M: OutputPort, PJ301M {};
  78. struct PJ3410 : SpriteWidget {
  79. PJ3410() {
  80. box.size = Vec(32, 32);
  81. spriteOffset = Vec(-1, -1);
  82. spriteSize = Vec(36, 36);
  83. spriteImage = Image::load("res/ComponentLibrary/PJ3410.png");
  84. }
  85. };
  86. struct InputPortPJ3410 : InputPort, PJ3410 {};
  87. struct OutputPortPJ3410: OutputPort, PJ3410 {};
  88. struct CL1362 : SpriteWidget {
  89. CL1362() {
  90. box.size = Vec(33, 29);
  91. spriteOffset = Vec(-2, -2);
  92. spriteSize = Vec(39, 36);
  93. spriteImage = Image::load("res/ComponentLibrary/CL1362.png");
  94. }
  95. };
  96. struct InputPortCL1362 : InputPort, CL1362 {};
  97. struct OutputPortCL1362 : OutputPort, CL1362 {};
  98. ////////////////////
  99. // Misc
  100. ////////////////////
  101. /** If you don't add these to your ModuleWidget, it will fall out of the rack... */
  102. struct Screw : SpriteWidget {
  103. Screw() {
  104. box.size = Vec(15, 14);
  105. spriteOffset = Vec(0, 0);
  106. spriteSize = Vec(15, 14);
  107. }
  108. };
  109. struct BlackScrew : Screw {
  110. BlackScrew() {
  111. spriteImage = Image::load("res/ComponentLibrary/ScrewBlack.png");
  112. }
  113. };
  114. struct SilverScrew : Screw {
  115. SilverScrew() {
  116. spriteImage = Image::load("res/ComponentLibrary/ScrewSilver.png");
  117. }
  118. };
  119. struct LightPanel : Panel {
  120. LightPanel() {
  121. backgroundColor = nvgRGB(0xe8, 0xe8, 0xe8);
  122. borderColor = nvgRGB(0xac, 0xac, 0xac);
  123. }
  124. };
  125. struct DarkPanel : Panel {
  126. DarkPanel() {
  127. backgroundColor = nvgRGB(0x0f, 0x0f, 0x0f);
  128. borderColor = nvgRGB(0x5e, 0x5e, 0x5e);
  129. }
  130. };
  131. } // namespace rack