DISTRHO Plugin Framework
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.

121 lines
3.5KB

  1. /*
  2. * DISTRHO Plugin Framework (DPF)
  3. * Copyright (C) 2012-2021 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. /**
  17. The plugin name.@n
  18. This is used to identify your plugin before a Plugin instance can be created.
  19. @note This macro is required.
  20. */
  21. #define DISTRHO_PLUGIN_NAME "CairoUI"
  22. /**
  23. Number of audio inputs the plugin has.
  24. @note This macro is required.
  25. */
  26. #define DISTRHO_PLUGIN_NUM_INPUTS 1
  27. /**
  28. Number of audio outputs the plugin has.
  29. @note This macro is required.
  30. */
  31. #define DISTRHO_PLUGIN_NUM_OUTPUTS 1
  32. /**
  33. The plugin URI when exporting in LV2 format.
  34. @note This macro is required.
  35. */
  36. #define DISTRHO_PLUGIN_URI "http://distrho.sf.net/examples/CairoUI"
  37. /**
  38. Wherever the plugin has a custom %UI.
  39. @see DISTRHO_UI_USE_NANOVG
  40. @see UI
  41. */
  42. #define DISTRHO_PLUGIN_HAS_UI 1
  43. /**
  44. Wherever the plugin processing is realtime-safe.@n
  45. TODO - list rtsafe requirements
  46. */
  47. #define DISTRHO_PLUGIN_IS_RT_SAFE 1
  48. /**
  49. Wherever the plugin is a synth.@n
  50. @ref DISTRHO_PLUGIN_WANT_MIDI_INPUT is automatically enabled when this is too.
  51. @see DISTRHO_PLUGIN_WANT_MIDI_INPUT
  52. */
  53. #define DISTRHO_PLUGIN_IS_SYNTH 0
  54. /**
  55. Enable direct access between the %UI and plugin code.
  56. @see UI::getPluginInstancePointer()
  57. @note DO NOT USE THIS UNLESS STRICTLY NECESSARY!!
  58. Try to avoid it at all costs!
  59. */
  60. #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 0
  61. /**
  62. Wherever the plugin introduces latency during audio or midi processing.
  63. @see Plugin::setLatency(uint32_t)
  64. */
  65. #define DISTRHO_PLUGIN_WANT_LATENCY 0
  66. /**
  67. Wherever the plugin wants MIDI input.@n
  68. This is automatically enabled if @ref DISTRHO_PLUGIN_IS_SYNTH is true.
  69. */
  70. #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 0
  71. /**
  72. Wherever the plugin wants MIDI output.
  73. @see Plugin::writeMidiEvent(const MidiEvent&)
  74. */
  75. #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 0
  76. /**
  77. Wherever the plugin provides its own internal programs.
  78. @see Plugin::initProgramName(uint32_t, String&)
  79. @see Plugin::loadProgram(uint32_t)
  80. */
  81. #define DISTRHO_PLUGIN_WANT_PROGRAMS 0
  82. /**
  83. Wherever the plugin uses internal non-parameter data.
  84. @see Plugin::initState(uint32_t, String&, String&)
  85. @see Plugin::setState(const char*, const char*)
  86. */
  87. #define DISTRHO_PLUGIN_WANT_STATE 0
  88. /**
  89. Wherever the plugin wants time position information from the host.
  90. @see Plugin::getTimePosition()
  91. */
  92. #define DISTRHO_PLUGIN_WANT_TIMEPOS 0
  93. /**
  94. Wherever the %UI uses NanoVG for drawing instead of the default raw OpenGL calls.@n
  95. When enabled your %UI instance will subclass @ref NanoWidget instead of @ref Widget.
  96. */
  97. #define DISTRHO_UI_USE_NANOVG 0
  98. /**
  99. The %UI URI when exporting in LV2 format.@n
  100. By default this is set to @ref DISTRHO_PLUGIN_URI with "#UI" as suffix.
  101. */
  102. #define DISTRHO_UI_URI DISTRHO_PLUGIN_URI "#UI"
  103. #define DISTRHO_UI_USE_CAIRO 1