| @@ -16,11 +16,13 @@ HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true) | |||
| BASE_FLAGS = -O2 -ffast-math -fomit-frame-pointer -fPIC -mtune=generic -msse -mfpmath=sse -Wall -I. -I../carla-includes -I../carla-jackbridge | |||
| # CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||
| CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||
| CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui) | |||
| CARLA_CXX_FLAGS += -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT -DNDEBUG | |||
| CARLA_CXX_FLAGS += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST | |||
| CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header | |||
| CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS) | |||
| @@ -90,8 +92,8 @@ carla_backend.so: $(OBJS) | |||
| # -------------------------------------------------------------- | |||
| # .c.o: | |||
| # $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||
| .c.o: | |||
| $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||
| .cpp.o: | |||
| $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@ | |||
| @@ -21,6 +21,8 @@ CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||
| CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui) | |||
| CARLA_CXX_FLAGS += -DDEBUG | |||
| CARLA_CXX_FLAGS += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST | |||
| CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header | |||
| CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS) | |||
| @@ -90,8 +92,8 @@ carla_backend.so: $(OBJS) | |||
| # -------------------------------------------------------------- | |||
| # .c.o: | |||
| # $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||
| .c.o: | |||
| $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||
| .cpp.o: | |||
| $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@ | |||
| @@ -1424,7 +1424,7 @@ void run_tests_standalone(short idMax) | |||
| qDebug("------------------- TEST @%i: set extra data --------------------", id); | |||
| set_custom_data(id, CarlaBackend::CUSTOM_DATA_STRING, "", ""); | |||
| set_chunk_data(id, nullptr); | |||
| set_gui_data(id, (uintptr_t)1); | |||
| set_gui_container(id, (uintptr_t)1); | |||
| qDebug("------------------- TEST @%i: gui stuff --------------------", id); | |||
| show_gui(id, false); | |||
| @@ -190,10 +190,12 @@ int CarlaOsc::handleMessage(const char* const path, const int argc, const lo_arg | |||
| return handle_note_off(plugin, argc, argv, types); | |||
| // Plugin-specific methods | |||
| #ifdef WANT_LV2 | |||
| if (strcmp(method, "/lv2_atom_transfer") == 0) | |||
| return handle_lv2_atom_transfer(plugin, argc, argv, types); | |||
| if (strcmp(method, "/lv2_event_transfer") == 0) | |||
| return handle_lv2_event_transfer(plugin, argc, argv, types); | |||
| #endif | |||
| // Plugin Bridges | |||
| if (plugin->hints() & PLUGIN_IS_BRIDGE) | |||
| @@ -118,8 +118,10 @@ private: | |||
| int handle_note_on(CARLA_OSC_HANDLE_ARGS2); | |||
| int handle_note_off(CARLA_OSC_HANDLE_ARGS2); | |||
| #ifdef WANT_LV2 | |||
| int handle_lv2_atom_transfer(CARLA_OSC_HANDLE_ARGS2); | |||
| int handle_lv2_event_transfer(CARLA_OSC_HANDLE_ARGS2); | |||
| #endif | |||
| int handle_bridge_set_input_peak_value(CARLA_OSC_HANDLE_ARGS2); | |||
| int handle_bridge_set_output_peak_value(CARLA_OSC_HANDLE_ARGS2); | |||
| @@ -16,6 +16,9 @@ | |||
| */ | |||
| #include "carla_plugin.h" | |||
| #ifdef WANT_DSSI | |||
| #include "carla_dssi.h" | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| @@ -1511,10 +1514,21 @@ private: | |||
| float* paramBuffers; | |||
| }; | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #else // WANT_DSSI | |||
| # warning Building without DSSI support | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newDSSI(const initializer& init, const void* const extra) | |||
| { | |||
| qDebug("CarlaPlugin::newDSSI(%p, \"%s\", \"%s\", \"%s\", %p)", init.engine, init.filename, init.name, init.label, extra); | |||
| #ifdef WANT_DSSI | |||
| short id = init.engine->getNewPluginId(); | |||
| if (id < 0 || id > CarlaEngine::maxPluginNumber()) | |||
| @@ -1551,8 +1565,10 @@ CarlaPlugin* CarlaPlugin::newDSSI(const initializer& init, const void* const ext | |||
| plugin->registerToOsc(); | |||
| return plugin; | |||
| #else | |||
| setLastError("DSSI support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -16,20 +16,17 @@ | |||
| */ | |||
| #ifdef BUILD_BRIDGE | |||
| #error Should not use fluidsynth for bridges! | |||
| # error Should not use fluidsynth for bridges! | |||
| #endif | |||
| #include "carla_plugin.h" | |||
| #ifdef WANT_FLUIDSYNTH | |||
| #include "carla_fluidsynth.h" | |||
| #else | |||
| #warning fluidsynth not available (no SF2 support) | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| #ifdef WANT_FLUIDSYNTH | |||
| /*! | |||
| * @defgroup CarlaBackendFluidSynthPlugin Carla Backend FluidSynth Plugin | |||
| @@ -1315,7 +1312,16 @@ private: | |||
| const char* m_label; | |||
| }; | |||
| #endif // WANT_FLUIDSYNTH | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #else // WANT_FLUIDSYNTH | |||
| # warning fluidsynth not available (no SF2 support) | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newSF2(const initializer& init) | |||
| { | |||
| @@ -1354,6 +1360,4 @@ CarlaPlugin* CarlaPlugin::newSF2(const initializer& init) | |||
| #endif | |||
| } | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -16,6 +16,9 @@ | |||
| */ | |||
| #include "carla_plugin.h" | |||
| #ifdef WANT_LADSPA | |||
| #include "carla_ladspa.h" | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| @@ -1119,10 +1122,21 @@ private: | |||
| float* paramBuffers; | |||
| }; | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #else // WANT_LADSPA | |||
| # warning Building without LADSPA support | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newLADSPA(const initializer& init, const void* const extra) | |||
| { | |||
| qDebug("CarlaPlugin::newLADSPA(%p, \"%s\", \"%s\", \"%s\", %p)", init.engine, init.filename, init.name, init.label, extra); | |||
| #ifdef WANT_LADSPA | |||
| short id = init.engine->getNewPluginId(); | |||
| if (id < 0 || id > CarlaEngine::maxPluginNumber()) | |||
| @@ -1159,8 +1173,10 @@ CarlaPlugin* CarlaPlugin::newLADSPA(const initializer& init, const void* const e | |||
| plugin->registerToOsc(); | |||
| return plugin; | |||
| #else | |||
| setLastError("LADSPA support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -15,30 +15,22 @@ | |||
| * For a full copy of the GNU General Public License see the COPYING file | |||
| */ | |||
| // TODO - setMidiProgram() | |||
| #ifdef BUILD_BRIDGE | |||
| #error Should not use linuxsampler for bridges! | |||
| # error Should not use linuxsampler for bridges! | |||
| #endif | |||
| // TODO - setMidiProgram() | |||
| #include "carla_plugin.h" | |||
| #ifdef WANT_LINUXSAMPLER | |||
| #include "carla_linuxsampler.h" | |||
| #else | |||
| #warning linuxsampler not available (no GIG and SFZ support) | |||
| #endif | |||
| #include <QtCore/QFileInfo> | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| #if 0 | |||
| } /* adjust editor indent */ | |||
| #endif | |||
| #ifdef WANT_LINUXSAMPLER | |||
| /*! | |||
| * @defgroup CarlaBackendLinuxSamplerPlugin Carla Backend LinuxSampler Plugin | |||
| * | |||
| @@ -618,7 +610,16 @@ CarlaPlugin* LinuxSamplerPlugin::newLinuxSampler(const initializer& init, bool i | |||
| return plugin; | |||
| } | |||
| #endif // WANT_LINUXSAMPLER | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #else // WANT_LINUXSAMPLER | |||
| # warning linuxsampler not available (no GIG and SFZ support) | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newGIG(const initializer& init) | |||
| { | |||
| @@ -642,6 +643,4 @@ CarlaPlugin* CarlaPlugin::newSFZ(const initializer& init) | |||
| #endif | |||
| } | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -16,6 +16,9 @@ | |||
| */ | |||
| #include "carla_plugin.h" | |||
| #ifdef WANT_LV2 | |||
| #include "carla_lv2.h" | |||
| #include "lv2_atom_queue.h" | |||
| @@ -4410,49 +4413,6 @@ private: | |||
| uint32_t lastTimePosFrame; | |||
| }; | |||
| CarlaPlugin* CarlaPlugin::newLV2(const initializer& init) | |||
| { | |||
| qDebug("CarlaPlugin::newLV2(%p, \"%s\", \"%s\", \"%s\")", init.engine, init.filename, init.name, init.label); | |||
| short id = init.engine->getNewPluginId(); | |||
| if (id < 0 || id > CarlaEngine::maxPluginNumber()) | |||
| { | |||
| setLastError("Maximum number of plugins reached"); | |||
| return nullptr; | |||
| } | |||
| Lv2Plugin* const plugin = new Lv2Plugin(init.engine, id); | |||
| if (! plugin->init(init.filename, init.name, init.label)) | |||
| { | |||
| delete plugin; | |||
| return nullptr; | |||
| } | |||
| plugin->reload(); | |||
| #ifndef BUILD_BRIDGE | |||
| if (carlaOptions.processMode == PROCESS_MODE_CONTINUOUS_RACK) | |||
| { | |||
| const uint32_t ins = plugin->audioInCount(); | |||
| const uint32_t outs = plugin->audioOutCount(); | |||
| if (ins > 2 || outs > 2 || (ins != outs && ins != 0 && outs != 0)) | |||
| { | |||
| setLastError("Carla's rack mode can only work with Mono or Stereo LV2 plugins, sorry!"); | |||
| delete plugin; | |||
| return nullptr; | |||
| } | |||
| } | |||
| #endif | |||
| plugin->registerToOsc(); | |||
| plugin->updateUi(); | |||
| return plugin; | |||
| } | |||
| /**@}*/ | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -4500,3 +4460,59 @@ int CarlaOsc::handle_lv2_event_transfer(CARLA_OSC_HANDLE_ARGS2) | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #else // WANT_LV2 | |||
| # warning Building without LV2 support | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newLV2(const initializer& init) | |||
| { | |||
| qDebug("CarlaPlugin::newLV2(%p, \"%s\", \"%s\", \"%s\")", init.engine, init.filename, init.name, init.label); | |||
| #ifdef WANT_LV2 | |||
| short id = init.engine->getNewPluginId(); | |||
| if (id < 0 || id > CarlaEngine::maxPluginNumber()) | |||
| { | |||
| setLastError("Maximum number of plugins reached"); | |||
| return nullptr; | |||
| } | |||
| Lv2Plugin* const plugin = new Lv2Plugin(init.engine, id); | |||
| if (! plugin->init(init.filename, init.name, init.label)) | |||
| { | |||
| delete plugin; | |||
| return nullptr; | |||
| } | |||
| plugin->reload(); | |||
| #ifndef BUILD_BRIDGE | |||
| if (carlaOptions.processMode == PROCESS_MODE_CONTINUOUS_RACK) | |||
| { | |||
| const uint32_t ins = plugin->audioInCount(); | |||
| const uint32_t outs = plugin->audioOutCount(); | |||
| if (ins > 2 || outs > 2 || (ins != outs && ins != 0 && outs != 0)) | |||
| { | |||
| setLastError("Carla's rack mode can only work with Mono or Stereo LV2 plugins, sorry!"); | |||
| delete plugin; | |||
| return nullptr; | |||
| } | |||
| } | |||
| #endif | |||
| plugin->registerToOsc(); | |||
| plugin->updateUi(); | |||
| return plugin; | |||
| #else | |||
| setLastError("LV2 support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| @@ -16,10 +16,13 @@ | |||
| */ | |||
| #include "carla_plugin.h" | |||
| #ifdef WANT_VST | |||
| #include "carla_vst.h" | |||
| #ifdef Q_WS_X11 | |||
| #include <QtGui/QX11Info> | |||
| # include <QtGui/QX11Info> | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| @@ -2225,10 +2228,21 @@ private: | |||
| int unique2; | |||
| }; | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #else // WANT_VST | |||
| # warning Building without VST support | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| CarlaPlugin* CarlaPlugin::newVST(const initializer& init) | |||
| { | |||
| qDebug("CarlaPlugin::newVST(%p, \"%s\", \"%s\", \"%s\")", init.engine, init.filename, init.name, init.label); | |||
| #ifdef WANT_VST | |||
| short id = init.engine->getNewPluginId(); | |||
| if (id < 0 || id > CarlaEngine::maxPluginNumber()) | |||
| @@ -2268,8 +2282,10 @@ CarlaPlugin* CarlaPlugin::newVST(const initializer& init) | |||
| plugin->registerToOsc(); | |||
| return plugin; | |||
| #else | |||
| setLastError("VST support not available"); | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| /**@}*/ | |||
| CARLA_BACKEND_END_NAMESPACE | |||