| @@ -58,6 +58,7 @@ endif | |||||
| ifeq ($(MACOS_OR_WIN32),true) | ifeq ($(MACOS_OR_WIN32),true) | ||||
| CARLA_VESTIGE_HEADER = false | CARLA_VESTIGE_HEADER = false | ||||
| EXPERIMENTAL_PLUGINS = false | |||||
| endif | endif | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| @@ -384,16 +385,16 @@ endif | |||||
| endif | endif | ||||
| ifeq ($(EXPERIMENTAL_PLUGINS),true) | ifeq ($(EXPERIMENTAL_PLUGINS),true) | ||||
| NATIVE_PLUGINS_FLAGS += -DHAVE_EXPERIMENTAL_PLUGINS | |||||
| BASE_FLAGS += -DHAVE_EXPERIMENTAL_PLUGINS | |||||
| NATIVE_PLUGINS_LIBS += -lclxclient -lclthreads -lzita-convolver -lzita-resampler | NATIVE_PLUGINS_LIBS += -lclxclient -lclthreads -lzita-convolver -lzita-resampler | ||||
| NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs cairo fftw3f libpng12 x11 xft) | NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs cairo fftw3f libpng12 x11 xft) | ||||
| endif | endif | ||||
| ifeq ($(HAVE_ZYN_DEPS),true) | ifeq ($(HAVE_ZYN_DEPS),true) | ||||
| NATIVE_PLUGINS_FLAGS += -DHAVE_ZYN_DEPS | |||||
| BASE_FLAGS += -DHAVE_ZYN_DEPS | |||||
| NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs fftw3 mxml zlib) | NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs fftw3 mxml zlib) | ||||
| ifeq ($(HAVE_ZYN_UI_DEPS),true) | ifeq ($(HAVE_ZYN_UI_DEPS),true) | ||||
| NATIVE_PLUGINS_FLAGS += -DHAVE_ZYN_UI_DEPS | |||||
| BASE_FLAGS += -DHAVE_ZYN_UI_DEPS | |||||
| NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs ntk_images ntk) | NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs ntk_images ntk) | ||||
| endif | endif | ||||
| endif | endif | ||||
| @@ -242,9 +242,9 @@ SEARCH_INCLUDES = YES | |||||
| INCLUDE_PATH = | INCLUDE_PATH = | ||||
| INCLUDE_FILE_PATTERNS = | INCLUDE_FILE_PATTERNS = | ||||
| PREDEFINED = DOXYGEN \ | PREDEFINED = DOXYGEN \ | ||||
| WANT_NATIVE WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST WANT_AU WANT_CSDOUND WANT_FLUIDSYNTH WANT_LINUXSAMPLER \ | |||||
| WANT_OPENGL WANT_AUDIOFILE WANT_MIDIFILE WANT_ZYNADDSUBFX WANT_ZYNADDSUBFX_UI \ | |||||
| CARLA_EXPORT SIZE_INT32 | |||||
| BUILDING_CARLA REAL_BUILD \ | |||||
| HAVE_DGL HAVE_LIBLO HAVE_LIBMAGIC HAVE_FLUIDSYNTH HAVE_LINUXSAMPLER HAVE_PROJECTM HAVE_X11 \ | |||||
| HAVE_EXPERIMENTAL_PLUGINS HAVE_ZYN_DEPS HAVE_ZYN_UI_DEPS | |||||
| EXPAND_AS_DEFINED = | EXPAND_AS_DEFINED = | ||||
| SKIP_FUNCTION_MACROS = YES | SKIP_FUNCTION_MACROS = YES | ||||
| #--------------------------------------------------------------------------- | #--------------------------------------------------------------------------- | ||||
| @@ -31,6 +31,8 @@ | |||||
| # include "juce_audio_processors.h" | # include "juce_audio_processors.h" | ||||
| #endif | #endif | ||||
| #include "../native-plugins/_data.cpp" | |||||
| namespace CB = CarlaBackend; | namespace CB = CarlaBackend; | ||||
| static const char* const gNullCharPtr = ""; | static const char* const gNullCharPtr = ""; | ||||
| @@ -57,167 +59,6 @@ _CarlaCachedPluginInfo::_CarlaCachedPluginInfo() noexcept | |||||
| // ------------------------------------------------------------------------------------------------------------------- | // ------------------------------------------------------------------------------------------------------------------- | ||||
| static const NativePluginDescriptor carlaRackDesc = { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Rack", | |||||
| /* label */ "carlarack", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr | |||||
| }; | |||||
| static const NativePluginDescriptor carlaPatchbayDesc = { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay", | |||||
| /* label */ "carlapatchbay", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr | |||||
| }; | |||||
| static const NativePluginDescriptor carlaPatchbay3sDesc = { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 3, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay (sidechain)", | |||||
| /* label */ "carlapatchbay3s", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr | |||||
| }; | |||||
| static const NativePluginDescriptor carlaPatchbay16Desc = { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 16, | |||||
| /* audioOuts */ 16, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay (16chan)", | |||||
| /* label */ "carlapatchbay16", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr | |||||
| }; | |||||
| static const NativePluginDescriptor carlaPatchbay32Desc = { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 32, | |||||
| /* audioOuts */ 32, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay (32chan)", | |||||
| /* label */ "carlapatchbay32", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, | |||||
| nullptr, nullptr, nullptr, nullptr | |||||
| }; | |||||
| static LinkedList<const NativePluginDescriptor*> gPluginDescriptors; | |||||
| static const | |||||
| struct ScopedInitializer { | |||||
| ScopedInitializer() | |||||
| { | |||||
| carla_register_all_plugins(); | |||||
| } | |||||
| ~ScopedInitializer() | |||||
| { | |||||
| gPluginDescriptors.clear(); | |||||
| } | |||||
| } _si; | |||||
| // ------------------------------------------------------------------------------------------------------------------- | |||||
| CARLA_EXTERN_C | |||||
| void carla_register_native_plugin_carla(); | |||||
| void carla_register_native_plugin_carla() | |||||
| { | |||||
| gPluginDescriptors.append(&carlaRackDesc); | |||||
| gPluginDescriptors.append(&carlaPatchbayDesc); | |||||
| gPluginDescriptors.append(&carlaPatchbay3sDesc); | |||||
| gPluginDescriptors.append(&carlaPatchbay16Desc); | |||||
| gPluginDescriptors.append(&carlaPatchbay32Desc); | |||||
| } | |||||
| void carla_register_native_plugin(const NativePluginDescriptor* desc) | |||||
| { | |||||
| gPluginDescriptors.append(desc); | |||||
| } | |||||
| // ------------------------------------------------------------------------------------------------------------------- | |||||
| const char* carla_get_complete_license_text() | const char* carla_get_complete_license_text() | ||||
| { | { | ||||
| carla_debug("carla_get_complete_license_text()"); | carla_debug("carla_get_complete_license_text()"); | ||||
| @@ -375,7 +216,9 @@ uint carla_get_cached_plugin_count(CB::PluginType ptype, const char* pluginPath) | |||||
| switch (ptype) | switch (ptype) | ||||
| { | { | ||||
| case CB::PLUGIN_INTERNAL: { | case CB::PLUGIN_INTERNAL: { | ||||
| return static_cast<uint>(gPluginDescriptors.count()); | |||||
| uint32_t count = 0; | |||||
| carla_get_native_plugins_data(&count); | |||||
| return count; | |||||
| } | } | ||||
| case CB::PLUGIN_LV2: { | case CB::PLUGIN_LV2: { | ||||
| @@ -417,33 +260,37 @@ const CarlaCachedPluginInfo* carla_get_cached_plugin_info(CB::PluginType ptype, | |||||
| switch (ptype) | switch (ptype) | ||||
| { | { | ||||
| case CB::PLUGIN_INTERNAL: { | case CB::PLUGIN_INTERNAL: { | ||||
| const NativePluginDescriptor* const desc(gPluginDescriptors.getAt(index, nullptr)); | |||||
| CARLA_SAFE_ASSERT_BREAK(desc != nullptr); | |||||
| uint32_t count = 0; | |||||
| const NativePluginDescriptor* const descs(carla_get_native_plugins_data(&count)); | |||||
| CARLA_SAFE_ASSERT_BREAK(index < count); | |||||
| CARLA_SAFE_ASSERT_BREAK(descs != nullptr); | |||||
| const NativePluginDescriptor& desc(descs[index]); | |||||
| info.category = static_cast<CB::PluginCategory>(desc->category); | |||||
| info.category = static_cast<CB::PluginCategory>(desc.category); | |||||
| info.hints = 0x0; | info.hints = 0x0; | ||||
| if (desc->hints & NATIVE_PLUGIN_IS_RTSAFE) | |||||
| if (desc.hints & NATIVE_PLUGIN_IS_RTSAFE) | |||||
| info.hints |= CB::PLUGIN_IS_RTSAFE; | info.hints |= CB::PLUGIN_IS_RTSAFE; | ||||
| if (desc->hints & NATIVE_PLUGIN_IS_SYNTH) | |||||
| if (desc.hints & NATIVE_PLUGIN_IS_SYNTH) | |||||
| info.hints |= CB::PLUGIN_IS_SYNTH; | info.hints |= CB::PLUGIN_IS_SYNTH; | ||||
| if (desc->hints & NATIVE_PLUGIN_HAS_UI) | |||||
| if (desc.hints & NATIVE_PLUGIN_HAS_UI) | |||||
| info.hints |= CB::PLUGIN_HAS_CUSTOM_UI; | info.hints |= CB::PLUGIN_HAS_CUSTOM_UI; | ||||
| if (desc->hints & NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS) | |||||
| if (desc.hints & NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS) | |||||
| info.hints |= CB::PLUGIN_NEEDS_FIXED_BUFFERS; | info.hints |= CB::PLUGIN_NEEDS_FIXED_BUFFERS; | ||||
| if (desc->hints & NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD) | |||||
| if (desc.hints & NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD) | |||||
| info.hints |= CB::PLUGIN_NEEDS_UI_MAIN_THREAD; | info.hints |= CB::PLUGIN_NEEDS_UI_MAIN_THREAD; | ||||
| info.audioIns = desc->audioIns; | |||||
| info.audioOuts = desc->audioOuts; | |||||
| info.midiIns = desc->midiIns; | |||||
| info.midiOuts = desc->midiOuts; | |||||
| info.parameterIns = desc->paramIns; | |||||
| info.parameterOuts = desc->paramOuts; | |||||
| info.name = desc->name; | |||||
| info.label = desc->label; | |||||
| info.maker = desc->maker; | |||||
| info.copyright = desc->copyright; | |||||
| info.audioIns = desc.audioIns; | |||||
| info.audioOuts = desc.audioOuts; | |||||
| info.midiIns = desc.midiIns; | |||||
| info.midiOuts = desc.midiOuts; | |||||
| info.parameterIns = desc.paramIns; | |||||
| info.parameterOuts = desc.paramOuts; | |||||
| info.name = desc.name; | |||||
| info.label = desc.label; | |||||
| info.maker = desc.maker; | |||||
| info.copyright = desc.copyright; | |||||
| return &info; | return &info; | ||||
| } | } | ||||
| @@ -56,12 +56,6 @@ UTILS_LIBS = $(MODULEDIR)/juce_audio_basics.a | |||||
| UTILS_LIBS += $(MODULEDIR)/juce_audio_formats.a | UTILS_LIBS += $(MODULEDIR)/juce_audio_formats.a | ||||
| UTILS_LIBS += $(MODULEDIR)/juce_core.a | UTILS_LIBS += $(MODULEDIR)/juce_core.a | ||||
| UTILS_LIBS += $(MODULEDIR)/lilv.a | UTILS_LIBS += $(MODULEDIR)/lilv.a | ||||
| UTILS_LIBS += $(MODULEDIR)/native-plugins.a | |||||
| UTILS_LIBS += $(MODULEDIR)/rtmempool.a | |||||
| ifeq ($(HAVE_DGL),true) | |||||
| UTILS_LIBS += $(MODULEDIR)/dgl.a | |||||
| endif | |||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -112,8 +106,6 @@ UTILS_LINK_FLAGS = $(JUCE_AUDIO_BASICS_LIBS) | |||||
| UTILS_LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | UTILS_LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | ||||
| UTILS_LINK_FLAGS += $(JUCE_CORE_LIBS) | UTILS_LINK_FLAGS += $(JUCE_CORE_LIBS) | ||||
| UTILS_LINK_FLAGS += $(LILV_LIBS) | UTILS_LINK_FLAGS += $(LILV_LIBS) | ||||
| UTILS_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||||
| UTILS_LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||||
| ifneq ($(HAIKU),true) | ifneq ($(HAIKU),true) | ||||
| UTILS_LINK_FLAGS += -lpthread | UTILS_LINK_FLAGS += -lpthread | ||||
| @@ -26,13 +26,11 @@ | |||||
| using juce::String; | using juce::String; | ||||
| using juce::StringArray; | using juce::StringArray; | ||||
| // ----------------------------------------------------------------------- | |||||
| CARLA_EXTERN_C | CARLA_EXTERN_C | ||||
| std::size_t carla_getNativePluginCount(); | |||||
| std::size_t carla_getNativePluginCount() noexcept; | |||||
| CARLA_EXTERN_C | CARLA_EXTERN_C | ||||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index); | |||||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index) noexcept; | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -43,21 +41,56 @@ void carla_register_native_plugin(const NativePluginDescriptor* desc) | |||||
| gPluginDescriptors.append(desc); | gPluginDescriptors.append(desc); | ||||
| } | } | ||||
| std::size_t carla_getNativePluginCount() | |||||
| // ----------------------------------------------------------------------- | |||||
| static | |||||
| class NativePluginInitializer | |||||
| { | |||||
| public: | |||||
| NativePluginInitializer() noexcept | |||||
| : fNeedsInit(true) {} | |||||
| ~NativePluginInitializer() noexcept | |||||
| { | |||||
| gPluginDescriptors.clear(); | |||||
| } | |||||
| void initIfNeeded() noexcept | |||||
| { | |||||
| if (! fNeedsInit) | |||||
| return; | |||||
| fNeedsInit = false; | |||||
| try { | |||||
| carla_register_all_native_plugins(); | |||||
| } CARLA_SAFE_EXCEPTION("carla_register_all_native_plugins") | |||||
| } | |||||
| private: | |||||
| bool fNeedsInit; | |||||
| } sPluginInitializer; | |||||
| // ----------------------------------------------------------------------- | |||||
| std::size_t carla_getNativePluginCount() noexcept | |||||
| { | { | ||||
| sPluginInitializer.initIfNeeded(); | |||||
| return gPluginDescriptors.count(); | return gPluginDescriptors.count(); | ||||
| } | } | ||||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index) | |||||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index) noexcept | |||||
| { | { | ||||
| sPluginInitializer.initIfNeeded(); | |||||
| return gPluginDescriptors.getAt(index, nullptr); | return gPluginDescriptors.getAt(index, nullptr); | ||||
| } | } | ||||
| // ----------------------------------------------------- | |||||
| // ----------------------------------------------------------------------- | |||||
| CARLA_BACKEND_START_NAMESPACE | CARLA_BACKEND_START_NAMESPACE | ||||
| // ----------------------------------------------------- | |||||
| // ----------------------------------------------------------------------- | |||||
| struct NativePluginMidiData { | struct NativePluginMidiData { | ||||
| uint32_t count; | uint32_t count; | ||||
| @@ -134,21 +167,6 @@ struct NativePluginMidiData { | |||||
| // ----------------------------------------------------- | // ----------------------------------------------------- | ||||
| static const | |||||
| struct ScopedInitializer { | |||||
| ScopedInitializer() | |||||
| { | |||||
| carla_register_all_plugins(); | |||||
| } | |||||
| ~ScopedInitializer() noexcept | |||||
| { | |||||
| gPluginDescriptors.clear(); | |||||
| } | |||||
| } _si; | |||||
| // ----------------------------------------------------- | |||||
| class CarlaPluginNative : public CarlaPlugin | class CarlaPluginNative : public CarlaPlugin | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -2250,6 +2268,8 @@ public: | |||||
| // --------------------------------------------------------------- | // --------------------------------------------------------------- | ||||
| // get descriptor that matches label | // get descriptor that matches label | ||||
| sPluginInitializer.initIfNeeded(); | |||||
| for (LinkedList<const NativePluginDescriptor*>::Itenerator it = gPluginDescriptors.begin(); it.valid(); it.next()) | for (LinkedList<const NativePluginDescriptor*>::Itenerator it = gPluginDescriptors.begin(); it.valid(); it.next()) | ||||
| { | { | ||||
| fDescriptor = it.getValue(); | fDescriptor = it.getValue(); | ||||
| @@ -213,7 +213,11 @@ all: native | |||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| clean: | clean: | ||||
| rm -f $(OBJDIR)/*.o $(BINDIR)/$(MODULENAME)-* | |||||
| rm -f $(OBJDIR)/*.o | |||||
| rm -f $(BINDIR)/$(MODULENAME)-native | |||||
| rm -f $(BINDIR)/$(MODULENAME)-posix32 | |||||
| rm -f $(BINDIR)/$(MODULENAME)-posix64 | |||||
| rm -f $(BINDIR)/$(MODULENAME)-win*.exe | |||||
| debug: | debug: | ||||
| $(MAKE) DEBUG=true | $(MAKE) DEBUG=true | ||||
| @@ -258,7 +258,10 @@ typedef struct _NativePluginDescriptor { | |||||
| extern void carla_register_native_plugin(const NativePluginDescriptor* desc); | extern void carla_register_native_plugin(const NativePluginDescriptor* desc); | ||||
| /** Called once on host init */ | /** Called once on host init */ | ||||
| void carla_register_all_plugins(void); | |||||
| void carla_register_all_native_plugins(void); | |||||
| /** Get meta-data only */ | |||||
| const NativePluginDescriptor* carla_get_native_plugins_data(uint32_t* count); | |||||
| /* ------------------------------------------------------------------------------------------------------------ */ | /* ------------------------------------------------------------------------------------------------------------ */ | ||||
| @@ -13,28 +13,6 @@ include ../modules/Makefile.mk | |||||
| BUILD_C_FLAGS += -I.. | BUILD_C_FLAGS += -I.. | ||||
| BUILD_CXX_FLAGS += -I.. -isystem $(CWD)/modules -I$(CWD)/modules/distrho | BUILD_CXX_FLAGS += -I.. -isystem $(CWD)/modules -I$(CWD)/modules/distrho | ||||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||||
| # Flags for _all.c | |||||
| ALL_C_FLAGS = $(BUILD_C_FLAGS) | |||||
| # DISTRHO ProM | |||||
| ifeq ($(HAVE_DGL),true) | |||||
| ifeq ($(HAVE_PROJECTM),true) | |||||
| ALL_C_FLAGS += -DWANT_DISTRHO_PROM | |||||
| endif | |||||
| endif | |||||
| # ZynAddSubFX | |||||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||||
| ALL_C_FLAGS += -DWANT_ZYNADDSUBFX | |||||
| endif | |||||
| # Experimental plugins | |||||
| ifeq ($(EXPERIMENTAL_PLUGINS),true) | |||||
| ALL_C_FLAGS += -DWANT_EXPERIMENTAL_PLUGINS | |||||
| endif | |||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| # Flags for ZynAddSubFX | # Flags for ZynAddSubFX | ||||
| @@ -45,7 +23,7 @@ ifneq ($(MACOS),true) | |||||
| ZYN_CXX_FLAGS += -DHAVE_SCHEDULER | ZYN_CXX_FLAGS += -DHAVE_SCHEDULER | ||||
| endif | endif | ||||
| ifeq ($(HAVE_ZYN_UI_DEPS),true) | ifeq ($(HAVE_ZYN_UI_DEPS),true) | ||||
| ZYN_CXX_FLAGS += -DNTK_GUI -DWANT_ZYNADDSUBFX_UI | |||||
| ZYN_CXX_FLAGS += -DNTK_GUI | |||||
| ZYN_CXX_FLAGS += $(shell pkg-config --cflags ntk_images ntk) | ZYN_CXX_FLAGS += $(shell pkg-config --cflags ntk_images ntk) | ||||
| endif | endif | ||||
| endif | endif | ||||
| @@ -54,7 +32,8 @@ endif | |||||
| # Set objects | # Set objects | ||||
| OBJS = \ | OBJS = \ | ||||
| $(OBJDIR)/_all.c.o | |||||
| $(OBJDIR)/_all.c.o \ | |||||
| $(OBJDIR)/_data.cpp.o | |||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| # Simple plugins | # Simple plugins | ||||
| @@ -187,7 +166,7 @@ zynaddsubfx/UI/%.h: zynaddsubfx/UI/%.fl | |||||
| $(OBJDIR)/_all.c.o: _all.c | $(OBJDIR)/_all.c.o: _all.c | ||||
| -@mkdir -p $(OBJDIR) | -@mkdir -p $(OBJDIR) | ||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| @$(CC) $< $(ALL_C_FLAGS) -c -o $@ | |||||
| @$(CC) $< $(BUILD_C_FLAGS) -c -o $@ | |||||
| $(OBJDIR)/%.c.o: %.c | $(OBJDIR)/%.c.o: %.c | ||||
| -@mkdir -p $(OBJDIR) | -@mkdir -p $(OBJDIR) | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * Carla Native Plugins | * Carla Native Plugins | ||||
| * Copyright (C) 2012-2014 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
| * modify it under the terms of the GNU General Public License as | * modify it under the terms of the GNU General Public License as | ||||
| @@ -15,6 +15,7 @@ | |||||
| * For a full copy of the GNU General Public License see the doc/GPL.txt file. | * For a full copy of the GNU General Public License see the doc/GPL.txt file. | ||||
| */ | */ | ||||
| #include "CarlaDefines.h" | |||||
| #include "CarlaNative.h" | #include "CarlaNative.h" | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -44,31 +45,24 @@ extern void carla_register_native_plugin_distrho_3bandsplitter(void); | |||||
| extern void carla_register_native_plugin_distrho_mverb(void); | extern void carla_register_native_plugin_distrho_mverb(void); | ||||
| extern void carla_register_native_plugin_distrho_nekobi(void); | extern void carla_register_native_plugin_distrho_nekobi(void); | ||||
| extern void carla_register_native_plugin_distrho_pingpongpan(void); | extern void carla_register_native_plugin_distrho_pingpongpan(void); | ||||
| #ifdef WANT_DISTRHO_PROM | |||||
| extern void carla_register_native_plugin_distrho_prom(void); | extern void carla_register_native_plugin_distrho_prom(void); | ||||
| #endif | |||||
| // External-UI plugins | // External-UI plugins | ||||
| extern void carla_register_native_plugin_bigmeter(void); | extern void carla_register_native_plugin_bigmeter(void); | ||||
| extern void carla_register_native_plugin_notes(void); | extern void carla_register_native_plugin_notes(void); | ||||
| #ifdef WANT_ZYNADDSUBFX | |||||
| // ZynAddSubFX | // ZynAddSubFX | ||||
| extern void carla_register_native_plugin_zynaddsubfx_fx(void); | extern void carla_register_native_plugin_zynaddsubfx_fx(void); | ||||
| extern void carla_register_native_plugin_zynaddsubfx_synth(void); | extern void carla_register_native_plugin_zynaddsubfx_synth(void); | ||||
| #endif | |||||
| #ifdef WANT_EXPERIMENTAL_PLUGINS | |||||
| // Experimental plugins | // Experimental plugins | ||||
| extern void carla_register_native_plugin_zita_at1(void); | extern void carla_register_native_plugin_zita_at1(void); | ||||
| extern void carla_register_native_plugin_zita_bls1(void); | extern void carla_register_native_plugin_zita_bls1(void); | ||||
| extern void carla_register_native_plugin_zita_rev1(void); | extern void carla_register_native_plugin_zita_rev1(void); | ||||
| #endif | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| void carla_register_all_plugins(void) | |||||
| void carla_register_all_native_plugins(void) | |||||
| { | { | ||||
| // Simple plugins | // Simple plugins | ||||
| carla_register_native_plugin_bypass(); | carla_register_native_plugin_bypass(); | ||||
| @@ -84,10 +78,14 @@ void carla_register_all_plugins(void) | |||||
| // MIDI file and sequencer | // MIDI file and sequencer | ||||
| carla_register_native_plugin_midifile(); | carla_register_native_plugin_midifile(); | ||||
| #ifndef CARLA_OS_WIN | |||||
| carla_register_native_plugin_midisequencer(); | carla_register_native_plugin_midisequencer(); | ||||
| #endif | |||||
| #ifndef CARLA_OS_WIN | |||||
| // Carla | // Carla | ||||
| carla_register_native_plugin_carla(); | carla_register_native_plugin_carla(); | ||||
| #endif | |||||
| // DISTRHO Plugins | // DISTRHO Plugins | ||||
| carla_register_native_plugin_distrho_3bandeq(); | carla_register_native_plugin_distrho_3bandeq(); | ||||
| @@ -95,22 +93,25 @@ void carla_register_all_plugins(void) | |||||
| carla_register_native_plugin_distrho_mverb(); | carla_register_native_plugin_distrho_mverb(); | ||||
| carla_register_native_plugin_distrho_nekobi(); | carla_register_native_plugin_distrho_nekobi(); | ||||
| carla_register_native_plugin_distrho_pingpongpan(); | carla_register_native_plugin_distrho_pingpongpan(); | ||||
| #ifdef WANT_DISTRHO_PROM | |||||
| #ifdef HAVE_DGL | |||||
| #ifdef HAVE_PROJECTM | |||||
| carla_register_native_plugin_distrho_prom(); | carla_register_native_plugin_distrho_prom(); | ||||
| #endif | #endif | ||||
| #endif | |||||
| #ifndef CARLA_OS_WIN | |||||
| // External-UI plugins | // External-UI plugins | ||||
| carla_register_native_plugin_bigmeter(); | carla_register_native_plugin_bigmeter(); | ||||
| carla_register_native_plugin_notes(); | carla_register_native_plugin_notes(); | ||||
| #endif | |||||
| #ifdef WANT_ZYNADDSUBFX | |||||
| #ifdef HAVE_ZYN_DEPS | |||||
| // ZynAddSubFX | // ZynAddSubFX | ||||
| carla_register_native_plugin_zynaddsubfx_fx(); | carla_register_native_plugin_zynaddsubfx_fx(); | ||||
| carla_register_native_plugin_zynaddsubfx_synth(); | carla_register_native_plugin_zynaddsubfx_synth(); | ||||
| #endif | #endif | ||||
| #ifdef WANT_EXPERIMENTAL_PLUGINS | |||||
| #ifdef HAVE_EXPERIMENTAL_PLUGINS | |||||
| // Experimental plugins | // Experimental plugins | ||||
| carla_register_native_plugin_zita_at1(); | carla_register_native_plugin_zita_at1(); | ||||
| carla_register_native_plugin_zita_bls1(); | carla_register_native_plugin_zita_bls1(); | ||||
| @@ -0,0 +1,768 @@ | |||||
| /* | |||||
| * Carla Native Plugins | |||||
| * Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
| * | |||||
| * This program is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU General Public License as | |||||
| * published by the Free Software Foundation; either version 2 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the doc/GPL.txt file. | |||||
| */ | |||||
| #include "CarlaNative.h" | |||||
| #include "CarlaUtils.hpp" | |||||
| #undef DESCFUNCS | |||||
| #define DESCFUNCS \ | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, \ | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, \ | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, \ | |||||
| nullptr, nullptr, nullptr, nullptr | |||||
| static const NativePluginDescriptor sNativePluginDescriptors[] = { | |||||
| // ----------------------------------------------------------------------- | |||||
| // Simple plugins | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_NONE, | |||||
| /* hints */ NATIVE_PLUGIN_IS_RTSAFE, | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 1, | |||||
| /* audioOuts */ 1, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Bypass", | |||||
| /* label */ "bypass", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ NATIVE_PLUGIN_IS_RTSAFE, | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 5-1, | |||||
| /* paramOuts */ 1, | |||||
| /* name */ "LFO", | |||||
| /* label */ "lfo", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ NATIVE_PLUGIN_IS_RTSAFE, | |||||
| /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING, | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MIDI Gain", | |||||
| /* label */ "midigain", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ NATIVE_PLUGIN_IS_RTSAFE, | |||||
| /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING, | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 16, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MIDI Split", | |||||
| /* label */ "midisplit", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ NATIVE_PLUGIN_IS_RTSAFE, | |||||
| /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING, | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MIDI Through", | |||||
| /* label */ "midithrough", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ NATIVE_PLUGIN_IS_RTSAFE, | |||||
| /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING, | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 1, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MIDI Transpose", | |||||
| /* label */ "miditranspose", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_FILTER, | |||||
| #if defined(__linux__) || defined(__linux) | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI), | |||||
| #else | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | |||||
| #endif | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 1, | |||||
| /* audioOuts */ 1, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 2 + 4*4, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "NekoFilter", | |||||
| /* label */ "nekofilter", | |||||
| /* maker */ "falkTX, Nedko, Fons Adriaensen", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| // ----------------------------------------------------------------------- | |||||
| // Audio file | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 1, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Audio File", | |||||
| /* label */ "audiofile", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| // ----------------------------------------------------------------------- | |||||
| // MIDI file and sequencer | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MIDI File", | |||||
| /* label */ "midifile", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #ifndef CARLA_OS_WIN | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING, | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MIDI Sequencer", | |||||
| /* label */ "midisequencer", | |||||
| /* maker */ "falkTX, tatch", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #endif | |||||
| // ----------------------------------------------------------------------- | |||||
| // Carla | |||||
| #ifndef CARLA_OS_WIN | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Rack", | |||||
| /* label */ "carlarack", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay", | |||||
| /* label */ "carlapatchbay", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 3, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay (sidechain)", | |||||
| /* label */ "carlapatchbay3s", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 16, | |||||
| /* audioOuts */ 16, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay (16chan)", | |||||
| /* label */ "carlapatchbay16", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_OTHER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_STATE | |||||
| |NATIVE_PLUGIN_USES_TIME), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING), | |||||
| /* audioIns */ 32, | |||||
| /* audioOuts */ 32, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 1, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Carla-Patchbay (32chan)", | |||||
| /* label */ "carlapatchbay32", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #endif // CARLA_OS_WIN | |||||
| // ----------------------------------------------------------------------- | |||||
| // DISTRHO Plugins | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_EQ, | |||||
| #ifdef HAVE_DGL | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | |||||
| #endif | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 6, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "3 Band EQ", | |||||
| /* label */ "3bandeq", | |||||
| /* maker */ "falkTX, Michael Gruhn", | |||||
| /* copyright */ "LGPL", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_EQ, | |||||
| #ifdef HAVE_DGL | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | |||||
| #endif | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 6, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 6, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "3 Band Splitter", | |||||
| /* label */ "3bandsplitter", | |||||
| /* maker */ "falkTX, Michael Gruhn", | |||||
| /* copyright */ "LGPL", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | |||||
| #ifdef HAVE_DGL | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | |||||
| #endif | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 9, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "MVerb", | |||||
| /* label */ "mverb", | |||||
| /* maker */ "falkTX, Martin Eastwood", | |||||
| /* copyright */ "GPL v3+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_SYNTH, | |||||
| #ifdef HAVE_DGL | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_IS_SYNTH), | |||||
| #endif | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES | |||||
| |NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 1, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 8, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Nekobi", | |||||
| /* label */ "nekobi", | |||||
| /* maker */ "falkTX, Sean Bolton and others", | |||||
| /* copyright */ "GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| #ifdef HAVE_DGL | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | |||||
| #endif | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Ping Pong Pan", | |||||
| /* label */ "pingpongpan", | |||||
| /* maker */ "falkTX, Michael Gruhn", | |||||
| /* copyright */ "LGPL", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #ifdef HAVE_DGL | |||||
| #ifdef HAVE_PROJECTM | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 1, | |||||
| /* audioOuts */ 1, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 0, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ProM", | |||||
| /* label */ "prom", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "LGPL", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #endif // HAVE_PROJECTM | |||||
| #endif // HAVE_DGL | |||||
| // ----------------------------------------------------------------------- | |||||
| // External-UI plugins | |||||
| #ifndef CARLA_OS_WIN | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 1, | |||||
| /* paramOuts */ 2, | |||||
| /* name */ "Big Meter", | |||||
| /* label */ "bigmeter", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 0, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 1, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "Notes", | |||||
| /* label */ "notes", | |||||
| /* maker */ "falkTX", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #endif | |||||
| // ----------------------------------------------------------------------- | |||||
| // ZynAddSubFX | |||||
| #ifdef HAVE_ZYN_DEPS | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 11-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynAlienWah", | |||||
| /* label */ "zynalienwah", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 12-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynChorus", | |||||
| /* label */ "zynchorus", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 11-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynDistortion", | |||||
| /* label */ "zyndistortion", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_FILTER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 10-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynDynamicFilter", | |||||
| /* label */ "zyndynamicfilter", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 7-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynEcho", | |||||
| /* label */ "zynecho", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 15-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynPhaser", | |||||
| /* label */ "zynphaser", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 13-2, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynReverb", | |||||
| /* label */ "zynreverb", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_SYNTH, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH | |||||
| #ifdef HAVE_ZYN_UI_DEPS | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| #endif | |||||
| |NATIVE_PLUGIN_USES_MULTI_PROGS | |||||
| |NATIVE_PLUGIN_USES_STATE), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES | |||||
| |NATIVE_PLUGIN_SUPPORTS_NOTE_AFTERTOUCH | |||||
| |NATIVE_PLUGIN_SUPPORTS_PITCHBEND | |||||
| |NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||||
| /* audioIns */ 0, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 6, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "ZynAddSubFX", | |||||
| /* label */ "zynaddsubfx", | |||||
| /* maker */ "falkTX, Mark McCurry, Nasca Octavian Paul", | |||||
| /* copyright */ "GNU GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #endif // HAVE_ZYN_DEPS | |||||
| // ----------------------------------------------------------------------- | |||||
| // Experimental plugins | |||||
| #ifdef HAVE_EXPERIMENTAL_PLUGINS | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 1, | |||||
| /* audioOuts */ 1, | |||||
| /* midiIns */ 1, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 6, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "AT1", | |||||
| /* label */ "at1", | |||||
| /* maker */ "falkTX, Fons Adriaensen", | |||||
| /* copyright */ "GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_FILTER, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 6, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "BLS1", | |||||
| /* label */ "bls1", | |||||
| /* maker */ "falkTX, Fons Adriaensen", | |||||
| /* copyright */ "GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 4, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 10, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "REV1 (Ambisonic)", | |||||
| /* label */ "rev1-ambisonic", | |||||
| /* maker */ "falkTX, Fons Adriaensen", | |||||
| /* copyright */ "GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| { | |||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||||
| /* audioIns */ 2, | |||||
| /* audioOuts */ 2, | |||||
| /* midiIns */ 0, | |||||
| /* midiOuts */ 0, | |||||
| /* paramIns */ 10, | |||||
| /* paramOuts */ 0, | |||||
| /* name */ "REV1 (Stereo)", | |||||
| /* label */ "rev1-stereo", | |||||
| /* maker */ "falkTX, Fons Adriaensen", | |||||
| /* copyright */ "GPL v2+", | |||||
| DESCFUNCS | |||||
| }, | |||||
| #endif // HAVE_EXPERIMENTAL_PLUGINS | |||||
| }; | |||||
| #undef DESCFUNCS | |||||
| // ----------------------------------------------------------------------- | |||||
| const NativePluginDescriptor* carla_get_native_plugins_data(uint32_t* count) | |||||
| { | |||||
| CARLA_SAFE_ASSERT_RETURN(count != nullptr, nullptr); | |||||
| *count = static_cast<uint32_t>(sizeof(sNativePluginDescriptors)/sizeof(NativePluginDescriptor)); | |||||
| return sNativePluginDescriptors; | |||||
| } | |||||
| // ----------------------------------------------------------------------- | |||||
| @@ -284,7 +284,8 @@ private: | |||||
| static const NativePluginDescriptor audiofileDesc = { | static const NativePluginDescriptor audiofileDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 0, | /* audioIns */ 0, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -44,7 +44,10 @@ START_NAMESPACE_DISTRHO | |||||
| static const NativePluginDescriptor _3bandeqDesc = { | static const NativePluginDescriptor _3bandeqDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_EQ, | /* category */ NATIVE_PLUGIN_CATEGORY_EQ, | ||||
| #ifdef HAVE_DGL | #ifdef HAVE_DGL | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD|NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | #else | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | ||||
| #endif | #endif | ||||
| @@ -44,7 +44,10 @@ START_NAMESPACE_DISTRHO | |||||
| static const NativePluginDescriptor _3bandsplitterDesc = { | static const NativePluginDescriptor _3bandsplitterDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_EQ, | /* category */ NATIVE_PLUGIN_CATEGORY_EQ, | ||||
| #ifdef HAVE_DGL | #ifdef HAVE_DGL | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD|NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | #else | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | ||||
| #endif | #endif | ||||
| @@ -45,7 +45,10 @@ START_NAMESPACE_DISTRHO | |||||
| static const NativePluginDescriptor _mverbDesc = { | static const NativePluginDescriptor _mverbDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | ||||
| #ifdef HAVE_DGL | #ifdef HAVE_DGL | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD|NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | #else | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | ||||
| #endif | #endif | ||||
| @@ -44,11 +44,17 @@ START_NAMESPACE_DISTRHO | |||||
| static const NativePluginDescriptor nekobiDesc = { | static const NativePluginDescriptor nekobiDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_SYNTH, | /* category */ NATIVE_PLUGIN_CATEGORY_SYNTH, | ||||
| #ifdef HAVE_DGL | #ifdef HAVE_DGL | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_IS_SYNTH|NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD|NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_IS_SYNTH | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | #else | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_IS_SYNTH), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_IS_SYNTH), | |||||
| #endif | #endif | ||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES|NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES | |||||
| |NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | ||||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | ||||
| /* midiIns */ 1, | /* midiIns */ 1, | ||||
| @@ -44,7 +44,10 @@ START_NAMESPACE_DISTRHO | |||||
| static const NativePluginDescriptor pingpongpanDesc = { | static const NativePluginDescriptor pingpongpanDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | ||||
| #ifdef HAVE_DGL | #ifdef HAVE_DGL | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD|NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| #else | #else | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE), | ||||
| #endif | #endif | ||||
| @@ -31,7 +31,10 @@ START_NAMESPACE_DISTRHO | |||||
| static const NativePluginDescriptor promDesc = { | static const NativePluginDescriptor promDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_HAS_UI|NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD|NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI | |||||
| |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD | |||||
| |NATIVE_PLUGIN_USES_PARENT_ID), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | ||||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | ||||
| @@ -99,7 +99,8 @@ private: | |||||
| static const NativePluginDescriptor notesDesc = { | static const NativePluginDescriptor notesDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_HAS_UI), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_HAS_UI), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 0, | /* audioIns */ 0, | ||||
| /* audioOuts */ 0, | /* audioOuts */ 0, | ||||
| @@ -1334,7 +1334,9 @@ protected: | |||||
| static const NativePluginDescriptor fxAlienWahDesc = { | static const NativePluginDescriptor fxAlienWahDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -1351,7 +1353,9 @@ static const NativePluginDescriptor fxAlienWahDesc = { | |||||
| static const NativePluginDescriptor fxChorusDesc = { | static const NativePluginDescriptor fxChorusDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -1368,7 +1372,8 @@ static const NativePluginDescriptor fxChorusDesc = { | |||||
| static const NativePluginDescriptor fxDistortionDesc = { | static const NativePluginDescriptor fxDistortionDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -1385,7 +1390,8 @@ static const NativePluginDescriptor fxDistortionDesc = { | |||||
| static const NativePluginDescriptor fxDynamicFilterDesc = { | static const NativePluginDescriptor fxDynamicFilterDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_FILTER, | /* category */ NATIVE_PLUGIN_CATEGORY_FILTER, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -1402,7 +1408,9 @@ static const NativePluginDescriptor fxDynamicFilterDesc = { | |||||
| static const NativePluginDescriptor fxEchoDesc = { | static const NativePluginDescriptor fxEchoDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE|NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | |||||
| |NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -1419,7 +1427,8 @@ static const NativePluginDescriptor fxEchoDesc = { | |||||
| static const NativePluginDescriptor fxPhaserDesc = { | static const NativePluginDescriptor fxPhaserDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | /* category */ NATIVE_PLUGIN_CATEGORY_MODULATOR, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -1436,7 +1445,8 @@ static const NativePluginDescriptor fxPhaserDesc = { | |||||
| static const NativePluginDescriptor fxReverbDesc = { | static const NativePluginDescriptor fxReverbDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | /* category */ NATIVE_PLUGIN_CATEGORY_DELAY, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING|NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_USES_PANNING | |||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |||||
| /* supports */ static_cast<NativePluginSupports>(0x0), | /* supports */ static_cast<NativePluginSupports>(0x0), | ||||
| /* audioIns */ 2, | /* audioIns */ 2, | ||||
| /* audioOuts */ 2, | /* audioOuts */ 2, | ||||
| @@ -27,6 +27,10 @@ | |||||
| #include "Misc/Part.h" | #include "Misc/Part.h" | ||||
| #include "Misc/Util.h" | #include "Misc/Util.h" | ||||
| #ifdef HAVE_ZYN_UI_DEPS | |||||
| # define WANT_ZYNADDSUBFX_UI | |||||
| #endif | |||||
| #ifdef WANT_ZYNADDSUBFX_UI | #ifdef WANT_ZYNADDSUBFX_UI | ||||
| # ifdef override | # ifdef override | ||||
| # define override_hack | # define override_hack | ||||
| @@ -36,10 +36,10 @@ using CarlaBackend::CarlaPlugin; | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_EXTERN_C | CARLA_EXTERN_C | ||||
| std::size_t carla_getNativePluginCount(); | |||||
| std::size_t carla_getNativePluginCount() noexcept; | |||||
| CARLA_EXTERN_C | CARLA_EXTERN_C | ||||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index); | |||||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index) noexcept; | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| // Plugin List | // Plugin List | ||||
| @@ -17,7 +17,11 @@ | |||||
| #include "CarlaUtils.hpp" | #include "CarlaUtils.hpp" | ||||
| #include <cstdint> | |||||
| #ifdef CARLA_PROPER_CPP11_SUPPORT | |||||
| # include <cstdint> | |||||
| #else | |||||
| # include <stdint.h> | |||||
| #endif | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||