Audio plugin host https://kx.studio/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.

291 lines
10KB

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