External plugins for Carla
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.

252 lines
9.0KB

  1. // generated by Fast Light User Interface Designer (fluid) version 1.0300
  2. #include "external/zynaddsubfx/UI/LFOUI.h"
  3. //Copyright (c) 2002-2005 Nasca Octavian Paul
  4. //License: GNU GPL version 2 or later
  5. #include "../globals.h"
  6. #include <FL/Fl_Group.H>
  7. #include <FL/Fl_Box.H>
  8. #include <FL/fl_draw.H>
  9. Fl_Menu_Item LFOUI::menu_LFOtype[] = {
  10. {"SINE", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  11. {"TRI", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  12. {"SQR", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  13. {"R.up", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  14. {"R.dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  15. {"E1dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  16. {"E2dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  17. {"RND", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
  18. {0,0,0,0,0,0,0,0,0}
  19. };
  20. void LFOUI::cb_C_i(Fl_Button*, void*) {
  21. presetsui->copy(lfoparamswindow->loc());
  22. }
  23. void LFOUI::cb_C(Fl_Button* o, void* v) {
  24. ((LFOUI*)(o->parent()->parent()->user_data()))->cb_C_i(o,v);
  25. }
  26. void LFOUI::cb_P_i(Fl_Button*, void*) {
  27. presetsui->paste(lfoparamswindow->loc(),this);
  28. }
  29. void LFOUI::cb_P(Fl_Button* o, void* v) {
  30. ((LFOUI*)(o->parent()->parent()->user_data()))->cb_P_i(o,v);
  31. }
  32. LFOUI::LFOUI(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h) {
  33. cached_label = label;
  34. }
  35. LFOUI::~LFOUI() {
  36. lfoui->hide();
  37. hide();
  38. }
  39. Fl_Group* LFOUI::make_window() {
  40. { lfoui = new Fl_Group(0, 0, 230, 70);
  41. lfoui->box(FL_FLAT_BOX);
  42. lfoui->color(FL_LIGHT1);
  43. lfoui->selection_color(FL_BACKGROUND_COLOR);
  44. lfoui->labeltype(FL_NO_LABEL);
  45. lfoui->labelfont(1);
  46. lfoui->labelsize(14);
  47. lfoui->labelcolor(FL_FOREGROUND_COLOR);
  48. lfoui->user_data((void*)(this));
  49. lfoui->align(Fl_Align(FL_ALIGN_TOP));
  50. lfoui->when(FL_WHEN_RELEASE);
  51. { Fl_Osc_Group* o = lfoparamswindow = new Fl_Osc_Group(0, 0, 230, 70, "LFO");
  52. lfoparamswindow->box(FL_UP_BOX);
  53. lfoparamswindow->color(FL_CYAN);
  54. lfoparamswindow->selection_color(FL_BACKGROUND_COLOR);
  55. lfoparamswindow->labeltype(FL_ENGRAVED_LABEL);
  56. lfoparamswindow->labelfont(0);
  57. lfoparamswindow->labelsize(10);
  58. lfoparamswindow->labelcolor(FL_FOREGROUND_COLOR);
  59. lfoparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
  60. lfoparamswindow->when(FL_WHEN_RELEASE);
  61. { Fl_Osc_DialF* o = freq = new Fl_Osc_DialF(5, 20, 30, 30, "Freq.");
  62. freq->tooltip("LFO Frequency");
  63. freq->box(FL_ROUND_UP_BOX);
  64. freq->color(FL_BACKGROUND_COLOR);
  65. freq->selection_color(FL_INACTIVE_COLOR);
  66. freq->labeltype(FL_NORMAL_LABEL);
  67. freq->labelfont(0);
  68. freq->labelsize(10);
  69. freq->labelcolor(FL_FOREGROUND_COLOR);
  70. freq->step(1e-05);
  71. freq->align(Fl_Align(FL_ALIGN_BOTTOM));
  72. freq->when(FL_WHEN_CHANGED);
  73. o->init("Pfreq");
  74. } // Fl_Osc_DialF* freq
  75. { Fl_Osc_Dial* o = intensity = new Fl_Osc_Dial(40, 20, 30, 30, "Depth");
  76. intensity->tooltip("LFO Amount");
  77. intensity->box(FL_ROUND_UP_BOX);
  78. intensity->color(FL_BACKGROUND_COLOR);
  79. intensity->selection_color(FL_INACTIVE_COLOR);
  80. intensity->labeltype(FL_NORMAL_LABEL);
  81. intensity->labelfont(0);
  82. intensity->labelsize(10);
  83. intensity->labelcolor(FL_FOREGROUND_COLOR);
  84. intensity->maximum(127);
  85. intensity->step(1);
  86. intensity->align(Fl_Align(FL_ALIGN_BOTTOM));
  87. intensity->when(FL_WHEN_CHANGED);
  88. o->init("Pintensity");
  89. } // Fl_Osc_Dial* intensity
  90. { Fl_Osc_Dial* o = delay = new Fl_Osc_Dial(110, 20, 30, 30, "Delay");
  91. delay->tooltip("LFO delay");
  92. delay->box(FL_ROUND_UP_BOX);
  93. delay->color(FL_BACKGROUND_COLOR);
  94. delay->selection_color(FL_INACTIVE_COLOR);
  95. delay->labeltype(FL_NORMAL_LABEL);
  96. delay->labelfont(0);
  97. delay->labelsize(10);
  98. delay->labelcolor(FL_FOREGROUND_COLOR);
  99. delay->maximum(127);
  100. delay->step(1);
  101. delay->align(Fl_Align(FL_ALIGN_BOTTOM));
  102. delay->when(FL_WHEN_CHANGED);
  103. o->init("Pdelay");
  104. } // Fl_Osc_Dial* delay
  105. { Fl_Osc_Dial* o = startphase = new Fl_Osc_Dial(75, 20, 30, 30, "Start");
  106. startphase->tooltip("LFO Startphase (leftmost is Random)");
  107. startphase->box(FL_ROUND_UP_BOX);
  108. startphase->color(FL_BACKGROUND_COLOR);
  109. startphase->selection_color(FL_INACTIVE_COLOR);
  110. startphase->labeltype(FL_NORMAL_LABEL);
  111. startphase->labelfont(0);
  112. startphase->labelsize(10);
  113. startphase->labelcolor(FL_FOREGROUND_COLOR);
  114. startphase->maximum(127);
  115. startphase->step(1);
  116. startphase->align(Fl_Align(FL_ALIGN_BOTTOM));
  117. startphase->when(FL_WHEN_CHANGED);
  118. o->init("Pstartphase");
  119. } // Fl_Osc_Dial* startphase
  120. { Fl_Osc_Dial* o = randomness = new Fl_Osc_Dial(180, 7, 20, 20, "A.R.");
  121. randomness->tooltip("LFO Amplitude Randomness");
  122. randomness->box(FL_ROUND_UP_BOX);
  123. randomness->color(FL_BACKGROUND_COLOR);
  124. randomness->selection_color(FL_INACTIVE_COLOR);
  125. randomness->labeltype(FL_NORMAL_LABEL);
  126. randomness->labelfont(0);
  127. randomness->labelsize(10);
  128. randomness->labelcolor(FL_FOREGROUND_COLOR);
  129. randomness->maximum(127);
  130. randomness->step(1);
  131. randomness->align(Fl_Align(FL_ALIGN_BOTTOM));
  132. randomness->when(FL_WHEN_CHANGED);
  133. o->init("Prandomness");
  134. } // Fl_Osc_Dial* randomness
  135. { Fl_Osc_Choice* o = LFOtype = new Fl_Osc_Choice(180, 40, 45, 15, "Type");
  136. LFOtype->tooltip("LFO function");
  137. LFOtype->box(FL_UP_BOX);
  138. LFOtype->down_box(FL_BORDER_BOX);
  139. LFOtype->color(FL_BACKGROUND_COLOR);
  140. LFOtype->selection_color(FL_SELECTION_COLOR);
  141. LFOtype->labeltype(FL_NORMAL_LABEL);
  142. LFOtype->labelfont(0);
  143. LFOtype->labelsize(10);
  144. LFOtype->labelcolor(FL_FOREGROUND_COLOR);
  145. LFOtype->textsize(8);
  146. LFOtype->align(Fl_Align(FL_ALIGN_BOTTOM));
  147. LFOtype->when(FL_WHEN_RELEASE);
  148. LFOtype->menu(menu_LFOtype);
  149. o->init("PLFOtype");
  150. } // Fl_Osc_Choice* LFOtype
  151. { Fl_Osc_Check* o = continous = new Fl_Osc_Check(165, 35, 15, 15, "C.");
  152. continous->tooltip("Continuous LFO");
  153. continous->box(FL_NO_BOX);
  154. continous->down_box(FL_DOWN_BOX);
  155. continous->color(FL_BACKGROUND_COLOR);
  156. continous->selection_color(FL_FOREGROUND_COLOR);
  157. continous->labeltype(FL_NORMAL_LABEL);
  158. continous->labelfont(0);
  159. continous->labelsize(10);
  160. continous->labelcolor(FL_FOREGROUND_COLOR);
  161. continous->align(Fl_Align(FL_ALIGN_BOTTOM));
  162. continous->when(FL_WHEN_RELEASE);
  163. o->init("Pcontinous");
  164. } // Fl_Osc_Check* continous
  165. { Fl_Osc_Dial* o = freqrand = new Fl_Osc_Dial(205, 7, 20, 20, "F.R.");
  166. freqrand->tooltip("LFO Frequency Randomness");
  167. freqrand->box(FL_ROUND_UP_BOX);
  168. freqrand->color(FL_BACKGROUND_COLOR);
  169. freqrand->selection_color(FL_INACTIVE_COLOR);
  170. freqrand->labeltype(FL_NORMAL_LABEL);
  171. freqrand->labelfont(0);
  172. freqrand->labelsize(10);
  173. freqrand->labelcolor(FL_FOREGROUND_COLOR);
  174. freqrand->maximum(127);
  175. freqrand->step(1);
  176. freqrand->align(Fl_Align(FL_ALIGN_BOTTOM));
  177. freqrand->when(FL_WHEN_CHANGED);
  178. o->init("Pfreqrand");
  179. } // Fl_Osc_Dial* freqrand
  180. { Fl_Osc_Dial* o = stretch = new Fl_Osc_Dial(144, 30, 20, 20, "Str.");
  181. stretch->tooltip("LFO stretch");
  182. stretch->box(FL_ROUND_UP_BOX);
  183. stretch->color(FL_BACKGROUND_COLOR);
  184. stretch->selection_color(FL_INACTIVE_COLOR);
  185. stretch->labeltype(FL_NORMAL_LABEL);
  186. stretch->labelfont(0);
  187. stretch->labelsize(10);
  188. stretch->labelcolor(FL_FOREGROUND_COLOR);
  189. stretch->maximum(127);
  190. stretch->step(1);
  191. stretch->align(Fl_Align(FL_ALIGN_BOTTOM));
  192. stretch->when(FL_WHEN_CHANGED);
  193. o->init("Pstretch");
  194. } // Fl_Osc_Dial* stretch
  195. { Fl_Button* o = new Fl_Button(145, 10, 15, 15, "C");
  196. o->box(FL_THIN_UP_BOX);
  197. o->color((Fl_Color)179);
  198. o->labelfont(1);
  199. o->labelsize(10);
  200. o->labelcolor((Fl_Color)55);
  201. o->callback((Fl_Callback*)cb_C);
  202. } // Fl_Button* o
  203. { Fl_Button* o = new Fl_Button(162, 10, 15, 15, "P");
  204. o->box(FL_THIN_UP_BOX);
  205. o->color((Fl_Color)179);
  206. o->labelfont(1);
  207. o->labelsize(10);
  208. o->labelcolor((Fl_Color)55);
  209. o->callback((Fl_Callback*)cb_P);
  210. } // Fl_Button* o
  211. set_module_parameters(o);
  212. lfoparamswindow->end();
  213. } // Fl_Osc_Group* lfoparamswindow
  214. lfoui->end();
  215. } // Fl_Group* lfoui
  216. return lfoui;
  217. }
  218. void LFOUI::refresh() {
  219. freq->update();
  220. intensity->update();
  221. startphase->update();
  222. delay->update();
  223. continous->update();
  224. stretch->update();
  225. randomness->update();
  226. freqrand->update();
  227. LFOtype->update();
  228. }
  229. void LFOUI::init(Fl_Osc_Interface *osc_, std::string base_, std::string ext_) {
  230. base = base_;
  231. ext = ext_;
  232. osc = osc_;
  233. make_window();
  234. end();
  235. refresh();
  236. lfoui->resize(this->x(),this->y(),this->w(),this->h());
  237. lfoparamswindow->label(cached_label);
  238. }