| @@ -58,6 +58,7 @@ endif | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| CARLA_VESTIGE_HEADER = false | |||
| EXPERIMENTAL_PLUGINS = false | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| @@ -384,16 +385,16 @@ endif | |||
| endif | |||
| 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 += $(shell pkg-config --libs cairo fftw3f libpng12 x11 xft) | |||
| endif | |||
| 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) | |||
| 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) | |||
| endif | |||
| endif | |||
| @@ -242,9 +242,9 @@ SEARCH_INCLUDES = YES | |||
| INCLUDE_PATH = | |||
| INCLUDE_FILE_PATTERNS = | |||
| 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 = | |||
| SKIP_FUNCTION_MACROS = YES | |||
| #--------------------------------------------------------------------------- | |||
| @@ -31,6 +31,8 @@ | |||
| # include "juce_audio_processors.h" | |||
| #endif | |||
| #include "../native-plugins/_data.cpp" | |||
| namespace CB = CarlaBackend; | |||
| 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() | |||
| { | |||
| 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) | |||
| { | |||
| 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: { | |||
| @@ -417,33 +260,37 @@ const CarlaCachedPluginInfo* carla_get_cached_plugin_info(CB::PluginType ptype, | |||
| switch (ptype) | |||
| { | |||
| 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; | |||
| if (desc->hints & NATIVE_PLUGIN_IS_RTSAFE) | |||
| if (desc.hints & NATIVE_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; | |||
| if (desc->hints & NATIVE_PLUGIN_HAS_UI) | |||
| if (desc.hints & NATIVE_PLUGIN_HAS_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; | |||
| 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.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; | |||
| } | |||
| @@ -56,12 +56,6 @@ UTILS_LIBS = $(MODULEDIR)/juce_audio_basics.a | |||
| UTILS_LIBS += $(MODULEDIR)/juce_audio_formats.a | |||
| UTILS_LIBS += $(MODULEDIR)/juce_core.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_CORE_LIBS) | |||
| UTILS_LINK_FLAGS += $(LILV_LIBS) | |||
| UTILS_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
| UTILS_LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||
| ifneq ($(HAIKU),true) | |||
| UTILS_LINK_FLAGS += -lpthread | |||
| @@ -26,13 +26,11 @@ | |||
| using juce::String; | |||
| using juce::StringArray; | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_EXTERN_C | |||
| std::size_t carla_getNativePluginCount(); | |||
| std::size_t carla_getNativePluginCount() noexcept; | |||
| 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); | |||
| } | |||
| 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(); | |||
| } | |||
| 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); | |||
| } | |||
| // ----------------------------------------------------- | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| // ----------------------------------------------------- | |||
| // ----------------------------------------------------------------------- | |||
| struct NativePluginMidiData { | |||
| 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 | |||
| { | |||
| public: | |||
| @@ -2250,6 +2268,8 @@ public: | |||
| // --------------------------------------------------------------- | |||
| // get descriptor that matches label | |||
| sPluginInitializer.initIfNeeded(); | |||
| for (LinkedList<const NativePluginDescriptor*>::Itenerator it = gPluginDescriptors.begin(); it.valid(); it.next()) | |||
| { | |||
| fDescriptor = it.getValue(); | |||
| @@ -213,7 +213,11 @@ all: native | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| 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: | |||
| $(MAKE) DEBUG=true | |||
| @@ -258,7 +258,10 @@ typedef struct _NativePluginDescriptor { | |||
| extern void carla_register_native_plugin(const NativePluginDescriptor* desc); | |||
| /** 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_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 | |||
| @@ -45,7 +23,7 @@ ifneq ($(MACOS),true) | |||
| ZYN_CXX_FLAGS += -DHAVE_SCHEDULER | |||
| endif | |||
| 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) | |||
| endif | |||
| endif | |||
| @@ -54,7 +32,8 @@ endif | |||
| # Set objects | |||
| OBJS = \ | |||
| $(OBJDIR)/_all.c.o | |||
| $(OBJDIR)/_all.c.o \ | |||
| $(OBJDIR)/_data.cpp.o | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| # Simple plugins | |||
| @@ -187,7 +166,7 @@ zynaddsubfx/UI/%.h: zynaddsubfx/UI/%.fl | |||
| $(OBJDIR)/_all.c.o: _all.c | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling $<" | |||
| @$(CC) $< $(ALL_C_FLAGS) -c -o $@ | |||
| @$(CC) $< $(BUILD_C_FLAGS) -c -o $@ | |||
| $(OBJDIR)/%.c.o: %.c | |||
| -@mkdir -p $(OBJDIR) | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * 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 | |||
| * 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. | |||
| */ | |||
| #include "CarlaDefines.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_nekobi(void); | |||
| extern void carla_register_native_plugin_distrho_pingpongpan(void); | |||
| #ifdef WANT_DISTRHO_PROM | |||
| extern void carla_register_native_plugin_distrho_prom(void); | |||
| #endif | |||
| // External-UI plugins | |||
| extern void carla_register_native_plugin_bigmeter(void); | |||
| extern void carla_register_native_plugin_notes(void); | |||
| #ifdef WANT_ZYNADDSUBFX | |||
| // ZynAddSubFX | |||
| extern void carla_register_native_plugin_zynaddsubfx_fx(void); | |||
| extern void carla_register_native_plugin_zynaddsubfx_synth(void); | |||
| #endif | |||
| #ifdef WANT_EXPERIMENTAL_PLUGINS | |||
| // Experimental plugins | |||
| 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_rev1(void); | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||
| void carla_register_all_plugins(void) | |||
| void carla_register_all_native_plugins(void) | |||
| { | |||
| // Simple plugins | |||
| carla_register_native_plugin_bypass(); | |||
| @@ -84,10 +78,14 @@ void carla_register_all_plugins(void) | |||
| // MIDI file and sequencer | |||
| carla_register_native_plugin_midifile(); | |||
| #ifndef CARLA_OS_WIN | |||
| carla_register_native_plugin_midisequencer(); | |||
| #endif | |||
| #ifndef CARLA_OS_WIN | |||
| // Carla | |||
| carla_register_native_plugin_carla(); | |||
| #endif | |||
| // DISTRHO Plugins | |||
| 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_nekobi(); | |||
| carla_register_native_plugin_distrho_pingpongpan(); | |||
| #ifdef WANT_DISTRHO_PROM | |||
| #ifdef HAVE_DGL | |||
| #ifdef HAVE_PROJECTM | |||
| carla_register_native_plugin_distrho_prom(); | |||
| #endif | |||
| #endif | |||
| #ifndef CARLA_OS_WIN | |||
| // External-UI plugins | |||
| carla_register_native_plugin_bigmeter(); | |||
| carla_register_native_plugin_notes(); | |||
| #endif | |||
| #ifdef WANT_ZYNADDSUBFX | |||
| #ifdef HAVE_ZYN_DEPS | |||
| // ZynAddSubFX | |||
| carla_register_native_plugin_zynaddsubfx_fx(); | |||
| carla_register_native_plugin_zynaddsubfx_synth(); | |||
| #endif | |||
| #ifdef WANT_EXPERIMENTAL_PLUGINS | |||
| #ifdef HAVE_EXPERIMENTAL_PLUGINS | |||
| // Experimental plugins | |||
| carla_register_native_plugin_zita_at1(); | |||
| 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 = { | |||
| /* 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), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 2, | |||
| @@ -44,7 +44,10 @@ START_NAMESPACE_DISTRHO | |||
| static const NativePluginDescriptor _3bandeqDesc = { | |||
| /* 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), | |||
| /* 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 | |||
| @@ -44,7 +44,10 @@ START_NAMESPACE_DISTRHO | |||
| static const NativePluginDescriptor _3bandsplitterDesc = { | |||
| /* 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), | |||
| /* 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 | |||
| @@ -45,7 +45,10 @@ START_NAMESPACE_DISTRHO | |||
| static const NativePluginDescriptor _mverbDesc = { | |||
| /* 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), | |||
| /* 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 | |||
| @@ -44,11 +44,17 @@ START_NAMESPACE_DISTRHO | |||
| static const NativePluginDescriptor nekobiDesc = { | |||
| /* 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), | |||
| /* 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), | |||
| /* 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), | |||
| /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES | |||
| |NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 1, | |||
| @@ -44,7 +44,10 @@ START_NAMESPACE_DISTRHO | |||
| static const NativePluginDescriptor pingpongpanDesc = { | |||
| /* 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), | |||
| /* 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 | |||
| @@ -31,7 +31,10 @@ START_NAMESPACE_DISTRHO | |||
| static const NativePluginDescriptor promDesc = { | |||
| /* 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), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| @@ -99,7 +99,8 @@ private: | |||
| static const NativePluginDescriptor notesDesc = { | |||
| /* 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), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 0, | |||
| @@ -1334,7 +1334,9 @@ protected: | |||
| static const NativePluginDescriptor fxAlienWahDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -1351,7 +1353,9 @@ static const NativePluginDescriptor fxAlienWahDesc = { | |||
| static const NativePluginDescriptor fxChorusDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -1368,7 +1372,8 @@ static const NativePluginDescriptor fxChorusDesc = { | |||
| static const NativePluginDescriptor fxDistortionDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -1385,7 +1390,8 @@ static const NativePluginDescriptor fxDistortionDesc = { | |||
| static const NativePluginDescriptor fxDynamicFilterDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -1402,7 +1408,9 @@ static const NativePluginDescriptor fxDynamicFilterDesc = { | |||
| static const NativePluginDescriptor fxEchoDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -1419,7 +1427,8 @@ static const NativePluginDescriptor fxEchoDesc = { | |||
| static const NativePluginDescriptor fxPhaserDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -1436,7 +1445,8 @@ static const NativePluginDescriptor fxPhaserDesc = { | |||
| static const NativePluginDescriptor fxReverbDesc = { | |||
| /* 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), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| @@ -27,6 +27,10 @@ | |||
| #include "Misc/Part.h" | |||
| #include "Misc/Util.h" | |||
| #ifdef HAVE_ZYN_UI_DEPS | |||
| # define WANT_ZYNADDSUBFX_UI | |||
| #endif | |||
| #ifdef WANT_ZYNADDSUBFX_UI | |||
| # ifdef override | |||
| # define override_hack | |||
| @@ -36,10 +36,10 @@ using CarlaBackend::CarlaPlugin; | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_EXTERN_C | |||
| std::size_t carla_getNativePluginCount(); | |||
| std::size_t carla_getNativePluginCount() noexcept; | |||
| CARLA_EXTERN_C | |||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index); | |||
| const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index) noexcept; | |||
| // ----------------------------------------------------------------------- | |||
| // Plugin List | |||
| @@ -17,7 +17,11 @@ | |||
| #include "CarlaUtils.hpp" | |||
| #include <cstdint> | |||
| #ifdef CARLA_PROPER_CPP11_SUPPORT | |||
| # include <cstdint> | |||
| #else | |||
| # include <stdint.h> | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||