DPF Plugin examples
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
4.7KB

  1. // generated by Fast Light User Interface Designer (fluid) version 1.0300
  2. #include "roomy_widget.h"
  3. START_NAMESPACE_DISTRHO
  4. void RoomyUI::cb_headerImage_i(Avtk::Image*, void*) {
  5. //system("xdg-open http://www.openavproductions.com/artyfx#ducka");
  6. }
  7. void RoomyUI::cb_headerImage(Avtk::Image* o, void* v) {
  8. ((RoomyUI*)(o->parent()->user_data()))->cb_headerImage_i(o,v);
  9. }
  10. void RoomyUI::cb_graph_i(Avtk::Reverb* o, void*) {
  11. //cutoff = o->value();
  12. //float g = o->getGain();
  13. //gainDial->value( g );
  14. //freq->value( cutoff ); // update dial
  15. //writePort(CUTOFF_FREQ, cutoff);
  16. //writePort(CUTOFF_GAIN, g);
  17. }
  18. void RoomyUI::cb_graph(Avtk::Reverb* o, void* v) {
  19. ((RoomyUI*)(o->parent()->user_data()))->cb_graph_i(o,v);
  20. }
  21. void RoomyUI::cb_time_i(Avtk::Dial* o, void*) {
  22. float tmp = o->value();
  23. graph->size( tmp );
  24. setHostParameter( 0, tmp );
  25. }
  26. void RoomyUI::cb_time(Avtk::Dial* o, void* v) {
  27. ((RoomyUI*)(o->parent()->user_data()))->cb_time_i(o,v);
  28. }
  29. void RoomyUI::cb_damping_i(Avtk::Dial* o, void*) {
  30. float tmp = o->value();
  31. graph->damping( tmp );
  32. setHostParameter( 1, tmp );
  33. }
  34. void RoomyUI::cb_damping(Avtk::Dial* o, void* v) {
  35. ((RoomyUI*)(o->parent()->user_data()))->cb_damping_i(o,v);
  36. }
  37. void RoomyUI::cb_dryWet_i(Avtk::Dial* o, void*) {
  38. float tmp = o->value();
  39. graph->wet( tmp );
  40. setHostParameter( 2, tmp );
  41. }
  42. void RoomyUI::cb_dryWet(Avtk::Dial* o, void* v) {
  43. ((RoomyUI*)(o->parent()->user_data()))->cb_dryWet_i(o,v);
  44. }
  45. /**
  46. if the type of filter changes, this function will highlight the right button
  47. */
  48. void RoomyUI::update_button(int button) {
  49. }
  50. RoomyUI::RoomyUI(UI* uic) : ui(uic) {
  51. { Fl_Double_Window* o = window = new Fl_Double_Window(160, 220);
  52. window->user_data((void*)(this));
  53. { headerImage = new Avtk::Image(0, 0, 160, 29, "header.png");
  54. headerImage->box(FL_NO_BOX);
  55. headerImage->color(FL_BACKGROUND_COLOR);
  56. headerImage->selection_color(FL_BACKGROUND_COLOR);
  57. headerImage->labeltype(FL_NORMAL_LABEL);
  58. headerImage->labelfont(0);
  59. headerImage->labelsize(14);
  60. headerImage->labelcolor((Fl_Color)20);
  61. headerImage->callback((Fl_Callback*)cb_headerImage);
  62. headerImage->align(Fl_Align(FL_ALIGN_CENTER));
  63. headerImage->when(FL_WHEN_RELEASE_ALWAYS);
  64. headerImage->setPixbuf(header.pixel_data,4);
  65. } // Avtk::Image* headerImage
  66. { graph = new Avtk::Reverb(5, 36, 150, 126, "graph");
  67. graph->box(FL_UP_BOX);
  68. graph->color((Fl_Color)179);
  69. graph->selection_color(FL_INACTIVE_COLOR);
  70. graph->labeltype(FL_NO_LABEL);
  71. graph->labelfont(0);
  72. graph->labelsize(14);
  73. graph->labelcolor(FL_FOREGROUND_COLOR);
  74. graph->callback((Fl_Callback*)cb_graph);
  75. graph->align(Fl_Align(FL_ALIGN_BOTTOM));
  76. graph->when(FL_WHEN_CHANGED);
  77. } // Avtk::Reverb* graph
  78. { time = new Avtk::Dial(10, 169, 37, 37, "Time");
  79. time->box(FL_NO_BOX);
  80. time->color((Fl_Color)90);
  81. time->selection_color(FL_INACTIVE_COLOR);
  82. time->labeltype(FL_NORMAL_LABEL);
  83. time->labelfont(0);
  84. time->labelsize(10);
  85. time->labelcolor(FL_FOREGROUND_COLOR);
  86. time->callback((Fl_Callback*)cb_time);
  87. time->align(Fl_Align(FL_ALIGN_BOTTOM));
  88. time->when(FL_WHEN_CHANGED);
  89. } // Avtk::Dial* time
  90. { damping = new Avtk::Dial(62, 169, 37, 37, "Damping");
  91. damping->box(FL_NO_BOX);
  92. damping->color((Fl_Color)90);
  93. damping->selection_color(FL_INACTIVE_COLOR);
  94. damping->labeltype(FL_NORMAL_LABEL);
  95. damping->labelfont(0);
  96. damping->labelsize(10);
  97. damping->labelcolor(FL_FOREGROUND_COLOR);
  98. damping->callback((Fl_Callback*)cb_damping);
  99. damping->align(Fl_Align(FL_ALIGN_BOTTOM));
  100. damping->when(FL_WHEN_CHANGED);
  101. } // Avtk::Dial* damping
  102. { dryWet = new Avtk::Dial(113, 168, 37, 37, "Dry / Wet");
  103. dryWet->box(FL_NO_BOX);
  104. dryWet->color((Fl_Color)90);
  105. dryWet->selection_color(FL_INACTIVE_COLOR);
  106. dryWet->labeltype(FL_NORMAL_LABEL);
  107. dryWet->labelfont(0);
  108. dryWet->labelsize(10);
  109. dryWet->labelcolor(FL_FOREGROUND_COLOR);
  110. dryWet->callback((Fl_Callback*)cb_dryWet);
  111. dryWet->align(Fl_Align(FL_ALIGN_BOTTOM));
  112. dryWet->when(FL_WHEN_CHANGED);
  113. } // Avtk::Dial* dryWet
  114. window->color( fl_rgb_color( 17, 17, 17) );
  115. close_cb(o, 0);
  116. window->end();
  117. } // Fl_Double_Window* window
  118. }
  119. int RoomyUI::getWidth() {
  120. return window->w();
  121. }
  122. int RoomyUI::getHeight() {
  123. return window->h();
  124. }
  125. void RoomyUI::setHostParameter(uint32_t index, float value) {
  126. //cout << "port " << port << " value " << value << endl;
  127. ui->d_setParameterValue(index, value);
  128. }
  129. void close_cb(Fl_Widget* o, void*) {
  130. if ((Fl::event() == FL_KEYDOWN || Fl::event() == FL_SHORTCUT) && Fl::event_key() == FL_Escape)
  131. {
  132. return; // ignore ESC
  133. }
  134. else
  135. {
  136. o->hide();
  137. }
  138. }
  139. END_NAMESPACE_DISTRHO