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.

163 lines
4.3KB

  1. /*
  2. * Carla Plugin Host
  3. * Copyright (C) 2011-2018 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 2 of
  8. * the License, or any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the doc/GPL.txt file.
  16. */
  17. #include "CarlaUtils.h"
  18. #include "CarlaString.hpp"
  19. #include "rtaudio/RtAudio.h"
  20. #include "rtmidi/RtMidi.h"
  21. #ifdef HAVE_FLUIDSYNTH
  22. # include <fluidsynth.h>
  23. #endif
  24. #include "water/files/File.h"
  25. // -------------------------------------------------------------------------------------------------------------------
  26. const char* carla_get_complete_license_text()
  27. {
  28. carla_debug("carla_get_complete_license_text()");
  29. static CarlaString retText;
  30. if (retText.isEmpty())
  31. {
  32. retText =
  33. "<p>This current Carla build is using the following features and 3rd-party code:</p>"
  34. "<ul>"
  35. // Plugin formats
  36. "<li>LADSPA plugin support</li>"
  37. "<li>DSSI plugin support</li>"
  38. "<li>LV2 plugin support</li>"
  39. "<li>VST2 plugin support using VeSTige header by Javier Serrano Polo</li>"
  40. // Sample kit libraries
  41. #ifdef HAVE_FLUIDSYNTH
  42. "<li>FluidSynth library v" FLUIDSYNTH_VERSION " for SF2/3 support</li>"
  43. #endif
  44. "<li>SFZero module for SFZ support</li>"
  45. // misc libs
  46. "<li>base64 utilities based on code by Ren\u00E9 Nyffenegger</li>"
  47. "<li>liblo library for OSC support</li>"
  48. "<li>rtmempool library by Nedko Arnaudov"
  49. "<li>serd, sord, sratom and lilv libraries for LV2 discovery</li>"
  50. "<li>RtAudio v" RTAUDIO_VERSION " and RtMidi v" RTMIDI_VERSION " for native Audio and MIDI support</li>"
  51. // Internal plugins
  52. "<li>MIDI Sequencer UI code by Perry Nguyen</li>"
  53. // External plugins
  54. #ifdef HAVE_EXTERNAL_PLUGINS
  55. "<li>Nekobi plugin code based on nekobee by Sean Bolton and others</li>"
  56. "<li>VectorJuice and WobbleJuice plugin code by Andre Sklenar</li>"
  57. # ifdef HAVE_ZYN_DEPS
  58. "<li>ZynAddSubFX plugin code by Mark McCurry and Nasca Octavian Paul</li>"
  59. # endif
  60. #endif // HAVE_EXTERNAL_PLUGINS
  61. // end
  62. "</ul>";
  63. }
  64. return retText;
  65. }
  66. const char* const* carla_get_supported_file_extensions()
  67. {
  68. carla_debug("carla_get_supported_file_extensions()");
  69. // NOTE: please keep in sync with CarlaEngine::loadFile!!
  70. static const char* const extensions[] = {
  71. // Base types
  72. "carxp", "carxs",
  73. // plugin files and resources
  74. #ifdef HAVE_FLUIDSYNTH
  75. "sf2", "sf3",
  76. #endif
  77. #ifdef HAVE_ZYN_DEPS
  78. "xmz", "xiz",
  79. #endif
  80. #if defined(CARLA_OS_MAC)
  81. "vst",
  82. #else
  83. "dll",
  84. "so",
  85. #endif
  86. // Audio files
  87. #ifdef HAVE_SNDFILE
  88. "aif", "aifc", "aiff", "au", "bwf", "flac", "htk", "iff", "mat4", "mat5", "oga", "ogg",
  89. "paf", "pvf", "pvf5", "sd2", "sf", "snd", "svx", "vcc", "w64", "wav", "xi",
  90. #endif
  91. #ifdef HAVE_FFMPEG
  92. "3g2", "3gp", "aac", "ac3", "amr", "ape", "mp2", "mp3", "mpc", "wma",
  93. # ifdef HAVE_SNDFILE
  94. // FFmpeg without sndfile
  95. "flac", "oga", "ogg", "w64", "wav",
  96. # endif
  97. #endif
  98. // MIDI files
  99. "mid", "midi",
  100. // SFZ
  101. "sfz",
  102. // terminator
  103. nullptr
  104. };
  105. return extensions;
  106. }
  107. const char* const* carla_get_supported_features()
  108. {
  109. carla_debug("carla_get_supported_features()");
  110. static const char* const features[] = {
  111. #ifdef HAVE_FLUIDSYNTH
  112. "sf2",
  113. #endif
  114. #ifdef HAVE_HYLIA
  115. "link",
  116. #endif
  117. #ifdef HAVE_LIBLO
  118. "osc",
  119. #endif
  120. #if defined(HAVE_LIBMAGIC) || defined(CARLA_OS_WIN)
  121. "bridges",
  122. #endif
  123. #ifdef HAVE_PYQT
  124. "gui",
  125. #endif
  126. nullptr
  127. };
  128. return features;
  129. }
  130. // -------------------------------------------------------------------------------------------------------------------
  131. #include "../CarlaHostCommon.cpp"
  132. // -------------------------------------------------------------------------------------------------------------------