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.

128 lines
3.7KB

  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. The plugin id when exporting in CLAP format, in reverse URI form.
  39. @note This macro is required when building CLAP plugins
  40. */
  41. #define DISTRHO_PLUGIN_CLAP_ID "studio.kx.distrho.examples.cairo-ui"
  42. /**
  43. Wherever the plugin has a custom %UI.
  44. @see DISTRHO_UI_USE_NANOVG
  45. @see UI
  46. */
  47. #define DISTRHO_PLUGIN_HAS_UI 1
  48. /**
  49. Wherever the plugin processing is realtime-safe.@n
  50. TODO - list rtsafe requirements
  51. */
  52. #define DISTRHO_PLUGIN_IS_RT_SAFE 1
  53. /**
  54. Wherever the plugin is a synth.@n
  55. @ref DISTRHO_PLUGIN_WANT_MIDI_INPUT is automatically enabled when this is too.
  56. @see DISTRHO_PLUGIN_WANT_MIDI_INPUT
  57. */
  58. #define DISTRHO_PLUGIN_IS_SYNTH 0
  59. /**
  60. Enable direct access between the %UI and plugin code.
  61. @see UI::getPluginInstancePointer()
  62. @note DO NOT USE THIS UNLESS STRICTLY NECESSARY!!
  63. Try to avoid it at all costs!
  64. */
  65. #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 0
  66. /**
  67. Wherever the plugin introduces latency during audio or midi processing.
  68. @see Plugin::setLatency(uint32_t)
  69. */
  70. #define DISTRHO_PLUGIN_WANT_LATENCY 0
  71. /**
  72. Wherever the plugin wants MIDI input.@n
  73. This is automatically enabled if @ref DISTRHO_PLUGIN_IS_SYNTH is true.
  74. */
  75. #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 0
  76. /**
  77. Wherever the plugin wants MIDI output.
  78. @see Plugin::writeMidiEvent(const MidiEvent&)
  79. */
  80. #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 0
  81. /**
  82. Wherever the plugin provides its own internal programs.
  83. @see Plugin::initProgramName(uint32_t, String&)
  84. @see Plugin::loadProgram(uint32_t)
  85. */
  86. #define DISTRHO_PLUGIN_WANT_PROGRAMS 0
  87. /**
  88. Wherever the plugin uses internal non-parameter data.
  89. @see Plugin::initState(uint32_t, String&, String&)
  90. @see Plugin::setState(const char*, const char*)
  91. */
  92. #define DISTRHO_PLUGIN_WANT_STATE 0
  93. /**
  94. Wherever the plugin wants time position information from the host.
  95. @see Plugin::getTimePosition()
  96. */
  97. #define DISTRHO_PLUGIN_WANT_TIMEPOS 0
  98. /**
  99. Wherever the %UI uses NanoVG for drawing instead of the default raw OpenGL calls.@n
  100. When enabled your %UI instance will subclass @ref NanoWidget instead of @ref Widget.
  101. */
  102. #define DISTRHO_UI_USE_NANOVG 0
  103. /**
  104. The %UI URI when exporting in LV2 format.@n
  105. By default this is set to @ref DISTRHO_PLUGIN_URI with "#UI" as suffix.
  106. */
  107. #define DISTRHO_UI_URI DISTRHO_PLUGIN_URI "#UI"
  108. #define DISTRHO_UI_FILE_BROWSER 0
  109. #define DISTRHO_UI_USE_CAIRO 1