| @@ -250,6 +250,7 @@ wine64: | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| # Resources | |||
| ifeq ($(HAVE_PYQT),true) | |||
| RES = \ | |||
| bin/resources/carla_app.py \ | |||
| bin/resources/carla_backend.py \ | |||
| @@ -310,10 +311,14 @@ source/resources_rc.py: resources/resources.qrc resources/*/*.png resources/*/*. | |||
| bin/resources/%.py: source/%.py | |||
| $(LINK) $(CURDIR)/source/$*.py bin/resources/ | |||
| else | |||
| RES: | |||
| endif | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| # UI code | |||
| ifeq ($(HAVE_PYQT),true) | |||
| UIs = \ | |||
| source/ui_carla_control.py \ | |||
| source/ui_carla_about.py \ | |||
| @@ -338,6 +343,9 @@ UI: $(UIs) | |||
| source/ui_%.py: resources/ui/%.ui | |||
| $(PYUIC) $< -o $@ | |||
| else | |||
| UI: | |||
| endif | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| # Widgets | |||
| @@ -785,20 +793,25 @@ endif | |||
| @echo "$(tS)---> Internal plugins: $(tE)" | |||
| ifneq ($(WIN32),true) | |||
| @echo "Carla-Patchbay:$(ANS_YES)" | |||
| @echo "Carla-Rack: $(ANS_YES)" | |||
| @echo "Carla-Patchbay: $(ANS_YES)" | |||
| @echo "Carla-Rack: $(ANS_YES)" | |||
| else | |||
| @echo "Carla-Patchbay: $(ANS_NO) $(mS)Not available for Windows$(mE)" | |||
| @echo "Carla-Rack: $(ANS_NO) $(mS)Not available for Windows$(mE)" | |||
| endif | |||
| ifeq ($(HAVE_DGL),true) | |||
| @echo "DISTRHO Plugins:$(ANS_YES) (with UI)" | |||
| else | |||
| @echo "Carla-Patchbay:$(ANS_NO) $(mS)Not available for Windows$(mE)" | |||
| @echo "Carla-Rack: $(ANS_NO) $(mS)Not available for Windows$(mE)" | |||
| @echo "DISTRHO Plugins:$(ANS_YES) (without UI)" | |||
| endif | |||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||
| ifeq ($(HAVE_ZYN_UI_DEPS),true) | |||
| @echo "ZynAddSubFX: $(ANS_YES) (with UI)" | |||
| @echo "ZynAddSubFX: $(ANS_YES) (with UI)" | |||
| else | |||
| @echo "ZynAddSubFX: $(ANS_YES) (without UI) $(mS)NTK missing$(mE)" | |||
| @echo "ZynAddSubFX: $(ANS_YES) (without UI) $(mS)NTK missing$(mE)" | |||
| endif | |||
| else | |||
| @echo "ZynAddSubFX: $(ANS_NO) $(mS)fftw3, mxml or zlib missing$(mE)" | |||
| @echo "ZynAddSubFX: $(ANS_NO) $(mS)fftw3, mxml or zlib missing$(mE)" | |||
| endif | |||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||
| @@ -145,10 +145,6 @@ endif | |||
| # -------------------------------------------------------------- | |||
| # Check for required libs | |||
| ifneq ($(shell pkg-config --exists liblo && echo true),true) | |||
| $(error liblo missing, cannot continue) | |||
| endif | |||
| ifeq ($(LINUX),true) | |||
| ifeq (,$(wildcard /usr/include/magic.h)) | |||
| $(error libmagic missing, cannot continue) | |||
| @@ -173,6 +169,8 @@ endif | |||
| HAVE_QT4 = $(shell pkg-config --exists QtCore QtGui && echo true) | |||
| HAVE_QT5 = $(shell pkg-config --exists Qt5Core Qt5Gui Qt5Widgets && echo true) | |||
| HAVE_LIBLO = $(shell pkg-config --exists liblo && echo true) | |||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||
| HAVE_LINUXSAMPLER = $(shell pkg-config --atleast-version=1.0.0.svn41 linuxsampler && echo true) | |||
| @@ -262,6 +260,10 @@ ifeq ($(HAVE_DGL),true) | |||
| BASE_FLAGS += -DHAVE_DGL | |||
| endif | |||
| ifeq ($(HAVE_LIBLO),true) | |||
| BASE_FLAGS += -DHAVE_LIBLO | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| BASE_FLAGS += -DHAVE_FLUIDSYNTH | |||
| endif | |||
| @@ -281,8 +283,10 @@ endif | |||
| # -------------------------------------------------------------- | |||
| # Set libs stuff (part 1) | |||
| ifeq ($(HAVE_LIBLO),true) | |||
| LIBLO_FLAGS = $(shell pkg-config --cflags liblo) | |||
| LIBLO_LIBS = $(shell pkg-config --libs liblo) | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| FLUIDSYNTH_FLAGS = $(shell pkg-config --cflags fluidsynth) | |||
| @@ -26,7 +26,10 @@ | |||
| #include "CarlaBackendUtils.hpp" | |||
| #include "CarlaBase64Utils.hpp" | |||
| #include "CarlaOscUtils.hpp" | |||
| #ifdef HAVE_LIBLO | |||
| # include "CarlaOscUtils.hpp" | |||
| #endif | |||
| #include "juce_audio_formats.h" | |||
| @@ -79,6 +82,7 @@ struct CarlaBackendStandalone { | |||
| static CarlaBackendStandalone gStandalone; | |||
| #ifdef HAVE_LIBLO | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| // NSM support | |||
| @@ -345,6 +349,8 @@ private: | |||
| static CarlaNSM gNSM; | |||
| #endif // HAVE_LIBLO | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| // API | |||
| @@ -679,7 +685,9 @@ void carla_engine_idle() | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(gStandalone.engine != nullptr,); | |||
| #ifdef HAVE_LIBLO | |||
| gNSM.idle(); | |||
| #endif | |||
| gStandalone.engine->idle(); | |||
| } | |||
| @@ -788,8 +796,9 @@ void carla_set_engine_option(EngineOption option, int value, const char* valueSt | |||
| case CB:: ENGINE_OPTION_NSM_INIT: | |||
| CARLA_SAFE_ASSERT_RETURN(value != 0,); | |||
| CARLA_SAFE_ASSERT_RETURN(valueStr != nullptr && valueStr[0] != '\0',); | |||
| #ifdef HAVE_LIBLO | |||
| gNSM.announce(value, valueStr); | |||
| #endif | |||
| break; | |||
| case CB::ENGINE_OPTION_PLUGIN_PATH: | |||
| @@ -2153,6 +2162,7 @@ const char* carla_get_host_osc_url_tcp() | |||
| { | |||
| carla_debug("carla_get_host_osc_url_tcp()"); | |||
| #ifdef HAVE_LIBLO | |||
| if (gStandalone.engine == nullptr) | |||
| { | |||
| carla_stderr2("Engine is not running"); | |||
| @@ -2161,12 +2171,16 @@ const char* carla_get_host_osc_url_tcp() | |||
| } | |||
| return gStandalone.engine->getOscServerPathTCP(); | |||
| #else | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| const char* carla_get_host_osc_url_udp() | |||
| { | |||
| carla_debug("carla_get_host_osc_url_udp()"); | |||
| #ifdef HAVE_LIBLO | |||
| if (gStandalone.engine == nullptr) | |||
| { | |||
| carla_stderr2("Engine is not running"); | |||
| @@ -2175,6 +2189,9 @@ const char* carla_get_host_osc_url_udp() | |||
| } | |||
| return gStandalone.engine->getOscServerPathUDP(); | |||
| #else | |||
| return nullptr; | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -270,7 +270,7 @@ bool CarlaEngine::close() | |||
| removeAllPlugins(); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| if (pData->osc.isControlRegistered()) | |||
| oscSend_control_exit(); | |||
| #endif | |||
| @@ -303,7 +303,9 @@ void CarlaEngine::idle() noexcept | |||
| } | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| pData->osc.idle(); | |||
| #endif | |||
| } | |||
| CarlaEngineClient* CarlaEngine::addClient(CarlaPlugin* const) | |||
| @@ -521,7 +523,7 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
| if (plugin == nullptr) | |||
| return false; | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| plugin->registerToOscClient(); | |||
| #endif | |||
| @@ -611,8 +613,10 @@ bool CarlaEngine::removePlugin(const uint id) | |||
| } | |||
| */ | |||
| # ifdef HAVE_LIBLO | |||
| if (isOscControlRegistered()) | |||
| oscSend_control_remove_plugin(id); | |||
| # endif | |||
| #else | |||
| pData->curPluginCount = 0; | |||
| carla_zeroStruct(pData->plugins, 1); | |||
| @@ -1397,15 +1401,16 @@ void CarlaEngine::setOption(const EngineOption option, const int value, const ch | |||
| } | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| // ----------------------------------------------------------------------- | |||
| // OSC Stuff | |||
| #ifndef BUILD_BRIDGE | |||
| # ifndef BUILD_BRIDGE | |||
| bool CarlaEngine::isOscControlRegistered() const noexcept | |||
| { | |||
| return pData->osc.isControlRegistered(); | |||
| } | |||
| #endif | |||
| # endif | |||
| void CarlaEngine::idleOsc() const noexcept | |||
| { | |||
| @@ -1421,6 +1426,7 @@ const char* CarlaEngine::getOscServerPathUDP() const noexcept | |||
| { | |||
| return pData->osc.getServerPathUDP(); | |||
| } | |||
| #endif | |||
| // ----------------------------------------------------------------------- | |||
| // Helper functions | |||
| @@ -94,9 +94,11 @@ void EngineNextAction::clearAndReset() noexcept | |||
| // CarlaEngine::ProtectedData | |||
| CarlaEngine::ProtectedData::ProtectedData(CarlaEngine* const engine) noexcept | |||
| : osc(engine), | |||
| thread(engine), | |||
| : thread(engine), | |||
| #ifdef HAVE_LIBLO | |||
| osc(engine), | |||
| oscData(nullptr), | |||
| #endif | |||
| callback(nullptr), | |||
| callbackPtr(nullptr), | |||
| fileCallback(nullptr), | |||
| @@ -145,7 +147,9 @@ CarlaEngine::ProtectedData::~ProtectedData() noexcept | |||
| bool CarlaEngine::ProtectedData::init(const char* const clientName) | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(name.isEmpty(), "Invalid engine internal data (err #1)"); | |||
| #ifdef HAVE_LIBLO | |||
| CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(oscData == nullptr, "Invalid engine internal data (err #2)"); | |||
| #endif | |||
| CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(events.in == nullptr, "Invalid engine internal data (err #4)"); | |||
| CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(events.out == nullptr, "Invalid engine internal data (err #5)"); | |||
| CARLA_SAFE_ASSERT_RETURN_INTERNAL_ERR(clientName != nullptr && clientName[0] != '\0', "Invalid client name"); | |||
| @@ -193,10 +197,14 @@ bool CarlaEngine::ProtectedData::init(const char* const clientName) | |||
| timeInfo.clear(); | |||
| #ifdef HAVE_LIBLO | |||
| osc.init(clientName); | |||
| # ifndef BUILD_BRIDGE | |||
| oscData = osc.getControlData(); | |||
| # endif | |||
| #endif | |||
| #ifndef BUILD_BRIDGE | |||
| oscData = osc.getControlData(); | |||
| plugins = new EnginePluginData[maxPluginNumber]; | |||
| carla_zeroStruct(plugins, maxPluginNumber); | |||
| #endif | |||
| @@ -219,8 +227,10 @@ void CarlaEngine::ProtectedData::close() | |||
| thread.stopThread(500); | |||
| nextAction.ready(); | |||
| #ifdef HAVE_LIBLO | |||
| osc.close(); | |||
| oscData = nullptr; | |||
| #endif | |||
| aboutToClose = false; | |||
| curPluginCount = 0; | |||
| @@ -150,13 +150,15 @@ struct EnginePluginData { | |||
| // CarlaEngineProtectedData | |||
| struct CarlaEngine::ProtectedData { | |||
| CarlaEngineOsc osc; | |||
| CarlaEngineThread thread; | |||
| #ifdef BUILD_BRIDGE | |||
| #ifdef HAVE_LIBLO | |||
| CarlaEngineOsc osc; | |||
| # ifdef BUILD_BRIDGE | |||
| CarlaOscData* oscData; | |||
| #else | |||
| # else | |||
| const CarlaOscData* oscData; | |||
| # endif | |||
| #endif | |||
| EngineCallbackFunc callback; | |||
| @@ -1467,7 +1467,9 @@ protected: | |||
| } | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| pData->osc.idle(); | |||
| #endif | |||
| fUiServer.idlePipe(); | |||
| @@ -15,6 +15,8 @@ | |||
| * For a full copy of the GNU General Public License see the doc/GPL.txt file. | |||
| */ | |||
| #ifdef HAVE_LIBLO | |||
| #include "CarlaEngine.hpp" | |||
| #include "CarlaEngineOsc.hpp" | |||
| #include "CarlaPlugin.hpp" | |||
| @@ -541,3 +543,5 @@ int CarlaEngineOsc::handleMsgNoteOff(CARLA_ENGINE_OSC_HANDLE_ARGS) | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // HAVE_LIBLO | |||
| @@ -18,6 +18,8 @@ | |||
| #ifndef CARLA_ENGINE_OSC_HPP_INCLUDED | |||
| #define CARLA_ENGINE_OSC_HPP_INCLUDED | |||
| #ifdef HAVE_LIBLO | |||
| #include "CarlaBackend.h" | |||
| #include "CarlaOscUtils.hpp" | |||
| #include "CarlaString.hpp" | |||
| @@ -156,4 +158,6 @@ private: | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // HAVE_LIBLO | |||
| #endif // CARLA_ENGINE_OSC_HPP_INCLUDED | |||
| @@ -15,6 +15,8 @@ | |||
| * For a full copy of the GNU General Public License see the doc/GPL.txt file. | |||
| */ | |||
| #ifdef HAVE_LIBLO | |||
| #include "CarlaBackendUtils.hpp" | |||
| #include "CarlaEngineInternal.hpp" | |||
| #include "CarlaMIDI.h" | |||
| @@ -401,3 +403,5 @@ void CarlaEngine::oscSend_control_exit() const noexcept | |||
| // ----------------------------------------------------------------------- | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| #endif // HAVE_LIBLO | |||
| @@ -51,12 +51,14 @@ void CarlaEngineThread::run() noexcept | |||
| #ifdef BUILD_BRIDGE | |||
| for (; /*kEngine->isRunning() &&*/ ! shouldThreadExit();) | |||
| { | |||
| const bool oscRegisted = false; | |||
| #else | |||
| for (; kEngine->isRunning() && ! shouldThreadExit();) | |||
| #endif | |||
| { | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| const bool oscRegisted = kEngine->isOscControlRegistered(); | |||
| #else | |||
| const bool oscRegisted = false; | |||
| #endif | |||
| for (uint i=0, count = kEngine->getCurrentPluginCount(); i < count; ++i) | |||
| @@ -91,7 +93,7 @@ void CarlaEngineThread::run() noexcept | |||
| value = plugin->getParameterValue(j); | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC engine client | |||
| if (oscRegisted) | |||
| kEngine->oscSend_control_set_parameter_value(i, static_cast<int32_t>(j), value); | |||
| @@ -109,7 +111,7 @@ void CarlaEngineThread::run() noexcept | |||
| } | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // ----------------------------------------------------------- | |||
| // Update OSC control client peaks | |||
| @@ -966,15 +966,17 @@ void CarlaPlugin::setActive(const bool active, const bool sendOsc, const bool se | |||
| #ifndef BUILD_BRIDGE | |||
| const float value(active ? 1.0f : 0.0f); | |||
| # ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_ACTIVE, value); | |||
| # endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_ACTIVE, 0, value, nullptr); | |||
| #else | |||
| // unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| #endif | |||
| // may be unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| @@ -989,11 +991,16 @@ void CarlaPlugin::setDryWet(const float value, const bool sendOsc, const bool se | |||
| pData->postProc.dryWet = fixedValue; | |||
| #ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_DRYWET, fixedValue); | |||
| #endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_DRYWET, 0, fixedValue, nullptr); | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| } | |||
| void CarlaPlugin::setVolume(const float value, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1007,11 +1014,16 @@ void CarlaPlugin::setVolume(const float value, const bool sendOsc, const bool se | |||
| pData->postProc.volume = fixedValue; | |||
| #ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_VOLUME, fixedValue); | |||
| #endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_VOLUME, 0, fixedValue, nullptr); | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| } | |||
| void CarlaPlugin::setBalanceLeft(const float value, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1025,11 +1037,16 @@ void CarlaPlugin::setBalanceLeft(const float value, const bool sendOsc, const bo | |||
| pData->postProc.balanceLeft = fixedValue; | |||
| #ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_BALANCE_LEFT, fixedValue); | |||
| #endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_BALANCE_LEFT, 0, fixedValue, nullptr); | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| } | |||
| void CarlaPlugin::setBalanceRight(const float value, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1043,11 +1060,16 @@ void CarlaPlugin::setBalanceRight(const float value, const bool sendOsc, const b | |||
| pData->postProc.balanceRight = fixedValue; | |||
| #ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_BALANCE_RIGHT, fixedValue); | |||
| #endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_BALANCE_RIGHT, 0, fixedValue, nullptr); | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| } | |||
| void CarlaPlugin::setPanning(const float value, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1061,13 +1083,18 @@ void CarlaPlugin::setPanning(const float value, const bool sendOsc, const bool s | |||
| pData->postProc.panning = fixedValue; | |||
| #ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_PANNING, fixedValue); | |||
| #endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_PANNING, 0, fixedValue, nullptr); | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| } | |||
| #endif | |||
| #endif // ! BUILD_BRIDGE | |||
| void CarlaPlugin::setCtrlChannel(const int8_t channel, const bool sendOsc, const bool sendCallback) noexcept | |||
| { | |||
| @@ -1084,15 +1111,17 @@ void CarlaPlugin::setCtrlChannel(const int8_t channel, const bool sendOsc, const | |||
| #ifndef BUILD_BRIDGE | |||
| const float channelf(channel); | |||
| # ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_CTRL_CHANNEL, channelf); | |||
| # endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, PARAMETER_CTRL_CHANNEL, 0, channelf, nullptr); | |||
| #else | |||
| // unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| #endif | |||
| // may be unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| @@ -1106,17 +1135,17 @@ void CarlaPlugin::setParameterValue(const uint32_t parameterId, const float valu | |||
| uiParameterChange(parameterId, value); | |||
| #ifndef BUILD_BRIDGE | |||
| # ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, static_cast<int32_t>(parameterId), value); | |||
| #endif | |||
| # endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED, pData->id, static_cast<int>(parameterId), 0, value, nullptr); | |||
| #ifdef BUILD_BRIDGE | |||
| // unused | |||
| return; (void)sendOsc; | |||
| #endif | |||
| // may be unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| } | |||
| void CarlaPlugin::setParameterValueByRealIndex(const int32_t rindex, const float value, const bool sendGui, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1166,15 +1195,17 @@ void CarlaPlugin::setParameterMidiChannel(const uint32_t parameterId, const uint | |||
| pData->param.data[parameterId].midiChannel = channel; | |||
| #ifndef BUILD_BRIDGE | |||
| # ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_midi_channel(pData->id, parameterId, channel); | |||
| # endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED, pData->id, static_cast<int>(parameterId), channel, 0.0f, nullptr); | |||
| #else | |||
| // unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| #endif | |||
| // may be unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| } | |||
| void CarlaPlugin::setParameterMidiCC(const uint32_t parameterId, const int16_t cc, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1188,15 +1219,17 @@ void CarlaPlugin::setParameterMidiCC(const uint32_t parameterId, const int16_t c | |||
| pData->param.data[parameterId].midiCC = cc; | |||
| #ifndef BUILD_BRIDGE | |||
| # ifdef HAVE_LIBLO | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| pData->engine->oscSend_control_set_parameter_midi_cc(pData->id, parameterId, cc); | |||
| # endif | |||
| if (sendCallback) | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED, pData->id, static_cast<int>(parameterId), cc, 0.0f, nullptr); | |||
| #else | |||
| // unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| #endif | |||
| // may be unused | |||
| return; (void)sendOsc; (void)sendCallback; | |||
| } | |||
| void CarlaPlugin::setCustomData(const char* const type, const char* const key, const char* const value, const bool) | |||
| @@ -1249,13 +1282,13 @@ void CarlaPlugin::setProgram(const int32_t index, const bool sendGui, const bool | |||
| pData->prog.current = index; | |||
| #ifdef BUILD_BRIDGE | |||
| const bool reallySendOsc(false); | |||
| #else | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| const bool reallySendOsc(sendOsc && pData->engine->isOscControlRegistered()); | |||
| if (reallySendOsc) | |||
| pData->engine->oscSend_control_set_current_program(pData->id, index); | |||
| #else | |||
| const bool reallySendOsc(false); | |||
| #endif | |||
| if (sendCallback) | |||
| @@ -1273,10 +1306,8 @@ void CarlaPlugin::setProgram(const int32_t index, const bool sendGui, const bool | |||
| pData->updateParameterValues(this, reallySendOsc, sendCallback, true); | |||
| } | |||
| #ifdef BUILD_BRIDGE | |||
| // unused | |||
| // may be unused | |||
| return; (void)sendGui; (void)sendOsc; | |||
| #endif | |||
| } | |||
| void CarlaPlugin::setMidiProgram(const int32_t index, const bool sendGui, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1285,13 +1316,13 @@ void CarlaPlugin::setMidiProgram(const int32_t index, const bool sendGui, const | |||
| pData->midiprog.current = index; | |||
| #ifdef BUILD_BRIDGE | |||
| const bool reallySendOsc(false); | |||
| #else | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| const bool reallySendOsc(sendOsc && pData->engine->isOscControlRegistered()); | |||
| if (reallySendOsc) | |||
| pData->engine->oscSend_control_set_current_midi_program(pData->id, index); | |||
| #else | |||
| const bool reallySendOsc(false); | |||
| #endif | |||
| if (sendCallback) | |||
| @@ -1308,10 +1339,8 @@ void CarlaPlugin::setMidiProgram(const int32_t index, const bool sendGui, const | |||
| pData->updateParameterValues(this, reallySendOsc, sendCallback, true); | |||
| } | |||
| #ifdef BUILD_BRIDGE | |||
| // unused | |||
| // may be unused | |||
| return; (void)sendGui; (void)sendOsc; | |||
| #endif | |||
| } | |||
| void CarlaPlugin::setMidiProgramById(const uint32_t bank, const uint32_t program, const bool sendGui, const bool sendOsc, const bool sendCallback) noexcept | |||
| @@ -1365,7 +1394,7 @@ void CarlaPlugin::idle() | |||
| const bool hasUI(pData->hints & PLUGIN_HAS_CUSTOM_UI); | |||
| const bool needsUiMainThread(pData->hints & PLUGIN_NEEDS_UI_MAIN_THREAD); | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| const bool sendOsc(pData->engine->isOscControlRegistered()); | |||
| #endif | |||
| @@ -1397,7 +1426,7 @@ void CarlaPlugin::idle() | |||
| if (event.value2 != 1) | |||
| { | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC control client | |||
| if (sendOsc) | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, event.value1, event.value3); | |||
| @@ -1423,7 +1452,7 @@ void CarlaPlugin::idle() | |||
| const float paramDefault(pData->param.ranges[j].def); | |||
| const float paramValue(getParameterValue(j)); | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| if (sendOsc) | |||
| { | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, static_cast<int32_t>(j), paramValue); | |||
| @@ -1434,7 +1463,7 @@ void CarlaPlugin::idle() | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED, pData->id, static_cast<int>(j), 0, paramDefault, nullptr); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC control client | |||
| if (sendOsc) | |||
| pData->engine->oscSend_control_set_current_program(pData->id, event.value1); | |||
| @@ -1460,7 +1489,7 @@ void CarlaPlugin::idle() | |||
| const float paramDefault(pData->param.ranges[j].def); | |||
| const float paramValue(getParameterValue(j)); | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| if (sendOsc) | |||
| { | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, static_cast<int32_t>(j), paramValue); | |||
| @@ -1471,7 +1500,7 @@ void CarlaPlugin::idle() | |||
| pData->engine->callback(ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED, pData->id, static_cast<int>(j), 0, paramDefault, nullptr); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC control client | |||
| if (sendOsc) | |||
| pData->engine->oscSend_control_set_current_midi_program(pData->id, event.value1); | |||
| @@ -1499,7 +1528,7 @@ void CarlaPlugin::idle() | |||
| uiNoteOn(channel, note, velocity); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC control client | |||
| if (sendOsc) | |||
| pData->engine->oscSend_control_note_on(pData->id, channel, note, velocity); | |||
| @@ -1525,7 +1554,7 @@ void CarlaPlugin::idle() | |||
| uiNoteOff(channel, note); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC control client | |||
| if (sendOsc) | |||
| pData->engine->oscSend_control_note_off(pData->id, channel, note); | |||
| @@ -1573,10 +1602,10 @@ void CarlaPlugin::clearBuffers() noexcept | |||
| pData->clearBuffers(); | |||
| } | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // ------------------------------------------------------------------- | |||
| // OSC stuff | |||
| #ifndef BUILD_BRIDGE | |||
| void CarlaPlugin::registerToOscClient() noexcept | |||
| { | |||
| if (! pData->engine->isOscControlRegistered()) | |||
| @@ -1675,12 +1704,14 @@ void CarlaPlugin::registerToOscClient() noexcept | |||
| pData->engine->oscSend_control_set_parameter_value(pData->id, PARAMETER_ACTIVE, pData->active ? 1.0f : 0.0f); | |||
| } | |||
| } | |||
| #endif // BUILD_BRIDGE | |||
| #endif | |||
| // FIXME | |||
| void CarlaPlugin::handleOscMessage(const char* const, const int, const void* const, const char* const, const lo_message) | |||
| { | |||
| // do nothing | |||
| } | |||
| //#endif // HAVE_LIBLO && ! BUILD_BRIDGE | |||
| // ------------------------------------------------------------------- | |||
| // MIDI events | |||
| @@ -1709,7 +1740,7 @@ void CarlaPlugin::sendMidiSingleNote(const uint8_t channel, const uint8_t note, | |||
| uiNoteOff(channel, note); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| if (sendOsc && pData->engine->isOscControlRegistered()) | |||
| { | |||
| if (velo > 0) | |||
| @@ -1722,10 +1753,8 @@ void CarlaPlugin::sendMidiSingleNote(const uint8_t channel, const uint8_t note, | |||
| if (sendCallback) | |||
| pData->engine->callback((velo > 0) ? ENGINE_CALLBACK_NOTE_ON : ENGINE_CALLBACK_NOTE_OFF, pData->id, channel, note, velo, nullptr); | |||
| #ifdef BUILD_BRIDGE | |||
| // unused | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| #endif | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| @@ -23,7 +23,11 @@ | |||
| #include "CarlaDssiUtils.hpp" | |||
| #include "CarlaMathUtils.hpp" | |||
| #include "CarlaThread.hpp" | |||
| #ifdef HAVE_LIBLO | |||
| # include "CarlaOscUtils.hpp" | |||
| # include "CarlaThread.hpp" | |||
| #endif | |||
| using juce::ChildProcess; | |||
| using juce::ScopedPointer; | |||
| @@ -60,6 +64,7 @@ CARLA_BACKEND_START_NAMESPACE | |||
| static const CustomData kCustomDataFallback = { nullptr, nullptr, nullptr }; | |||
| #ifdef HAVE_LIBLO | |||
| // ------------------------------------------------------------------- | |||
| class CarlaThreadDSSIUI : public CarlaThread | |||
| @@ -241,6 +246,7 @@ private: | |||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaThreadDSSIUI) | |||
| }; | |||
| #endif | |||
| // ----------------------------------------------------- | |||
| @@ -254,14 +260,18 @@ public: | |||
| fDescriptor(nullptr), | |||
| fDssiDescriptor(nullptr), | |||
| fUsesCustomData(false), | |||
| #ifdef HAVE_LIBLO | |||
| fUiFilename(nullptr), | |||
| #endif | |||
| fAudioInBuffers(nullptr), | |||
| fAudioOutBuffers(nullptr), | |||
| fParamBuffers(nullptr), | |||
| fLatencyChanged(false), | |||
| fLatencyIndex(-1), | |||
| #ifdef HAVE_LIBLO | |||
| fOscData(), | |||
| fThreadUI(engine, this, fOscData), | |||
| #endif | |||
| leakDetector_CarlaPluginDSSI() | |||
| { | |||
| carla_debug("CarlaPluginDSSI::CarlaPluginDSSI(%p, %i)", engine, id); | |||
| @@ -271,6 +281,7 @@ public: | |||
| { | |||
| carla_debug("CarlaPluginDSSI::~CarlaPluginDSSI()"); | |||
| #ifdef HAVE_LIBLO | |||
| // close UI | |||
| if (pData->hints & PLUGIN_HAS_CUSTOM_UI) | |||
| { | |||
| @@ -278,6 +289,7 @@ public: | |||
| fThreadUI.stopThread(static_cast<int>(pData->engine->getOptions().uiBridgesTimeout * 2)); | |||
| } | |||
| #endif | |||
| pData->singleMutex.lock(); | |||
| pData->masterMutex.lock(); | |||
| @@ -319,11 +331,13 @@ public: | |||
| fDssiDescriptor = nullptr; | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| if (fUiFilename != nullptr) | |||
| { | |||
| delete[] fUiFilename; | |||
| fUiFilename = nullptr; | |||
| } | |||
| #endif | |||
| clearBuffers(); | |||
| } | |||
| @@ -557,8 +571,10 @@ public: | |||
| } | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| if (sendGui && fOscData.target != nullptr) | |||
| osc_send_configure(fOscData, key, value); | |||
| #endif | |||
| if (std::strcmp(key, "reloadprograms") == 0 || std::strcmp(key, "load") == 0 || std::strncmp(key, "patches", 7) == 0) | |||
| { | |||
| @@ -588,10 +604,10 @@ public: | |||
| } CARLA_SAFE_EXCEPTION("CarlaPluginDSSI::setChunkData"); | |||
| } | |||
| #ifdef BUILD_BRIDGE | |||
| const bool sendOsc(false); | |||
| #else | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| const bool sendOsc(pData->engine->isOscControlRegistered()); | |||
| #else | |||
| const bool sendOsc(false); | |||
| #endif | |||
| pData->updateParameterValues(this, sendOsc, true, false); | |||
| } | |||
| @@ -625,6 +641,7 @@ public: | |||
| CarlaPlugin::setMidiProgram(index, sendGui, sendOsc, sendCallback); | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| // ------------------------------------------------------------------- | |||
| // Set ui stuff | |||
| @@ -649,6 +666,7 @@ public: | |||
| fThreadUI.stopThread(static_cast<int>(pData->engine->getOptions().uiBridgesTimeout * 2)); | |||
| } | |||
| } | |||
| #endif | |||
| void idle() override | |||
| { | |||
| @@ -1069,8 +1087,10 @@ public: | |||
| if (LADSPA_IS_HARD_RT_CAPABLE(fDescriptor->Properties)) | |||
| pData->hints |= PLUGIN_IS_RTSAFE; | |||
| #ifdef HAVE_LIBLO | |||
| if (fUiFilename != nullptr) | |||
| pData->hints |= PLUGIN_HAS_CUSTOM_UI; | |||
| #endif | |||
| #ifndef BUILD_BRIDGE | |||
| if (aOuts > 0 && (aIns == aOuts || aIns == 1)) | |||
| @@ -1204,7 +1224,7 @@ public: | |||
| } | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC Names | |||
| if (pData->engine->isOscControlRegistered()) | |||
| { | |||
| @@ -2117,6 +2137,7 @@ public: | |||
| carla_debug("CarlaPluginDSSI::clearBuffers() - end"); | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| // ------------------------------------------------------------------- | |||
| // OSC stuff | |||
| @@ -2315,7 +2336,9 @@ public: | |||
| // tell frontend | |||
| pData->engine->callback(ENGINE_CALLBACK_UI_STATE_CHANGED, pData->id, 0, 0, 0.0f, nullptr); | |||
| } | |||
| #endif | |||
| #ifdef HAVE_LIBLO | |||
| // ------------------------------------------------------------------- | |||
| // Post-poned UI Stuff | |||
| @@ -2377,6 +2400,7 @@ public: | |||
| osc_send_midi(fOscData, midiData); | |||
| #endif | |||
| } | |||
| #endif | |||
| // ------------------------------------------------------------------- | |||
| @@ -2390,6 +2414,7 @@ public: | |||
| return fDssiDescriptor; | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| uintptr_t getUiBridgeProcessId() const noexcept override | |||
| { | |||
| return fThreadUI.getProcessPID(); | |||
| @@ -2399,6 +2424,7 @@ public: | |||
| { | |||
| return fUiFilename; | |||
| } | |||
| #endif | |||
| // ------------------------------------------------------------------- | |||
| @@ -2562,6 +2588,7 @@ public: | |||
| } | |||
| } | |||
| #ifdef HAVE_LIBLO | |||
| // --------------------------------------------------------------- | |||
| // gui stuff | |||
| @@ -2570,6 +2597,7 @@ public: | |||
| fThreadUI.setData(guiFilename, fDescriptor->Label); | |||
| fUiFilename = guiFilename; | |||
| } | |||
| #endif | |||
| // --------------------------------------------------------------- | |||
| // set default options | |||
| @@ -2617,7 +2645,9 @@ private: | |||
| const DSSI_Descriptor* fDssiDescriptor; | |||
| bool fUsesCustomData; | |||
| #ifdef HAVE_LIBLO | |||
| const char* fUiFilename; | |||
| #endif | |||
| float** fAudioInBuffers; | |||
| float** fAudioOutBuffers; | |||
| @@ -2628,8 +2658,10 @@ private: | |||
| snd_seq_event_t fMidiEvents[kPluginMaxMidiEvents]; | |||
| #ifdef HAVE_LIBLO | |||
| CarlaOscData fOscData; | |||
| CarlaThreadDSSIUI fThreadUI; | |||
| #endif | |||
| // ------------------------------------------------------------------- | |||
| @@ -743,7 +743,7 @@ void CarlaPlugin::ProtectedData::updateParameterValues(CarlaPlugin* const plugin | |||
| if (useDefault) | |||
| param.ranges[i].def = value; | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| if (sendOsc) | |||
| { | |||
| if (useDefault) | |||
| @@ -760,10 +760,8 @@ void CarlaPlugin::ProtectedData::updateParameterValues(CarlaPlugin* const plugin | |||
| } | |||
| } | |||
| #ifdef BUILD_BRIDGE | |||
| // unused | |||
| // may be unused | |||
| return; (void)sendOsc; | |||
| #endif | |||
| } | |||
| // ----------------------------------------------------------------------- | |||
| @@ -21,7 +21,6 @@ | |||
| #include "CarlaPlugin.hpp" | |||
| #include "CarlaLibUtils.hpp" | |||
| #include "CarlaOscUtils.hpp" | |||
| #include "CarlaStateUtils.hpp" | |||
| #include "CarlaMIDI.h" | |||
| @@ -2470,7 +2470,7 @@ public: | |||
| } | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC Names | |||
| if (pData->engine->isOscControlRegistered()) | |||
| { | |||
| @@ -1197,7 +1197,7 @@ public: | |||
| } | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC Names | |||
| if (pData->engine->isOscControlRegistered()) | |||
| { | |||
| @@ -356,10 +356,10 @@ public: | |||
| // simulate an updateDisplay callback | |||
| handleAudioMasterCallback(audioMasterUpdateDisplay, 0, 0, nullptr, 0.0f); | |||
| #ifdef BUILD_BRIDGE | |||
| const bool sendOsc(false); | |||
| #else | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| const bool sendOsc(pData->engine->isOscControlRegistered()); | |||
| #else | |||
| const bool sendOsc(false); | |||
| #endif | |||
| pData->updateParameterValues(this, sendOsc, true, false); | |||
| } | |||
| @@ -912,7 +912,7 @@ public: | |||
| } | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| #if defined(HAVE_LIBLO) && ! defined(BUILD_BRIDGE) | |||
| // Update OSC Names | |||
| if (pData->engine->isOscControlRegistered()) | |||
| { | |||
| @@ -26,12 +26,16 @@ | |||
| // Plugin Code | |||
| #include "distrho-3bandeq/DistrhoArtwork3BandEQ.cpp" | |||
| #include "distrho-3bandeq/DistrhoPlugin3BandEQ.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "distrho-3bandeq/DistrhoUI3BandEQ.cpp" | |||
| #endif | |||
| // DISTRHO Code | |||
| #define DISTRHO_PLUGIN_TARGET_CARLA | |||
| #include "DistrhoPluginMain.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "DistrhoUIMain.cpp" | |||
| #endif | |||
| START_NAMESPACE_DISTRHO | |||
| @@ -26,12 +26,16 @@ | |||
| // Plugin Code | |||
| #include "distrho-3bandsplitter/DistrhoArtwork3BandSplitter.cpp" | |||
| #include "distrho-3bandsplitter/DistrhoPlugin3BandSplitter.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "distrho-3bandsplitter/DistrhoUI3BandSplitter.cpp" | |||
| #endif | |||
| // DISTRHO Code | |||
| #define DISTRHO_PLUGIN_TARGET_CARLA | |||
| #include "DistrhoPluginMain.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "DistrhoUIMain.cpp" | |||
| #endif | |||
| START_NAMESPACE_DISTRHO | |||
| @@ -26,13 +26,17 @@ | |||
| // Plugin Code | |||
| #include "distrho-mverb/DistrhoArtworkMVerb.cpp" | |||
| #include "distrho-mverb/DistrhoPluginMVerb.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "distrho-mverb/DistrhoUIMVerb.cpp" | |||
| #include "distrho-mverb/font/Kh-Kangrey.cpp" | |||
| #endif | |||
| // DISTRHO Code | |||
| #define DISTRHO_PLUGIN_TARGET_CARLA | |||
| #include "DistrhoPluginMain.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "DistrhoUIMain.cpp" | |||
| #endif | |||
| START_NAMESPACE_DISTRHO | |||
| @@ -26,12 +26,16 @@ | |||
| // Plugin Code | |||
| #include "distrho-nekobi/DistrhoArtworkNekobi.cpp" | |||
| #include "distrho-nekobi/DistrhoPluginNekobi.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "distrho-nekobi/DistrhoUINekobi.cpp" | |||
| #endif | |||
| // DISTRHO Code | |||
| #define DISTRHO_PLUGIN_TARGET_CARLA | |||
| #include "DistrhoPluginMain.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "DistrhoUIMain.cpp" | |||
| #endif | |||
| START_NAMESPACE_DISTRHO | |||
| @@ -26,12 +26,16 @@ | |||
| // Plugin Code | |||
| #include "distrho-pingpongpan/DistrhoArtworkPingPongPan.cpp" | |||
| #include "distrho-pingpongpan/DistrhoPluginPingPongPan.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "distrho-pingpongpan/DistrhoUIPingPongPan.cpp" | |||
| #endif | |||
| // DISTRHO Code | |||
| #define DISTRHO_PLUGIN_TARGET_CARLA | |||
| #include "DistrhoPluginMain.cpp" | |||
| #ifdef HAVE_DGL | |||
| #include "DistrhoUIMain.cpp" | |||
| #endif | |||
| START_NAMESPACE_DISTRHO | |||