| @@ -35,12 +35,13 @@ BIN: libs backend bridges discovery plugin theme | |||
| ALL_LIBS += source/backend/carla_engine.a | |||
| ALL_LIBS += source/backend/carla_engine_plugin.a | |||
| ALL_LIBS += source/backend/carla_plugin.a | |||
| ALL_LIBS += source/modules/jackbridge.a | |||
| ALL_LIBS += source/modules/juce_audio_basics.a | |||
| ALL_LIBS += source/modules/juce_audio_formats.a | |||
| ALL_LIBS += source/modules/juce_core.a | |||
| ALL_LIBS += source/modules/lilv.a | |||
| ALL_LIBS += source/modules/native-plugins.a | |||
| ALL_LIBS += source/modules/rtmempool.a | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| ALL_LIBS += source/modules/juce_audio_devices.a | |||
| @@ -55,13 +56,6 @@ ALL_LIBS += source/modules/rtaudio.a | |||
| ALL_LIBS += source/modules/rtmidi.a | |||
| endif | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| ALL_LIBS += source/modules/lilv.a | |||
| endif | |||
| ALL_LIBS += source/modules/native-plugins.a | |||
| ALL_LIBS += source/modules/rtmempool.a | |||
| ifeq ($(HAVE_QT4),true) | |||
| ALL_LIBS += source/modules/theme.qt4.a | |||
| endif | |||
| @@ -502,7 +496,6 @@ endif | |||
| @echo "$(tS)---> Plugin formats: $(tE)" | |||
| @echo "Internal:$(ANS_YES)" | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| @echo "LADSPA: $(ANS_YES)" | |||
| @echo "DSSI: $(ANS_YES)" | |||
| @echo "LV2: $(ANS_YES)" | |||
| @@ -516,18 +509,9 @@ ifeq ($(MACOS),true) | |||
| @echo "AU: $(ANS_YES)" | |||
| else | |||
| @echo "AU: $(ANS_NO) $(mZ)MacOS only$(mE)" | |||
| endif | |||
| else | |||
| @echo "LADSPA: $(ANS_NO) $(mS)Plugins disabled$(mE)" | |||
| @echo "DSSI: $(ANS_NO) $(mS)Plugins disabled$(mE)" | |||
| @echo "LV2: $(ANS_NO) $(mS)Plugins disabled$(mE)" | |||
| @echo "VST: $(ANS_NO) $(mS)Plugins disabled$(mE)" | |||
| @echo "VST3: $(ANS_NO) $(mS)Plugins disabled$(mE)" | |||
| @echo "AU: $(ANS_NO) $(mS)Plugins disabled$(mE)" | |||
| endif | |||
| @echo "" | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| @echo "$(tS)---> LV2 UI toolkit support: $(tE)" | |||
| # @echo "External:$(ANS_YES) (direct+bridge)" | |||
| ifeq ($(HAVE_GTK2),true) | |||
| @@ -566,10 +550,8 @@ endif | |||
| # @echo "Windows: $(ANS_NO) $(mZ)Windows only$(mE)" | |||
| # endif | |||
| @echo "" | |||
| endif | |||
| @echo "$(tS)---> File formats: $(tE)" | |||
| ifeq ($(CARLA_SAMPLERS_SUPPORT),true) | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| @echo "GIG:$(ANS_YES)" | |||
| else | |||
| @@ -584,11 +566,6 @@ ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| @echo "SFZ:$(ANS_YES)" | |||
| else | |||
| @echo "SFZ:$(ANS_NO) $(mS)LinuxSampler missing$(mE)" | |||
| endif | |||
| else | |||
| @echo "GIG:$(ANS_NO) $(mS)Samplers disabled$(mE)" | |||
| @echo "SF2:$(ANS_NO) $(mS)Samplers disabled$(mE)" | |||
| @echo "SFZ:$(ANS_NO) $(mS)Samplers disabled$(mE)" | |||
| endif | |||
| @echo "" | |||
| @@ -7,12 +7,6 @@ | |||
| # -------------------------------------------------------------- | |||
| # Modify to enable/disable specific features | |||
| # Support for LADSPA, DSSI, LV2, VST and AU plugins | |||
| CARLA_PLUGIN_SUPPORT = true | |||
| # Support for GIG, SF2 and SFZ sample banks (through fluidsynth and linuxsampler) | |||
| CARLA_SAMPLERS_SUPPORT = true | |||
| # Use the free vestige header instead of the official VST SDK | |||
| CARLA_VESTIGE_HEADER = true | |||
| @@ -157,10 +151,8 @@ HAVE_X11 = $(shell pkg-config --exists x11 && echo true) | |||
| endif | |||
| endif | |||
| ifeq ($(CARLA_SAMPLERS_SUPPORT),true) | |||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Set Qt tools | |||
| @@ -214,10 +206,22 @@ HAVE_ZYN_UI_DEPS = $(shell pkg-config --exists ntk_images ntk && echo true) | |||
| # -------------------------------------------------------------- | |||
| # Set base defines | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| BASE_FLAGS += -DHAVE_FLUIDSYNTH | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| BASE_FLAGS += -DHAVE_LINUXSAMPLER | |||
| endif | |||
| ifeq ($(HAVE_X11),true) | |||
| BASE_FLAGS += -DHAVE_X11 | |||
| endif | |||
| ifeq ($(CARLA_VESTIGE_HEADER),true) | |||
| BASE_FLAGS += -DVESTIGE_HEADER | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Set libs stuff (part 1) | |||
| @@ -447,56 +447,47 @@ const char* carla_get_complete_license_text() | |||
| text1 += "<ul>"; | |||
| // Plugin formats | |||
| #ifdef WANT_LADSPA | |||
| text2 += "<li>LADSPA plugin support, http://www.ladspa.org/</li>"; | |||
| #endif | |||
| #ifdef WANT_DSSI | |||
| text2 += "<li>DSSI plugin support, http://dssi.sourceforge.net/</li>"; | |||
| #endif | |||
| #ifdef WANT_LV2 | |||
| text2 += "<li>LV2 plugin support, http://lv2plug.in/</li>"; | |||
| #endif | |||
| #ifdef WANT_VST | |||
| # ifdef VESTIGE_HEADER | |||
| #ifdef VESTIGE_HEADER | |||
| text2 += "<li>VST plugin support, using VeSTige header by Javier Serrano Polo</li>"; | |||
| # else | |||
| #else | |||
| text2 += "<li>VST plugin support, using official VST SDK 2.4 (trademark of Steinberg Media Technologies GmbH)</li>"; | |||
| # endif | |||
| #endif | |||
| #ifdef WANT_AU | |||
| #if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||
| text2 += "<li>VST3 plugin support</li>"; // FIXME | |||
| #endif | |||
| #ifdef CARLA_OS_MAC | |||
| text2 += "<li>AU plugin support</li>"; // FIXME | |||
| #endif | |||
| // Sample kit libraries | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| text2 += "<li>FluidSynth library for SF2 support, http://www.fluidsynth.org/</li>"; | |||
| #endif | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| text2 += "<li>LinuxSampler library for GIG and SFZ support*, http://www.linuxsampler.org/</li>"; | |||
| #endif | |||
| #ifdef WANT_NATIVE | |||
| // Internal plugins | |||
| text3 += "<li>NekoFilter plugin code, based on lv2fil by Nedko Arnaudov and Fons Adriaensen</li>"; | |||
| # ifdef WANT_ZYNADDSUBFX | |||
| #ifdef WANT_ZYNADDSUBFX | |||
| text3 += "<li>ZynAddSubFX plugin code, http://zynaddsubfx.sf.net/</li>"; | |||
| # ifdef WANT_ZYNADDSUBFX_UI | |||
| # ifdef WANT_ZYNADDSUBFX_UI | |||
| text3 += "<li>ZynAddSubFX UI using NTK, http://non.tuxfamily.org/wiki/NTK</li>"; | |||
| # endif | |||
| # endif | |||
| #endif | |||
| // misc libs | |||
| text4 += "<li>liblo library for OSC support, http://liblo.sourceforge.net/</li>"; | |||
| #ifdef WANT_LV2 | |||
| text4 += "<li>serd, sord, sratom and lilv libraries for LV2 discovery, http://drobilla.net/software/lilv/</li>"; | |||
| #endif | |||
| text4 += "<li>RtAudio+RtMidi libraries for extra Audio and MIDI support, http://www.music.mcgill.ca/~gary/rtaudio/</li>"; | |||
| // end | |||
| text4 += "</ul>"; | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| // LinuxSampler GPL exception | |||
| text4 += "<p>(*) Using LinuxSampler code in commercial hardware or software products is not allowed without prior written authorization by the authors.</p>"; | |||
| #endif | |||
| @@ -519,10 +510,10 @@ const char* carla_get_supported_file_extensions() | |||
| retText += "*.carxp;*.carxs"; | |||
| // Sample kits | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| retText += ";*.sf2"; | |||
| #endif | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| retText += ";*.gig;*.sfz"; | |||
| #endif | |||
| @@ -603,18 +594,13 @@ uint carla_get_internal_plugin_count() | |||
| { | |||
| carla_debug("carla_get_internal_plugin_count()"); | |||
| #ifdef WANT_NATIVE | |||
| return static_cast<uint>(CarlaPlugin::getNativePluginCount()); | |||
| #else | |||
| return 0; | |||
| #endif | |||
| } | |||
| const CarlaNativePluginInfo* carla_get_internal_plugin_info(uint index) | |||
| { | |||
| carla_debug("carla_get_internal_plugin_info(%i)", index); | |||
| #ifdef WANT_NATIVE | |||
| static CarlaNativePluginInfo info; | |||
| const NativePluginDescriptor* const nativePlugin(CarlaPlugin::getNativePluginDescriptor(index)); | |||
| @@ -654,12 +640,6 @@ const CarlaNativePluginInfo* carla_get_internal_plugin_info(uint index) | |||
| checkStringPtr(info.copyright); | |||
| return &info; | |||
| #else | |||
| return nullptr; | |||
| // unused | |||
| (void)index; | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -2272,17 +2252,7 @@ const char* carla_get_host_osc_url_udp() | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| #ifdef WANT_DSSI | |||
| # include "CarlaDssiUtils.cpp" | |||
| #endif | |||
| #include "CarlaDssiUtils.cpp" | |||
| #include "CarlaStateUtils.cpp" | |||
| #if 0 | |||
| int main(int argc, char* argv[]) | |||
| { | |||
| return 0; | |||
| } | |||
| #endif | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -16,13 +16,10 @@ STANDALONE_LIBS += ../modules/jackbridge.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_basics.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_formats.a | |||
| STANDALONE_LIBS += ../modules/juce_core.a | |||
| STANDALONE_LIBS += ../modules/lilv.a | |||
| STANDALONE_LIBS += ../modules/native-plugins.a | |||
| STANDALONE_LIBS += ../modules/rtmempool.a | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| STANDALONE_LIBS += ../modules/lilv.a | |||
| endif | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| STANDALONE_LIBS += ../modules/juce_audio_devices.a | |||
| STANDALONE_LIBS += ../modules/juce_audio_processors.a | |||
| @@ -43,21 +40,10 @@ STANDALONE_FLAGS += $(JUCE_CORE_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | |||
| STANDALONE_FLAGS += $(LIBLO_LIBS) | |||
| STANDALONE_FLAGS += $(LILV_LIBS) | |||
| STANDALONE_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
| STANDALONE_FLAGS += $(RTMEMPOOL_LIBS) | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| STANDALONE_FLAGS += $(LILV_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| STANDALONE_FLAGS += $(FLUIDSYNTH_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| STANDALONE_FLAGS += $(LINUXSAMPLER_LIBS) | |||
| endif | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
| STANDALONE_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| @@ -71,6 +57,14 @@ STANDALONE_FLAGS += $(RTAUDIO_LIBS) | |||
| STANDALONE_FLAGS += $(RTMIDI_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| STANDALONE_FLAGS += $(FLUIDSYNTH_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| STANDALONE_FLAGS += $(LINUXSAMPLER_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_X11),true) | |||
| STANDALONE_FLAGS += $(X11_LIBS) | |||
| endif | |||
| @@ -18,33 +18,6 @@ BUILD_CXX_FLAGS += $(LIBLO_FLAGS) | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| BUILD_CXX_FLAGS += -DWANT_NATIVE | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| BUILD_CXX_FLAGS += -DWANT_VST3 | |||
| endif | |||
| ifeq ($(MACOS),true) | |||
| BUILD_CXX_FLAGS += -DWANT_AU | |||
| endif | |||
| ifeq ($(CARLA_VESTIGE_HEADER),true) | |||
| BUILD_CXX_FLAGS += -DVESTIGE_HEADER | |||
| endif | |||
| endif | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| BUILD_CXX_FLAGS += -DWANT_FLUIDSYNTH | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| BUILD_CXX_FLAGS += -DWANT_LINUXSAMPLER | |||
| endif | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| BUILD_CXX_FLAGS += $(NATIVE_PLUGINS_FLAGS) | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| @@ -382,12 +382,10 @@ int CarlaEngineOsc::handleMessage(const bool isTCP, const char* const path, cons | |||
| #endif | |||
| // Plugin-specific methods | |||
| #ifdef WANT_LV2 | |||
| if (std::strcmp(method, "lv2_atom_transfer") == 0) | |||
| return handleMsgLv2AtomTransfer(plugin, argc, argv, types); | |||
| if (std::strcmp(method, "lv2_urid_map") == 0) | |||
| return handleMsgLv2UridMap(plugin, argc, argv, types); | |||
| #endif | |||
| carla_stderr("CarlaEngineOsc::handleMessage() - unsupported OSC method '%s'", method); | |||
| return 1; | |||
| @@ -136,10 +136,8 @@ private: | |||
| int handleMsgNoteOff(CARLA_ENGINE_OSC_HANDLE_ARGS2); | |||
| #endif | |||
| #ifdef WANT_LV2 | |||
| int handleMsgLv2AtomTransfer(CARLA_ENGINE_OSC_HANDLE_ARGS2); | |||
| int handleMsgLv2UridMap(CARLA_ENGINE_OSC_HANDLE_ARGS2); | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||
| @@ -21,11 +21,13 @@ | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CarlaPlugin* CarlaPlugin::newAU(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newAU({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.uniqueId); | |||
| #if defined(WANT_AU) && defined(CARLA_OS_MAC) | |||
| #if defined(CARLA_OS_MAC) | |||
| return newJuce(init, "AU"); | |||
| #else | |||
| init.engine->setLastError("AU support not available"); | |||
| @@ -33,4 +35,6 @@ CarlaPlugin* CarlaPlugin::newAU(const Initializer& init) | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -72,47 +72,6 @@ struct ParamSymbol { | |||
| // ----------------------------------------------------------------------- | |||
| CarlaPlugin* CarlaPlugin::newFileGIG(const Initializer& init, const bool use16Outs) | |||
| { | |||
| carla_debug("CarlaPlugin::newFileGIG({%p, \"%s\", \"%s\", \"%s\"}, %s)", init.engine, init.filename, init.name, init.label, bool2str(use16Outs)); | |||
| #ifdef WANT_LINUXSAMPLER | |||
| return newLinuxSampler(init, "GIG", use16Outs); | |||
| #else | |||
| init.engine->setLastError("GIG support not available"); | |||
| return nullptr; | |||
| // unused | |||
| (void)use16Outs; | |||
| #endif | |||
| } | |||
| CarlaPlugin* CarlaPlugin::newFileSF2(const Initializer& init, const bool use16Outs) | |||
| { | |||
| carla_debug("CarlaPlugin::newFileSF2({%p, \"%s\", \"%s\", \"%s\"}, %s)", init.engine, init.filename, init.name, init.label, bool2str(use16Outs)); | |||
| #if defined(WANT_FLUIDSYNTH) | |||
| return newFluidSynth(init, use16Outs); | |||
| #elif defined(WANT_LINUXSAMPLER) | |||
| return newLinuxSampler(init, "SF2", use16Outs); | |||
| #else | |||
| init.engine->setLastError("SF2 support not available"); | |||
| return nullptr; | |||
| // unused | |||
| (void)use16Outs; | |||
| #endif | |||
| } | |||
| CarlaPlugin* CarlaPlugin::newFileSFZ(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newFileSFZ({%p, \"%s\", \"%s\", \"%s\"})", init.engine, init.filename, init.name, init.label); | |||
| #ifdef WANT_LINUXSAMPLER | |||
| return newLinuxSampler(init, "SFZ", false); | |||
| #else | |||
| init.engine->setLastError("SFZ support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| // Constructor and destructor | |||
| @@ -18,8 +18,6 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef WANT_DSSI | |||
| #include "CarlaDssiUtils.hpp" | |||
| #include "CarlaBase64Utils.hpp" | |||
| @@ -2281,19 +2279,12 @@ private: | |||
| LinkedList<const char*> DssiPlugin::sMultiSynthList; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_DSSI | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newDSSI(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newDSSI({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.label, init.uniqueId); | |||
| #ifdef WANT_DSSI | |||
| DssiPlugin* const plugin(new DssiPlugin(init.engine, init.id)); | |||
| if (! plugin->init(init.filename, init.name, init.label)) | |||
| @@ -2312,12 +2303,8 @@ CarlaPlugin* CarlaPlugin::newDSSI(const Initializer& init) | |||
| } | |||
| return plugin; | |||
| #else | |||
| init.engine->setLastError("DSSI support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -18,7 +18,7 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| #include "CarlaMathUtils.hpp" | |||
| @@ -1671,15 +1671,17 @@ private: | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_FLUIDSYNTH | |||
| #endif // HAVE_FLUIDSYNTH | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CarlaPlugin* CarlaPlugin::newFluidSynth(const Initializer& init, const bool use16Outs) | |||
| { | |||
| carla_debug("CarlaPlugin::newFluidSynth({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "}, %s)", init.engine, init.filename, init.name, init.label, init.uniqueId, bool2str(use16Outs)); | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| if (init.engine->getProccessMode() == ENGINE_PROCESS_MODE_CONTINUOUS_RACK && use16Outs) | |||
| { | |||
| init.engine->setLastError("Carla's rack mode can only work with Stereo modules, please choose the 2-channel only SoundFont version"); | |||
| @@ -1712,4 +1714,20 @@ CarlaPlugin* CarlaPlugin::newFluidSynth(const Initializer& init, const bool use1 | |||
| #endif | |||
| } | |||
| CarlaPlugin* CarlaPlugin::newFileSF2(const Initializer& init, const bool use16Outs) | |||
| { | |||
| carla_debug("CarlaPlugin::newFileSF2({%p, \"%s\", \"%s\", \"%s\"}, %s)", init.engine, init.filename, init.name, init.label, bool2str(use16Outs)); | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| return newFluidSynth(init, use16Outs); | |||
| #else | |||
| init.engine->setLastError("SF2 support not available"); | |||
| return nullptr; | |||
| // unused | |||
| (void)use16Outs; | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -18,19 +18,11 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef WANT_LADSPA | |||
| #include "CarlaLadspaUtils.hpp" | |||
| #include "CarlaMathUtils.hpp" | |||
| // ----------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| #if 0 | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------- | |||
| class LadspaPlugin : public CarlaPlugin | |||
| @@ -1715,19 +1707,12 @@ private: | |||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(LadspaPlugin) | |||
| }; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_LADSPA | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newLADSPA(const Initializer& init, const LADSPA_RDF_Descriptor* const rdfDescriptor) | |||
| { | |||
| carla_debug("CarlaPlugin::newLADSPA({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "}, %p)", init.engine, init.filename, init.name, init.label, init.uniqueId, rdfDescriptor); | |||
| #ifdef WANT_LADSPA | |||
| LadspaPlugin* const plugin(new LadspaPlugin(init.engine, init.id)); | |||
| if (! plugin->init(init.filename, init.name, init.label, rdfDescriptor)) | |||
| @@ -1746,12 +1731,8 @@ CarlaPlugin* CarlaPlugin::newLADSPA(const Initializer& init, const LADSPA_RDF_De | |||
| } | |||
| return plugin; | |||
| #else | |||
| init.engine->setLastError("LADSPA support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -24,7 +24,7 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| #include "CarlaBackendUtils.hpp" | |||
| #include "CarlaMathUtils.hpp" | |||
| @@ -1327,15 +1327,17 @@ private: | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_LINUXSAMPLER | |||
| #endif // HAVE_LINUXSAMPLER | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CarlaPlugin* CarlaPlugin::newLinuxSampler(const Initializer& init, const char* const format, const bool use16Outs) | |||
| { | |||
| carla_debug("LinuxSamplerPlugin::newLinuxSampler({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "}, %s, %s)", init.engine, init.filename, init.name, init.label, init.uniqueId, format, bool2str(use16Outs)); | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| if (init.engine->getProccessMode() == ENGINE_PROCESS_MODE_CONTINUOUS_RACK && use16Outs) | |||
| { | |||
| init.engine->setLastError("Carla's rack mode can only work with Stereo modules, please choose the 2-channel only sample-library version"); | |||
| @@ -1372,4 +1374,31 @@ CarlaPlugin* CarlaPlugin::newLinuxSampler(const Initializer& init, const char* c | |||
| #endif | |||
| } | |||
| CarlaPlugin* CarlaPlugin::newFileGIG(const Initializer& init, const bool use16Outs) | |||
| { | |||
| carla_debug("CarlaPlugin::newFileGIG({%p, \"%s\", \"%s\", \"%s\"}, %s)", init.engine, init.filename, init.name, init.label, bool2str(use16Outs)); | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| return newLinuxSampler(init, "GIG", use16Outs); | |||
| #else | |||
| init.engine->setLastError("GIG support not available"); | |||
| return nullptr; | |||
| // unused | |||
| (void)use16Outs; | |||
| #endif | |||
| } | |||
| CarlaPlugin* CarlaPlugin::newFileSFZ(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newFileSFZ({%p, \"%s\", \"%s\", \"%s\"})", init.engine, init.filename, init.name, init.label); | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| return newLinuxSampler(init, "SFZ", false); | |||
| #else | |||
| init.engine->setLastError("SFZ support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -22,8 +22,6 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef WANT_LV2 | |||
| #include "CarlaLv2Utils.hpp" | |||
| #include "CarlaBase64Utils.hpp" | |||
| @@ -43,13 +41,9 @@ using juce::File; | |||
| #define URI_CARLA_ATOM_WORKER "http://kxstudio.sf.net/ns/carla/atomWorker" | |||
| #define URI_CARLA_FRONTEND_WIN_ID "http://kxstudio.sf.net/ns/carla/frontendWinId" | |||
| // ----------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| #if 0 | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------- | |||
| // Maximum default buffer size | |||
| const uint MAX_DEFAULT_BUFFER_SIZE = 8192; // 0x2000 | |||
| @@ -5820,19 +5814,12 @@ int CarlaEngineOsc::handleMsgLv2UridMap(CARLA_ENGINE_OSC_HANDLE_ARGS2) | |||
| #undef lv2PluginPtr | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_LV2 | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newLV2(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newLV2({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.name, init.label, init.uniqueId); | |||
| #ifdef WANT_LV2 | |||
| Lv2Plugin* const plugin(new Lv2Plugin(init.engine, init.id)); | |||
| if (! plugin->init(init.filename, init.name, init.label)) | |||
| @@ -5851,12 +5838,8 @@ CarlaPlugin* CarlaPlugin::newLV2(const Initializer& init) | |||
| } | |||
| return plugin; | |||
| #else | |||
| init.engine->setLastError("LV2 support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -18,8 +18,6 @@ | |||
| #include "CarlaPluginInternal.hpp" | |||
| #include "CarlaEngine.hpp" | |||
| #ifdef WANT_NATIVE | |||
| #include "CarlaMathUtils.hpp" | |||
| #include "CarlaNative.h" | |||
| @@ -41,9 +39,7 @@ void carla_register_native_plugin(const NativePluginDescriptor* desc) | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| #if 0 | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------- | |||
| struct NativePluginMidiData { | |||
| uint32_t count; | |||
| @@ -2436,15 +2432,8 @@ private: | |||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NativePlugin) | |||
| }; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_NATIVE | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| #ifdef WANT_NATIVE | |||
| size_t CarlaPlugin::getNativePluginCount() noexcept | |||
| { | |||
| return NativePlugin::getPluginCount(); | |||
| @@ -2454,7 +2443,6 @@ const NativePluginDescriptor* CarlaPlugin::getNativePluginDescriptor(const size_ | |||
| { | |||
| return NativePlugin::getPluginDescriptor(index); | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||
| @@ -2462,7 +2450,6 @@ CarlaPlugin* CarlaPlugin::newNative(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newNative({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.label, init.uniqueId); | |||
| #ifdef WANT_NATIVE | |||
| NativePlugin* const plugin(new NativePlugin(init.engine, init.id)); | |||
| if (! plugin->init(init.name, init.label)) | |||
| @@ -2481,12 +2468,8 @@ CarlaPlugin* CarlaPlugin::newNative(const Initializer& init) | |||
| } | |||
| return plugin; | |||
| #else | |||
| init.engine->setLastError("Internal plugins support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -21,11 +21,13 @@ | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CarlaPlugin* CarlaPlugin::newVST3(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newVST3({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.uniqueId); | |||
| #if defined(WANT_VST) && (defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN)) | |||
| #if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||
| return newJuce(init, "VST3"); | |||
| #else | |||
| init.engine->setLastError("VST3 support not available"); | |||
| @@ -33,4 +35,6 @@ CarlaPlugin* CarlaPlugin::newVST3(const Initializer& init) | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -20,11 +20,9 @@ | |||
| #if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||
| # define USE_JUCE_FOR_VST 1 | |||
| #else | |||
| # define USE_JUCE_FOR_VST 0 | |||
| #endif | |||
| #if defined(WANT_VST) && ! USE_JUCE_FOR_VST | |||
| #ifndef USE_JUCE_FOR_VST | |||
| #include "CarlaVstUtils.hpp" | |||
| @@ -2528,7 +2526,7 @@ VstPlugin* VstPlugin::sLastVstPlugin = nullptr; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // WANT_VST && ! USE_JUCE_FOR_VST | |||
| #endif // ! USE_JUCE_FOR_VST | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -2538,10 +2536,9 @@ CarlaPlugin* CarlaPlugin::newVST(const Initializer& init) | |||
| { | |||
| carla_debug("CarlaPlugin::newVST({%p, \"%s\", \"%s\", " P_INT64 "})", init.engine, init.filename, init.name, init.uniqueId); | |||
| #ifdef WANT_VST | |||
| # if USE_JUCE_FOR_VST | |||
| #if USE_JUCE_FOR_VST | |||
| return newJuce(init, "VST"); | |||
| # else | |||
| #else | |||
| VstPlugin* const plugin(new VstPlugin(init.engine, init.id)); | |||
| if (! plugin->init(init.filename, init.name, init.uniqueId)) | |||
| @@ -2560,13 +2557,9 @@ CarlaPlugin* CarlaPlugin::newVST(const Initializer& init) | |||
| } | |||
| return plugin; | |||
| # endif | |||
| #else | |||
| init.engine->setLastError("VST support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -122,7 +122,7 @@ void CarlaBridgeOsc::close() | |||
| } | |||
| fServerPath.clear(); | |||
| fControlData.free(); | |||
| fControlData.clear(); | |||
| CARLA_ASSERT(fName.isEmpty()); | |||
| CARLA_ASSERT(fServerPath.isEmpty()); | |||
| @@ -25,15 +25,9 @@ LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_CORE_LIBS) | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_PLUGIN_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST -DWANT_VST3 | |||
| ifeq ($(MACOS),true) | |||
| BUILD_CXX_FLAGS += -DWANT_AU | |||
| endif | |||
| ifeq ($(CARLA_VESTIGE_HEADER),true) | |||
| BUILD_PLUGIN_FLAGS += -DVESTIGE_HEADER | |||
| endif | |||
| endif | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| LINK_PLUGIN_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| @@ -75,17 +69,15 @@ WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -L../modules | |||
| # -------------------------------------------------------------- | |||
| # Plugin bridges (Native) | |||
| NATIVE_BUILD_FLAGS = $(POSIX_BUILD_FLAGS) -DWANT_NATIVE | |||
| NATIVE_BUILD_FLAGS = $(POSIX_BUILD_FLAGS) | |||
| NATIVE_LINK_FLAGS = $(POSIX_LINK_FLAGS) | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| NATIVE_BUILD_FLAGS += -DWANT_FLUIDSYNTH | |||
| NATIVE_BUILD_FLAGS += $(FLUIDSYNTH_FLAGS) | |||
| NATIVE_LINK_FLAGS += $(FLUIDSYNTH_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| NATIVE_BUILD_FLAGS += -DWANT_LINUXSAMPLER | |||
| NATIVE_BUILD_FLAGS += $(LINUXSAMPLER_FLAGS) | |||
| NATIVE_LINK_FLAGS += $(LINUXSAMPLER_LIBS) | |||
| endif | |||
| @@ -106,8 +98,6 @@ TARGETS = native | |||
| # -------------------------------------------------------------- | |||
| # UI bridges | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_UI_FLAGS = $(BUILD_CXX_FLAGS) -DBUILD_BRIDGE_UI | |||
| LINK_UI_FLAGS = $(LINK_FLAGS) | |||
| @@ -192,8 +182,6 @@ ifeq ($(WIN32),true) | |||
| # TARGETS += ui_vst-hwnd | |||
| endif | |||
| endif # CARLA_PLUGIN_SUPPORT | |||
| # -------------------------------------------------------------- | |||
| all: $(TARGETS) | |||
| @@ -427,6 +415,7 @@ LIBS_NATIVE = \ | |||
| ../modules/juce_audio_basics.a \ | |||
| ../modules/juce_audio_formats.a \ | |||
| ../modules/juce_core.a \ | |||
| ../modules/lilv.a \ | |||
| ../modules/rtmempool.a | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| @@ -439,11 +428,6 @@ LIBS_NATIVE += \ | |||
| ../modules/juce_gui_extra.a | |||
| endif | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| LIBS_NATIVE += \ | |||
| ../modules/lilv.a | |||
| endif | |||
| ../../bin/carla-bridge-native: $(OBJS_NATIVE) $(LIBS_NATIVE) | |||
| $(CXX) $(OBJS_NATIVE) -Wl,--start-group $(LIBS_NATIVE) -Wl,--end-group $(NATIVE_LINK_FLAGS) -o $@ | |||
| @@ -20,39 +20,28 @@ endif | |||
| # -------------------------------------------------------------- | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| BUILD_CXX_FLAGS += -DWANT_VST3 | |||
| endif | |||
| ifeq ($(MACOS),true) | |||
| BUILD_CXX_FLAGS += -DWANT_AU | |||
| endif | |||
| ifeq ($(CARLA_VESTIGE_HEADER),true) | |||
| BUILD_CXX_FLAGS += -DVESTIGE_HEADER | |||
| endif | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| NATIVE_FLAGS += -DWANT_FLUIDSYNTH $(FLUIDSYNTH_FLAGS) $(FLUIDSYNTH_LIBS) | |||
| NATIVE_FLAGS += $(FLUIDSYNTH_FLAGS) $(FLUIDSYNTH_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| NATIVE_FLAGS += -DWANT_LINUXSAMPLER $(LINUXSAMPLER_FLAGS) $(LINUXSAMPLER_LIBS) | |||
| NATIVE_FLAGS += $(LINUXSAMPLER_FLAGS) $(LINUXSAMPLER_LIBS) | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| LIBS += ../modules/lilv.a | |||
| LIBS_posix32 += ../modules/lilv.posix32.a | |||
| LIBS_posix64 += ../modules/lilv.posix64.a | |||
| LIBS_win32 += ../modules/lilv.win32.a | |||
| LIBS_win64 += ../modules/lilv.win64.a | |||
| LINK_FLAGS += $(LILV_LIBS) | |||
| endif | |||
| LIBS = ../modules/lilv.a | |||
| LIBS_posix32 = ../modules/lilv.posix32.a | |||
| LIBS_posix64 = ../modules/lilv.posix64.a | |||
| LIBS_win32 = ../modules/lilv.win32.a | |||
| LIBS_win64 = ../modules/lilv.win64.a | |||
| LINK_FLAGS = $(LILV_LIBS) | |||
| LIBS += ../modules/juce_audio_basics.a | |||
| LIBS_posix32 += ../modules/juce_audio_basics.posix32.a | |||
| @@ -21,26 +21,20 @@ | |||
| #include "CarlaMIDI.h" | |||
| #if defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN) | |||
| # define WANT_JUCE_PROCESSORS | |||
| # define USE_JUCE_PROCESSORS | |||
| # include "juce_audio_processors.h" | |||
| #endif | |||
| #ifdef WANT_LADSPA | |||
| # include "CarlaLadspaUtils.hpp" | |||
| #endif | |||
| #ifdef WANT_DSSI | |||
| # include "CarlaDssiUtils.cpp" | |||
| #endif | |||
| #ifdef WANT_LV2 | |||
| # include "CarlaLv2Utils.hpp" | |||
| #endif | |||
| #ifdef WANT_VST | |||
| # include "CarlaVstUtils.hpp" | |||
| #endif | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #include "CarlaLadspaUtils.hpp" | |||
| #include "CarlaDssiUtils.cpp" | |||
| #include "CarlaLv2Utils.hpp" | |||
| #include "CarlaVstUtils.hpp" | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| # include <fluidsynth.h> | |||
| #endif | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| # include "linuxsampler/EngineFactory.h" | |||
| #endif | |||
| @@ -75,7 +69,7 @@ static void print_lib_error(const char* const filename) | |||
| DISCOVERY_OUT("error", error); | |||
| } | |||
| #if defined(WANT_VST) && ! defined(CARLA_OS_MAC) | |||
| #ifndef CARLA_OS_MAC | |||
| // -------------------------------------------------------------------------- | |||
| // VST stuff | |||
| @@ -267,9 +261,9 @@ static intptr_t VSTCALLBACK vstHostCallback(AEffect* const effect, const int32_t | |||
| return ret; | |||
| } | |||
| #endif | |||
| #endif // ! CARLA_OS_MAC | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| // -------------------------------------------------------------------------- | |||
| // LinuxSampler stuff | |||
| @@ -399,13 +393,12 @@ private: | |||
| CARLA_PREVENT_HEAP_ALLOCATION | |||
| CARLA_DECLARE_NON_COPY_CLASS(LinuxSamplerScopedEngine) | |||
| }; | |||
| #endif | |||
| #endif // HAVE_LINUXSAMPLER | |||
| // ------------------------------ Plugin Checks ----------------------------- | |||
| static void do_ladspa_check(void*& libHandle, const char* const filename, const bool init) | |||
| { | |||
| #ifdef WANT_LADSPA | |||
| LADSPA_Descriptor_Function descFn = (LADSPA_Descriptor_Function)lib_symbol(libHandle, "ladspa_descriptor"); | |||
| if (descFn == nullptr) | |||
| @@ -635,20 +628,10 @@ static void do_ladspa_check(void*& libHandle, const char* const filename, const | |||
| DISCOVERY_OUT("parameters.outs", parametersOuts); | |||
| DISCOVERY_OUT("end", "------------"); | |||
| } | |||
| #else | |||
| DISCOVERY_OUT("error", "LADSPA support not available"); | |||
| return; | |||
| // unused | |||
| (void)libHandle; | |||
| (void)filename; | |||
| (void)init; | |||
| #endif | |||
| } | |||
| static void do_dssi_check(void*& libHandle, const char* const filename, const bool init) | |||
| { | |||
| #ifdef WANT_DSSI | |||
| DSSI_Descriptor_Function descFn = (DSSI_Descriptor_Function)lib_symbol(libHandle, "dssi_descriptor"); | |||
| if (descFn == nullptr) | |||
| @@ -946,20 +929,10 @@ static void do_dssi_check(void*& libHandle, const char* const filename, const bo | |||
| DISCOVERY_OUT("parameters.outs", parametersOuts); | |||
| DISCOVERY_OUT("end", "------------"); | |||
| } | |||
| #else | |||
| DISCOVERY_OUT("error", "DSSI support not available"); | |||
| return; | |||
| // unused | |||
| (void)libHandle; | |||
| (void)filename; | |||
| (void)init; | |||
| #endif | |||
| } | |||
| static void do_lv2_check(const char* const bundle, const bool init) | |||
| { | |||
| #ifdef WANT_LV2 | |||
| Lv2WorldClass& lv2World(Lv2WorldClass::getInstance()); | |||
| // Convert bundle filename to URI | |||
| @@ -1161,20 +1134,11 @@ static void do_lv2_check(const char* const bundle, const bool init) | |||
| delete rdfDescriptor; | |||
| } | |||
| #else | |||
| DISCOVERY_OUT("error", "LV2 support not available"); | |||
| return; | |||
| // unused | |||
| (void)bundle; | |||
| (void)init; | |||
| #endif | |||
| } | |||
| #ifndef CARLA_OS_MAC | |||
| static void do_vst_check(void*& libHandle, const bool init) | |||
| { | |||
| # ifdef WANT_VST | |||
| VST_Function vstFn = (VST_Function)lib_symbol(libHandle, "VSTPluginMain"); | |||
| if (vstFn == nullptr) | |||
| @@ -1402,19 +1366,10 @@ static void do_vst_check(void*& libHandle, const bool init) | |||
| effect->dispatcher(effect, DECLARE_VST_DEPRECATED(effIdle), 0, 0, nullptr, 0.0f); | |||
| effect->dispatcher(effect, effClose, 0, 0, nullptr, 0.0f); | |||
| #else | |||
| DISCOVERY_OUT("error", "VST support not available"); | |||
| return; | |||
| // unused | |||
| (void)libHandle; | |||
| (void)init; | |||
| #endif | |||
| } | |||
| #endif // ! CARLA_OS_MAC | |||
| #ifdef WANT_JUCE_PROCESSORS | |||
| #ifdef USE_JUCE_PROCESSORS | |||
| static void do_juce_check(const char* const filename, const char* const stype, const bool init) | |||
| { | |||
| using namespace juce; | |||
| @@ -1424,17 +1379,9 @@ static void do_juce_check(const char* const filename, const char* const stype, c | |||
| if (stype == nullptr) | |||
| return; | |||
| else if (std::strcmp(stype, "LADSPA") == 0) | |||
| { | |||
| #if defined(WANT_LADSPA) && JUCE_PLUGINHOST_LADSPA && defined(JUCE_LINUX) | |||
| pluginFormat = new LADSPAPluginFormat(); | |||
| #else | |||
| DISCOVERY_OUT("error", "LADSPA support not available"); | |||
| #endif | |||
| } | |||
| else if (std::strcmp(stype, "VST") == 0) | |||
| { | |||
| #if defined(WANT_VST) && JUCE_PLUGINHOST_VST | |||
| #if JUCE_PLUGINHOST_VST | |||
| pluginFormat = new VSTPluginFormat(); | |||
| #else | |||
| DISCOVERY_OUT("error", "VST support not available"); | |||
| @@ -1442,7 +1389,7 @@ static void do_juce_check(const char* const filename, const char* const stype, c | |||
| } | |||
| else if (std::strcmp(stype, "VST3") == 0) | |||
| { | |||
| #if defined(WANT_VST3) && JUCE_PLUGINHOST_VST3 | |||
| #if JUCE_PLUGINHOST_VST3 | |||
| pluginFormat = new VST3PluginFormat(); | |||
| #else | |||
| DISCOVERY_OUT("error", "VST3 support not available"); | |||
| @@ -1450,7 +1397,7 @@ static void do_juce_check(const char* const filename, const char* const stype, c | |||
| } | |||
| else if (std::strcmp(stype, "AU") == 0) | |||
| { | |||
| #if defined(WANT_AU) && JUCE_PLUGINHOST_AU && defined(JUCE_MAC) | |||
| #if JUCE_PLUGINHOST_AU | |||
| pluginFormat = new AudioUnitPluginFormat(); | |||
| #else | |||
| DISCOVERY_OUT("error", "AU support not available"); | |||
| @@ -1520,7 +1467,7 @@ static void do_juce_check(const char* const filename, const char* const stype, c | |||
| static void do_fluidsynth_check(const char* const filename, const bool init) | |||
| { | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #ifdef HAVE_FLUIDSYNTH | |||
| if (! fluid_is_soundfont(filename)) | |||
| { | |||
| DISCOVERY_OUT("error", "Not a SF2 file"); | |||
| @@ -1593,7 +1540,7 @@ static void do_fluidsynth_check(const char* const filename, const bool init) | |||
| DISCOVERY_OUT("parameters.ins", 13); // defined in Carla | |||
| DISCOVERY_OUT("parameters.outs", 1); | |||
| DISCOVERY_OUT("end", "------------"); | |||
| #else | |||
| #else // HAVE_FLUIDSYNTH | |||
| DISCOVERY_OUT("error", "SF2 support not available"); | |||
| return; | |||
| @@ -1605,7 +1552,7 @@ static void do_fluidsynth_check(const char* const filename, const bool init) | |||
| static void do_linuxsampler_check(const char* const filename, const char* const stype, const bool init) | |||
| { | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #ifdef HAVE_LINUXSAMPLER | |||
| const File file(filename); | |||
| if (! file.existsAsFile()) | |||
| @@ -1618,7 +1565,7 @@ static void do_linuxsampler_check(const char* const filename, const char* const | |||
| const LinuxSamplerScopedEngine engine(filename, stype); | |||
| else | |||
| LinuxSamplerScopedEngine::outputInfo(nullptr, 0, file.getFileNameWithoutExtension().toRawUTF8()); | |||
| #else | |||
| #else // HAVE_LINUXSAMPLER | |||
| DISCOVERY_OUT("error", stype << " support not available"); | |||
| return; | |||
| @@ -1725,14 +1672,14 @@ int main(int argc, char* argv[]) | |||
| #endif | |||
| break; | |||
| case PLUGIN_VST3: | |||
| #ifdef WANT_JUCE_PROCESSORS | |||
| #ifdef USE_JUCE_PROCESSORS | |||
| do_juce_check(filename, "VST3", doInit); | |||
| #else | |||
| DISCOVERY_OUT("error", "VST3 support not available"); | |||
| #endif | |||
| break; | |||
| case PLUGIN_AU: | |||
| #ifdef WANT_JUCE_PROCESSORS | |||
| #ifdef USE_JUCE_PROCESSORS | |||
| do_juce_check(filename, "AU", doInit); | |||
| #else | |||
| DISCOVERY_OUT("error", "AU support not available"); | |||
| @@ -10,10 +10,6 @@ include ../../Makefile.mk | |||
| BUILD_C_FLAGS += $(RTMEMPOOL_FLAGS) -I. -I../../includes | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_C_FLAGS += -DWANT_LV2 | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| OBJS = rtmempool.c.o | |||
| @@ -1,7 +1,7 @@ | |||
| /* | |||
| * RealTime Memory Pool, heavily based on work by Nedko Arnaudov | |||
| * Copyright (C) 2006-2009 Nedko Arnaudov <nedko@arnaudov.name> | |||
| * Copyright (C) 2013 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2013-2014 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 | |||
| @@ -16,10 +16,9 @@ | |||
| * For a full copy of the GNU General Public License see the GPL.txt file | |||
| */ | |||
| #define __THROW | |||
| #include "rtmempool.h" | |||
| #include "list.h" | |||
| #include "rtmempool.h" | |||
| #include "rtmempool-lv2.h" | |||
| #include <assert.h> | |||
| #include <pthread.h> | |||
| @@ -374,9 +373,6 @@ void rtsafe_memory_pool_deallocate(RtMemPool_Handle handle, void* memoryPtr) | |||
| } | |||
| } | |||
| #ifdef WANT_LV2 | |||
| # include "rtmempool-lv2.h" | |||
| void lv2_rtmempool_init(LV2_RtMemPool_Pool* poolPtr) | |||
| { | |||
| poolPtr->create = rtsafe_memory_pool_create; | |||
| @@ -394,4 +390,3 @@ void lv2_rtmempool_init_deprecated(LV2_RtMemPool_Pool_Deprecated* poolPtr) | |||
| poolPtr->allocate_sleepy = rtsafe_memory_pool_allocate_sleepy; | |||
| poolPtr->deallocate = rtsafe_memory_pool_deallocate; | |||
| } | |||
| #endif | |||
| @@ -13,24 +13,24 @@ BUILD_CXX_FLAGS += -I../backend -I../includes -I../utils -isystem ../modules | |||
| BUILD_CXX_FLAGS += $(NATIVE_PLUGINS_FLAGS) | |||
| # -------------------------------------------------------------- | |||
| # Common | |||
| # Link flags | |||
| LINK_FLAGS += $(JACKBRIDGE_LIBS) | |||
| LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | |||
| LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
| LINK_FLAGS += $(LIBLO_LIBS) | |||
| LINK_FLAGS += $(LILV_LIBS) | |||
| LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
| LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||
| # -------------------------------------------------------------- | |||
| # Engine | |||
| LINK_FLAGS += $(JACKBRIDGE_LIBS) | |||
| # -------------------------------------------------------------- | |||
| # Plugin | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| LINK_FLAGS += $(LILV_LIBS) | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
| LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| @@ -41,18 +41,6 @@ ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| LINK_FLAGS += $(LINUXSAMPLER_LIBS) | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # Coomon | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
| LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
| LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
| endif | |||
| ifeq ($(HAVE_X11),true) | |||
| LINK_FLAGS += $(X11_LIBS) | |||
| endif | |||
| @@ -60,8 +48,6 @@ endif | |||
| # -------------------------------------------------------------- | |||
| # Native | |||
| LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
| # -------------------------------------------------------------- | |||
| # Libs | |||
| @@ -73,6 +59,7 @@ LIBS += ../modules/jackbridge.a | |||
| LIBS += ../modules/juce_audio_basics.a | |||
| LIBS += ../modules/juce_audio_formats.a | |||
| LIBS += ../modules/juce_core.a | |||
| LIBS += ../modules/lilv.a | |||
| LIBS += ../modules/rtmempool.a | |||
| ifeq ($(MACOS_OR_WIN32),true) | |||
| @@ -84,10 +71,6 @@ LIBS += ../modules/juce_gui_basics.a | |||
| LIBS += ../modules/juce_gui_extra.a | |||
| endif | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| LIBS += ../modules/lilv.a | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| TARGETS = \ | |||
| @@ -285,7 +285,6 @@ void osc_send_bridge_error(const CarlaOscData& oscData, const char* const error) | |||
| } | |||
| #endif | |||
| #if defined(BRIDGE_LV2) || defined(WANT_LV2) | |||
| static inline | |||
| void osc_send_lv2_atom_transfer(const CarlaOscData& oscData, const uint32_t portIndex, const char* const atomBuf) noexcept | |||
| { | |||
| @@ -314,7 +313,6 @@ void osc_send_lv2_urid_map(const CarlaOscData& oscData, const uint32_t urid, con | |||
| std::strcat(targetPath, "/lv2_urid_map"); | |||
| try_lo_send(oscData.target, targetPath, "is", static_cast<int32_t>(urid), uri); | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||