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.

94 lines
2.8KB

  1. /*
  2. * DISTRHO Plugin Framework (DPF)
  3. * Copyright (C) 2012-2014 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for any purpose with
  6. * or without fee is hereby granted, provided that the above copyright notice and this
  7. * permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
  10. * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
  11. * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  12. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
  13. * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  14. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #include "DistrhoUI.hpp"
  17. // include full file here for convenience
  18. #include "gui/roomy_widget.cxx"
  19. START_NAMESPACE_DISTRHO
  20. // -----------------------------------------------------------------------------------------------------------
  21. class ArtyFxUiRoomy : public UI
  22. {
  23. public:
  24. ArtyFxUiRoomy()
  25. : UI(),
  26. fUI(this)
  27. {
  28. // ntk method to add sub-window
  29. add(fUI.window);
  30. fUI.window->show();
  31. // start widgets on their default values
  32. fUI.graph->size(0.5f);
  33. fUI.graph->damping(0.5f);
  34. fUI.graph->wet(0.5f);
  35. fUI.time->value(0.5f);
  36. fUI.damping->value(0.5f);
  37. fUI.dryWet->value(0.5f);
  38. setSize(fUI.getWidth(), fUI.getHeight());
  39. }
  40. protected:
  41. /* --------------------------------------------------------------------------------------------------------
  42. * DSP/Plugin Callbacks */
  43. /**
  44. A parameter has changed on the plugin side.
  45. This is called by the host to inform the UI about parameter changes.
  46. */
  47. void d_parameterChanged(uint32_t index, float value) override
  48. {
  49. switch (index)
  50. {
  51. case 0:
  52. fUI.graph->size(value);
  53. fUI.time->value(value);
  54. break;
  55. case 1:
  56. fUI.graph->damping(value);
  57. fUI.damping->value(value);
  58. break;
  59. case 2:
  60. fUI.graph->wet(value);
  61. fUI.dryWet->value(value);
  62. break;
  63. }
  64. }
  65. // -------------------------------------------------------------------------------------------------------
  66. private:
  67. RoomyUI fUI;
  68. DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ArtyFxUiRoomy)
  69. };
  70. /* ------------------------------------------------------------------------------------------------------------
  71. * UI entry point, called by DPF to create a new UI instance. */
  72. UI* createUI()
  73. {
  74. return new ArtyFxUiRoomy();
  75. }
  76. // -----------------------------------------------------------------------------------------------------------
  77. END_NAMESPACE_DISTRHO