diff --git a/c++/carla-backend/Makefile b/c++/carla-backend/Makefile index be32b5a..45e3bb8 100644 --- a/c++/carla-backend/Makefile +++ b/c++/carla-backend/Makefile @@ -27,13 +27,21 @@ HAVE_ZYN_GUI_DEPS = $(shell which ntk-config) # -------------------------------------------------------------- -BUILD_CXX_FLAGS += -I. -I../carla-engine -I../carla-includes -I../carla-plugin -I../carla-utils +BUILD_CXX_FLAGS += -I. -I../carla-engine -I../carla-includes -I../carla-native -I../carla-plugin -I../carla-utils BUILD_CXX_FLAGS += -fvisibility=hidden -fPIC BUILD_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore) LINK_FLAGS += -fPIC -shared -ldl -lm LINK_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui) +ifeq ($(CARLA_PLUGIN_SUPPORT),true) +BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST +endif + +ifeq ($(CARLA_RTAUDIO_SUPPORT),true) +BUILD_CXX_FLAGS += -DCARLA_ENGINE_RTAUDIO +endif + ifeq ($(HAVE_JACK),true) LINK_FLAGS += $(shell pkg-config --libs jack) endif @@ -51,10 +59,12 @@ LINK_FLAGS += $(shell pkg-config --libs suil-0) endif ifeq ($(HAVE_FLUIDSYNTH),true) +BUILD_CXX_FLAGS += -DWANT_FLUIDSYNTH LINK_FLAGS += $(shell pkg-config --libs fluidsynth) endif ifeq ($(HAVE_LINUXSAMPLER),true) +BUILD_CXX_FLAGS += -DWANT_LINUXSAMPLER LINK_FLAGS += $(shell pkg-config --libs linuxsampler) endif diff --git a/c++/carla-backend/carla-backend.pro b/c++/carla-backend/carla-backend.pro index ca44b22..7f4e5cc 100644 --- a/c++/carla-backend/carla-backend.pro +++ b/c++/carla-backend/carla-backend.pro @@ -8,6 +8,10 @@ CONFIG += link_pkgconfig qt warn_on # plugin shared DEFINES = DEBUG DEFINES += QTCREATOR_TEST +DEFINES += CARLA_ENGINE_RTAUDIO +DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST +DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER + PKGCONFIG = liblo PKGCONFIG += jack PKGCONFIG += alsa libpulse-simple @@ -29,6 +33,7 @@ HEADERS = \ INCLUDEPATH = . \ ../carla-engine \ ../carla-includes \ + ../carla-native \ ../carla-plugin \ ../carla-utils diff --git a/c++/carla-backend/carla_backend_standalone.cpp b/c++/carla-backend/carla_backend_standalone.cpp index e4c3b54..06e7d89 100644 --- a/c++/carla-backend/carla_backend_standalone.cpp +++ b/c++/carla-backend/carla_backend_standalone.cpp @@ -17,16 +17,25 @@ #include "carla_backend_standalone.hpp" #include "carla_plugin.hpp" -//#include "carla_native.h" +#include "carla_native.h" // ------------------------------------------------------------------------------------------------------------------- // Single, standalone engine -static CarlaBackend::CarlaEngine* carlaEngine = nullptr; -static CarlaBackend::CallbackFunc carlaFunc = nullptr; -static CarlaString carlaStandaloneError; -static const char* extendedLicenseText = nullptr; -static bool carlaEngineStarted = false; +struct CarlaBackendStandalone { + CarlaBackend::CarlaEngineOptions options; + CarlaBackend::CarlaEngine* engine; + CarlaBackend::CallbackFunc callback; + CarlaString lastError; + CarlaString procName; + bool started; + + CarlaBackendStandalone() + : engine(nullptr), + callback(nullptr), + started(false) {} + +} standalone; // ------------------------------------------------------------------------------------------------------------------- @@ -34,7 +43,9 @@ const char* get_extended_license_text() { qDebug("CarlaBackendStandalone::get_extended_license_text()"); - if (! extendedLicenseText) + static CarlaString extendedLicenseText; + + if (extendedLicenseText.isEmpty()) { QString text("

This current Carla build is using the following features and 3rd-party code:

"); text += "