Signed-off-by: falkTX <falktx@falktx.com>tags/v2.2.0-RC1
@@ -59,17 +59,21 @@ endif | |||
ifeq ($(USING_JUCE),true) | |||
3RD_LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
ifeq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
3RD_LIBS += $(MODULEDIR)/juce_audio_devices.a | |||
endif | |||
3RD_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
3RD_LIBS += $(MODULEDIR)/juce_core.a | |||
3RD_LIBS += $(MODULEDIR)/juce_data_structures.a | |||
3RD_LIBS += $(MODULEDIR)/juce_events.a | |||
3RD_LIBS += $(MODULEDIR)/juce_graphics.a | |||
3RD_LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
3RD_LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
else | |||
endif | |||
ifneq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
3RD_LIBS += $(MODULEDIR)/rtaudio.a | |||
3RD_LIBS += $(MODULEDIR)/rtmidi.a | |||
endif | |||
@@ -261,11 +265,9 @@ LIBS_POSIX32 += $(MODULEDIR)/juce_audio_processors.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_data_structures.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_core.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_events.posix32.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_graphics.posix32.a | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a | |||
endif | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS_POSIX32 += $(MODULEDIR)/juce_gui_extra.posix32.a | |||
endif | |||
endif | |||
@@ -288,11 +290,9 @@ LIBS_POSIX64 += $(MODULEDIR)/juce_audio_processors.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_data_structures.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_core.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_events.posix64.a | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_graphics.posix64.a | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a | |||
endif | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS_POSIX64 += $(MODULEDIR)/juce_gui_extra.posix64.a | |||
endif | |||
endif | |||
@@ -321,6 +321,9 @@ LIBS_WIN32 += $(MODULEDIR)/juce_core.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_events.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_graphics.win32.a | |||
LIBS_WIN32 += $(MODULEDIR)/juce_gui_basics.win32.a | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS_WIN32 += $(MODULEDIR)/juce_gui_extra.win32.a | |||
endif | |||
endif | |||
win32: $(LIBS_WIN32) | |||
@@ -347,6 +350,9 @@ LIBS_WIN64 += $(MODULEDIR)/juce_core.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_events.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_graphics.win64.a | |||
LIBS_WIN64 += $(MODULEDIR)/juce_gui_basics.win64.a | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS_WIN64 += $(MODULEDIR)/juce_gui_extra.win64.a | |||
endif | |||
endif | |||
win64: $(LIBS_WIN64) | |||
@@ -92,13 +92,6 @@ ifeq ($(MACOS),true) | |||
UNIX=true | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set USING_JUCE | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
USING_JUCE=true | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set build and link flags | |||
@@ -251,12 +244,8 @@ HAVE_QT5 = $(shell $(PKG_CONFIG) --exists Qt5Core Qt5Gui Qt5Widgets && \ | |||
$(PKG_CONFIG) --variable=qt_config Qt5Core | grep -q -v "static" && echo true) | |||
HAVE_SNDFILE = $(shell $(PKG_CONFIG) --exists sndfile && echo true) | |||
ifeq ($(JACKBRIDGE_DIRECT),true) | |||
ifeq ($(HAVE_JACK),true) | |||
BASE_FLAGS += -DJACKBRIDGE_DIRECT | |||
else | |||
$(error jackbridge direct mode requested, but jack not available) | |||
endif | |||
ifeq ($(LINUX),true) | |||
HAVE_JUCE_LINUX_DEPS = $(shell $(PKG_CONFIG) --exists x11 xext freetype2 && echo true) | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
@@ -335,9 +324,33 @@ endif | |||
endif | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set USING_JUCE | |||
ifeq ($(MACOS_OR_WIN32),true) | |||
USING_JUCE=true | |||
USING_JUCE_AUDIO_DEVICES=true | |||
endif | |||
ifeq ($(HAVE_JUCE_LINUX_DEPS),true) | |||
USING_JUCE=true | |||
endif | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
USING_JUCE_GUI_EXTRA=true | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set base defines | |||
ifeq ($(JACKBRIDGE_DIRECT),true) | |||
ifeq ($(HAVE_JACK),true) | |||
BASE_FLAGS += -DJACKBRIDGE_DIRECT | |||
else | |||
$(error jackbridge direct mode requested, but jack not available) | |||
endif | |||
endif | |||
ifeq ($(HAVE_DGL),true) | |||
BASE_FLAGS += -DHAVE_DGL | |||
BASE_FLAGS += -DDGL_NAMESPACE=CarlaDGL -DDGL_FILE_BROWSER_DISABLED -DDGL_NO_SHARED_RESOURCES | |||
@@ -379,6 +392,14 @@ ifeq ($(USING_JUCE),true) | |||
BASE_FLAGS += -DUSING_JUCE | |||
endif | |||
ifeq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
BASE_FLAGS += -DUSING_JUCE_AUDIO_DEVICES | |||
endif | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
BASE_FLAGS += -DUSING_JUCE_GUI_EXTRA | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set libs stuff (part 1) | |||
@@ -449,7 +470,7 @@ endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Set libs stuff (part 2) | |||
ifneq ($(USING_JUCE),true) | |||
ifneq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
RTAUDIO_FLAGS = -DHAVE_GETTIMEOFDAY | |||
RTMIDI_FLAGS = | |||
@@ -467,7 +488,7 @@ RTAUDIO_LIBS += $(shell $(PKG_CONFIG) $(PKG_CONFIG_FLAGS) --libs libpulse-sim | |||
endif | |||
endif | |||
endif # USING_JUCE | |||
endif # USING_JUCE_AUDIO_DEVICES | |||
ifeq ($(BSD),true) | |||
JACKBRIDGE_LIBS = -lpthread -lrt | |||
@@ -1362,62 +1362,6 @@ protected: | |||
// ------------------------------------------------------------------- | |||
public: | |||
/*! | |||
* Native audio APIs. | |||
*/ | |||
enum AudioApi { | |||
AUDIO_API_NULL, | |||
// common | |||
AUDIO_API_JACK, | |||
AUDIO_API_OSS, | |||
// linux | |||
AUDIO_API_ALSA, | |||
AUDIO_API_PULSEAUDIO, | |||
// macos | |||
AUDIO_API_COREAUDIO, | |||
// windows | |||
AUDIO_API_ASIO, | |||
AUDIO_API_DIRECTSOUND, | |||
AUDIO_API_WASAPI | |||
}; | |||
// ------------------------------------------------------------------- | |||
// Engine initializers | |||
// JACK | |||
static CarlaEngine* newJack(); | |||
#ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH | |||
// Dummy | |||
static CarlaEngine* newDummy(); | |||
#endif | |||
#ifdef BUILD_BRIDGE | |||
// Bridge | |||
static CarlaEngine* newBridge(const char* audioPoolBaseName, | |||
const char* rtClientBaseName, | |||
const char* nonRtClientBaseName, | |||
const char* nonRtServerBaseName); | |||
#else | |||
# ifdef USING_JUCE | |||
// Juce | |||
static CarlaEngine* newJuce(AudioApi api); | |||
static uint getJuceApiCount(); | |||
static const char* getJuceApiName(uint index); | |||
static const char* const* getJuceApiDeviceNames(uint index); | |||
static const EngineDriverDeviceInfo* getJuceDeviceInfo(uint index, const char* deviceName); | |||
static bool showJuceDeviceControlPanel(uint index, const char* deviceName); | |||
# else | |||
// RtAudio | |||
static CarlaEngine* newRtAudio(AudioApi api); | |||
static uint getRtAudioApiCount(); | |||
static const char* getRtAudioApiName(uint index); | |||
static const char* const* getRtAudioApiDeviceNames(uint index); | |||
static const EngineDriverDeviceInfo* getRtAudioDeviceInfo(uint index, const char* deviceName); | |||
# endif | |||
#endif | |||
CARLA_DECLARE_NON_COPY_CLASS(CarlaEngine) | |||
}; | |||
@@ -0,0 +1,84 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2020 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
* published by the Free Software Foundation; either version 2 of | |||
* the License, or any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* For a full copy of the GNU General Public License see the doc/GPL.txt file. | |||
*/ | |||
#ifndef CARLA_ENGINE_INIT_HPP_INCLUDED | |||
#define CARLA_ENGINE_INIT_HPP_INCLUDED | |||
#include "CarlaEngine.hpp" | |||
CARLA_BACKEND_START_NAMESPACE | |||
// ------------------------------------------------------------------- | |||
/*! | |||
* Native audio APIs. | |||
*/ | |||
enum AudioApi { | |||
AUDIO_API_NULL, | |||
// common | |||
AUDIO_API_JACK, | |||
AUDIO_API_OSS, | |||
// linux | |||
AUDIO_API_ALSA, | |||
AUDIO_API_PULSEAUDIO, | |||
// macos | |||
AUDIO_API_COREAUDIO, | |||
// windows | |||
AUDIO_API_ASIO, | |||
AUDIO_API_DIRECTSOUND, | |||
AUDIO_API_WASAPI | |||
}; | |||
// ------------------------------------------------------------------- | |||
// Engine initializers | |||
namespace EngineInit { | |||
// JACK | |||
CarlaEngine* newJack(); | |||
// Dummy | |||
CarlaEngine* newDummy(); | |||
// Bridge | |||
CarlaEngine* newBridge(const char* audioPoolBaseName, | |||
const char* rtClientBaseName, | |||
const char* nonRtClientBaseName, | |||
const char* nonRtServerBaseName); | |||
// Juce | |||
CarlaEngine* newJuce(AudioApi api); | |||
uint getJuceApiCount(); | |||
const char* getJuceApiName(uint index); | |||
const char* const* getJuceApiDeviceNames(uint index); | |||
const EngineDriverDeviceInfo* getJuceDeviceInfo(uint index, const char* deviceName); | |||
bool showJuceDeviceControlPanel(uint index, const char* deviceName); | |||
// RtAudio | |||
CarlaEngine* newRtAudio(AudioApi api); | |||
uint getRtAudioApiCount(); | |||
const char* getRtAudioApiName(uint index); | |||
const char* const* getRtAudioApiDeviceNames(uint index); | |||
const EngineDriverDeviceInfo* getRtAudioDeviceInfo(uint index, const char* deviceName); | |||
} | |||
// ----------------------------------------------------------------------- | |||
CARLA_BACKEND_END_NAMESPACE | |||
#endif // CARLA_ENGINE_INIT_HPP_INCLUDED |
@@ -21,7 +21,7 @@ | |||
#include "CarlaHostImpl.hpp" | |||
#include "CarlaMIDI.h" | |||
#include "CarlaEngine.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaPlugin.hpp" | |||
#include "CarlaBackendUtils.hpp" | |||
@@ -399,10 +399,10 @@ bool carla_engine_init_bridge(CarlaHostHandle handle, | |||
CARLA_SAFE_ASSERT_WITH_LAST_ERROR_RETURN(handle->isStandalone, "Must be a standalone host handle", false); | |||
CARLA_SAFE_ASSERT_WITH_LAST_ERROR_RETURN(handle->engine == nullptr, "Engine is already initialized", false); | |||
CarlaScopedPointer<CarlaEngine> engine(CarlaEngine::newBridge(audioBaseName, | |||
rtClientBaseName, | |||
nonRtClientBaseName, | |||
nonRtServerBaseName)); | |||
CarlaScopedPointer<CarlaEngine> engine(CB::EngineInit::newBridge(audioBaseName, | |||
rtClientBaseName, | |||
nonRtClientBaseName, | |||
nonRtServerBaseName)); | |||
CARLA_SAFE_ASSERT_WITH_LAST_ERROR_RETURN(engine != nullptr, "The selected audio driver is not available", false); | |||
@@ -39,17 +39,21 @@ endif | |||
ifeq ($(USING_JUCE),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
ifeq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_devices.a | |||
endif | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_core.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_data_structures.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_events.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_graphics.a | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
else | |||
endif | |||
ifneq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
STANDALONE_LIBS += $(MODULEDIR)/rtaudio.a | |||
STANDALONE_LIBS += $(MODULEDIR)/rtmidi.a | |||
endif | |||
@@ -70,17 +74,21 @@ STANDALONE_LINK_FLAGS += $(X11_LIBS) | |||
ifeq ($(USING_JUCE),true) | |||
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
ifeq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
endif | |||
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
STANDALONE_LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
STANDALONE_LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
endif | |||
else | |||
endif | |||
ifneq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
STANDALONE_LINK_FLAGS += $(RTAUDIO_LIBS) | |||
STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS) | |||
endif | |||
@@ -23,6 +23,7 @@ | |||
*/ | |||
#include "CarlaEngineClient.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaEngineInternal.hpp" | |||
#include "CarlaPlugin.hpp" | |||
@@ -79,6 +80,7 @@ CarlaEngine::~CarlaEngine() | |||
uint CarlaEngine::getDriverCount() | |||
{ | |||
carla_debug("CarlaEngine::getDriverCount()"); | |||
using namespace EngineInit; | |||
uint count = 0; | |||
@@ -86,7 +88,7 @@ uint CarlaEngine::getDriverCount() | |||
count += 1; | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
# ifdef USING_JUCE_AUDIO_DEVICES | |||
count += getJuceApiCount(); | |||
# else | |||
count += getRtAudioApiCount(); | |||
@@ -99,6 +101,7 @@ uint CarlaEngine::getDriverCount() | |||
const char* CarlaEngine::getDriverName(const uint index2) | |||
{ | |||
carla_debug("CarlaEngine::getDriverName(%i)", index2); | |||
using namespace EngineInit; | |||
uint index = index2; | |||
@@ -106,7 +109,7 @@ const char* CarlaEngine::getDriverName(const uint index2) | |||
return "JACK"; | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
# ifdef USING_JUCE_AUDIO_DEVICES | |||
if (const uint count = getJuceApiCount()) | |||
{ | |||
if (index < count) | |||
@@ -129,6 +132,7 @@ const char* CarlaEngine::getDriverName(const uint index2) | |||
const char* const* CarlaEngine::getDriverDeviceNames(const uint index2) | |||
{ | |||
carla_debug("CarlaEngine::getDriverDeviceNames(%i)", index2); | |||
using namespace EngineInit; | |||
uint index = index2; | |||
@@ -139,7 +143,7 @@ const char* const* CarlaEngine::getDriverDeviceNames(const uint index2) | |||
} | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
# ifdef USING_JUCE_AUDIO_DEVICES | |||
if (const uint count = getJuceApiCount()) | |||
{ | |||
if (index < count) | |||
@@ -162,6 +166,7 @@ const char* const* CarlaEngine::getDriverDeviceNames(const uint index2) | |||
const EngineDriverDeviceInfo* CarlaEngine::getDriverDeviceInfo(const uint index2, const char* const deviceName) | |||
{ | |||
carla_debug("CarlaEngine::getDriverDeviceInfo(%i, \"%s\")", index2, deviceName); | |||
using namespace EngineInit; | |||
uint index = index2; | |||
@@ -175,7 +180,7 @@ const EngineDriverDeviceInfo* CarlaEngine::getDriverDeviceInfo(const uint index2 | |||
} | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
# ifdef USING_JUCE_AUDIO_DEVICES | |||
if (const uint count = getJuceApiCount()) | |||
{ | |||
if (index < count) | |||
@@ -198,6 +203,7 @@ const EngineDriverDeviceInfo* CarlaEngine::getDriverDeviceInfo(const uint index2 | |||
bool CarlaEngine::showDriverDeviceControlPanel(const uint index2, const char* const deviceName) | |||
{ | |||
carla_debug("CarlaEngine::showDriverDeviceControlPanel(%i, \"%s\")", index2, deviceName); | |||
using namespace EngineInit; | |||
uint index = index2; | |||
@@ -207,7 +213,7 @@ bool CarlaEngine::showDriverDeviceControlPanel(const uint index2, const char* co | |||
} | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
# ifdef USING_JUCE_AUDIO_DEVICES | |||
if (const uint count = getJuceApiCount()) | |||
{ | |||
if (index < count) | |||
@@ -231,6 +237,7 @@ CarlaEngine* CarlaEngine::newDriverByName(const char* const driverName) | |||
{ | |||
CARLA_SAFE_ASSERT_RETURN(driverName != nullptr && driverName[0] != '\0', nullptr); | |||
carla_debug("CarlaEngine::newDriverByName(\"%s\")", driverName); | |||
using namespace EngineInit; | |||
if (std::strcmp(driverName, "JACK") == 0) | |||
return newJack(); | |||
@@ -241,7 +248,7 @@ CarlaEngine* CarlaEngine::newDriverByName(const char* const driverName) | |||
#endif | |||
#ifndef BUILD_BRIDGE | |||
# ifdef USING_JUCE | |||
# ifdef USING_JUCE_AUDIO_DEVICES | |||
// ------------------------------------------------------------------- | |||
// linux | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2011-2020 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 | |||
@@ -20,6 +20,7 @@ | |||
#endif | |||
#include "CarlaEngineClient.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaPlugin.hpp" | |||
#include "CarlaBackendUtils.hpp" | |||
@@ -1513,11 +1514,18 @@ private: | |||
// ----------------------------------------------------------------------- | |||
CarlaEngine* CarlaEngine::newBridge(const char* const audioPoolBaseName, const char* const rtClientBaseName, const char* const nonRtClientBaseName, const char* const nonRtServerBaseName) | |||
namespace EngineInit { | |||
CarlaEngine* newBridge(const char* const audioPoolBaseName, | |||
const char* const rtClientBaseName, | |||
const char* const nonRtClientBaseName, | |||
const char* const nonRtServerBaseName) | |||
{ | |||
return new CarlaEngineBridge(audioPoolBaseName, rtClientBaseName, nonRtClientBaseName, nonRtServerBaseName); | |||
} | |||
} | |||
// ----------------------------------------------------------------------- | |||
CARLA_BACKEND_END_NAMESPACE | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2011-2020 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,6 +16,7 @@ | |||
*/ | |||
#include "CarlaEngineGraph.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaEngineInternal.hpp" | |||
#include <ctime> | |||
@@ -279,11 +280,16 @@ private: | |||
// ----------------------------------------- | |||
CarlaEngine* CarlaEngine::newDummy() | |||
namespace EngineInit { | |||
CarlaEngine* newDummy() | |||
{ | |||
carla_debug("EngineInit::newDummy()"); | |||
return new CarlaEngineDummy(); | |||
} | |||
} | |||
// ----------------------------------------- | |||
CARLA_BACKEND_END_NAMESPACE |
@@ -16,6 +16,7 @@ | |||
*/ | |||
#include "CarlaEngineClient.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaEngineInternal.hpp" | |||
#include "CarlaPlugin.hpp" | |||
@@ -3537,12 +3538,16 @@ private: | |||
// ----------------------------------------------------------------------- | |||
CarlaEngine* CarlaEngine::newJack() | |||
namespace EngineInit { | |||
CarlaEngine* newJack() | |||
{ | |||
carla_debug("CarlaEngine::newJack()"); | |||
carla_debug("EngineInit::newJack()"); | |||
return new CarlaEngineJack(); | |||
} | |||
} | |||
// ----------------------------------------------------------------------- | |||
CARLA_BACKEND_END_NAMESPACE | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2011-2020 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,6 +16,7 @@ | |||
*/ | |||
#include "CarlaEngineGraph.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaEngineInternal.hpp" | |||
#include "CarlaBackendUtils.hpp" | |||
#include "CarlaStringList.hpp" | |||
@@ -24,17 +25,9 @@ | |||
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) | |||
# pragma GCC diagnostic push | |||
# pragma GCC diagnostic ignored "-Wcast-qual" | |||
# pragma GCC diagnostic ignored "-Wconversion" | |||
# pragma GCC diagnostic ignored "-Wdouble-promotion" | |||
# pragma GCC diagnostic ignored "-Weffc++" | |||
# pragma GCC diagnostic ignored "-Wfloat-equal" | |||
# pragma GCC diagnostic ignored "-Wsign-conversion" | |||
# pragma GCC diagnostic ignored "-Wundef" | |||
# pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" | |||
# if __GNUC__ > 7 | |||
# pragma GCC diagnostic ignored "-Wclass-memaccess" | |||
# endif | |||
#endif | |||
#include "AppConfig.h" | |||
@@ -903,7 +896,9 @@ private: | |||
// ----------------------------------------- | |||
CarlaEngine* CarlaEngine::newJuce(const AudioApi api) | |||
namespace EngineInit { | |||
CarlaEngine* newJuce(const AudioApi api) | |||
{ | |||
initJuceDevicesIfNeeded(); | |||
@@ -956,14 +951,14 @@ CarlaEngine* CarlaEngine::newJuce(const AudioApi api) | |||
return new CarlaEngineJuce(deviceType); | |||
} | |||
uint CarlaEngine::getJuceApiCount() | |||
uint getJuceApiCount() | |||
{ | |||
initJuceDevicesIfNeeded(); | |||
return static_cast<uint>(gDeviceTypes.size()); | |||
} | |||
const char* CarlaEngine::getJuceApiName(const uint uindex) | |||
const char* getJuceApiName(const uint uindex) | |||
{ | |||
initJuceDevicesIfNeeded(); | |||
@@ -977,7 +972,7 @@ const char* CarlaEngine::getJuceApiName(const uint uindex) | |||
return deviceType->getTypeName().toRawUTF8(); | |||
} | |||
const char* const* CarlaEngine::getJuceApiDeviceNames(const uint uindex) | |||
const char* const* getJuceApiDeviceNames(const uint uindex) | |||
{ | |||
initJuceDevicesIfNeeded(); | |||
@@ -1006,7 +1001,7 @@ const char* const* CarlaEngine::getJuceApiDeviceNames(const uint uindex) | |||
return gDeviceNames; | |||
} | |||
const EngineDriverDeviceInfo* CarlaEngine::getJuceDeviceInfo(const uint uindex, const char* const deviceName) | |||
const EngineDriverDeviceInfo* getJuceDeviceInfo(const uint uindex, const char* const deviceName) | |||
{ | |||
initJuceDevicesIfNeeded(); | |||
@@ -1082,7 +1077,7 @@ const EngineDriverDeviceInfo* CarlaEngine::getJuceDeviceInfo(const uint uindex, | |||
return &devInfo; | |||
} | |||
bool CarlaEngine::showJuceDeviceControlPanel(const uint uindex, const char* const deviceName) | |||
bool showJuceDeviceControlPanel(const uint uindex, const char* const deviceName) | |||
{ | |||
const int index(static_cast<int>(uindex)); | |||
@@ -1099,6 +1094,8 @@ bool CarlaEngine::showJuceDeviceControlPanel(const uint uindex, const char* cons | |||
return device->showControlPanel(); | |||
} | |||
} | |||
// ----------------------------------------- | |||
CARLA_BACKEND_END_NAMESPACE |
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2011-2020 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 | |||
@@ -21,6 +21,7 @@ | |||
# error This file should not be compiled if building alternative-arch bridges | |||
#endif | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaEngineInternal.hpp" | |||
#include "CarlaPlugin.hpp" | |||
@@ -2720,22 +2721,26 @@ const NativePluginDescriptor* carla_get_native_patchbay_cv_plugin() | |||
CARLA_BACKEND_START_NAMESPACE | |||
CarlaEngine* CarlaEngine::newJack() { return nullptr; } | |||
# ifdef USING_JUCE | |||
CarlaEngine* CarlaEngine::newJuce(const AudioApi) { return nullptr; } | |||
uint CarlaEngine::getJuceApiCount() { return 0; } | |||
const char* CarlaEngine::getJuceApiName(const uint) { return nullptr; } | |||
const char* const* CarlaEngine::getJuceApiDeviceNames(const uint) { return nullptr; } | |||
const EngineDriverDeviceInfo* CarlaEngine::getJuceDeviceInfo(const uint, const char* const) { return nullptr; } | |||
bool CarlaEngine::showJuceDeviceControlPanel(const uint, const char* const) { return false; } | |||
# else | |||
CarlaEngine* CarlaEngine::newRtAudio(const AudioApi) { return nullptr; } | |||
uint CarlaEngine::getRtAudioApiCount() { return 0; } | |||
const char* CarlaEngine::getRtAudioApiName(const uint) { return nullptr; } | |||
const char* const* CarlaEngine::getRtAudioApiDeviceNames(const uint) { return nullptr; } | |||
const EngineDriverDeviceInfo* CarlaEngine::getRtAudioDeviceInfo(const uint, const char* const) { return nullptr; } | |||
# endif | |||
namespace EngineInit { | |||
CarlaEngine* newJack() { return nullptr; } | |||
#ifdef USING_JUCE_AUDIO_DEVICES | |||
CarlaEngine* newJuce(const AudioApi) { return nullptr; } | |||
uint getJuceApiCount() { return 0; } | |||
const char* getJuceApiName(const uint) { return nullptr; } | |||
const char* const* getJuceApiDeviceNames(const uint) { return nullptr; } | |||
const EngineDriverDeviceInfo* getJuceDeviceInfo(const uint, const char* const) { return nullptr; } | |||
bool showJuceDeviceControlPanel(const uint, const char* const) { return false; } | |||
#else | |||
CarlaEngine* newRtAudio(const AudioApi) { return nullptr; } | |||
uint getRtAudioApiCount() { return 0; } | |||
const char* getRtAudioApiName(const uint) { return nullptr; } | |||
const char* const* getRtAudioApiDeviceNames(const uint) { return nullptr; } | |||
const EngineDriverDeviceInfo* getRtAudioDeviceInfo(const uint, const char* const) { return nullptr; } | |||
#endif | |||
} | |||
CARLA_BACKEND_END_NAMESPACE | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla Plugin Host | |||
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2011-2020 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,6 +16,7 @@ | |||
*/ | |||
#include "CarlaEngineGraph.hpp" | |||
#include "CarlaEngineInit.hpp" | |||
#include "CarlaEngineInternal.hpp" | |||
#include "CarlaBackendUtils.hpp" | |||
#include "CarlaMathUtils.hpp" | |||
@@ -1134,7 +1135,9 @@ private: | |||
// ----------------------------------------- | |||
CarlaEngine* CarlaEngine::newRtAudio(const AudioApi api) | |||
namespace EngineInit { | |||
CarlaEngine* newRtAudio(const AudioApi api) | |||
{ | |||
initRtAudioAPIsIfNeeded(); | |||
@@ -1174,14 +1177,14 @@ CarlaEngine* CarlaEngine::newRtAudio(const AudioApi api) | |||
return new CarlaEngineRtAudio(rtApi); | |||
} | |||
uint CarlaEngine::getRtAudioApiCount() | |||
uint getRtAudioApiCount() | |||
{ | |||
initRtAudioAPIsIfNeeded(); | |||
return static_cast<uint>(gRtAudioApis.size()); | |||
} | |||
const char* CarlaEngine::getRtAudioApiName(const uint index) | |||
const char* getRtAudioApiName(const uint index) | |||
{ | |||
initRtAudioAPIsIfNeeded(); | |||
@@ -1190,7 +1193,7 @@ const char* CarlaEngine::getRtAudioApiName(const uint index) | |||
return CarlaBackend::getRtAudioApiName(gRtAudioApis[index]); | |||
} | |||
const char* const* CarlaEngine::getRtAudioApiDeviceNames(const uint index) | |||
const char* const* getRtAudioApiDeviceNames(const uint index) | |||
{ | |||
initRtAudioAPIsIfNeeded(); | |||
@@ -1223,7 +1226,7 @@ const char* const* CarlaEngine::getRtAudioApiDeviceNames(const uint index) | |||
return gDeviceNames; | |||
} | |||
const EngineDriverDeviceInfo* CarlaEngine::getRtAudioDeviceInfo(const uint index, const char* const deviceName) | |||
const EngineDriverDeviceInfo* getRtAudioDeviceInfo(const uint index, const char* const deviceName) | |||
{ | |||
initRtAudioAPIsIfNeeded(); | |||
@@ -1316,6 +1319,8 @@ const EngineDriverDeviceInfo* CarlaEngine::getRtAudioDeviceInfo(const uint index | |||
return &devInfo; | |||
} | |||
} | |||
// ----------------------------------------- | |||
CARLA_BACKEND_END_NAMESPACE |
@@ -9,7 +9,7 @@ include ../Makefile.mk | |||
# Workaround GCC bug | |||
ifeq ($(TESTBUILD),true) | |||
ifeq ($(USING_JUCE),true) | |||
ifeq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
BUILD_CXX_FLAGS += -Wno-undef | |||
endif | |||
endif | |||
@@ -37,7 +37,7 @@ OBJSa = $(OBJS) \ | |||
$(OBJDIR)/CarlaEngineJack.cpp.o \ | |||
$(OBJDIR)/CarlaEngineNative.cpp.o | |||
ifeq ($(USING_JUCE),true) | |||
ifeq ($(USING_JUCE_AUDIO_DEVICES),true) | |||
OBJSa += \ | |||
$(OBJDIR)/CarlaEngineJuce.cpp.o | |||
else | |||
@@ -26,18 +26,9 @@ | |||
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) | |||
# pragma GCC diagnostic push | |||
# pragma GCC diagnostic ignored "-Wcast-qual" | |||
# pragma GCC diagnostic ignored "-Wconversion" | |||
# pragma GCC diagnostic ignored "-Wdouble-promotion" | |||
# pragma GCC diagnostic ignored "-Weffc++" | |||
# pragma GCC diagnostic ignored "-Wfloat-equal" | |||
# pragma GCC diagnostic ignored "-Woverloaded-virtual" | |||
# pragma GCC diagnostic ignored "-Wsign-conversion" | |||
# pragma GCC diagnostic ignored "-Wundef" | |||
# pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" | |||
# if __GNUC__ > 7 | |||
# pragma GCC diagnostic ignored "-Wclass-memaccess" | |||
# endif | |||
#endif | |||
#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1 | |||
@@ -11,6 +11,8 @@ include ../Makefile.mk | |||
ifeq ($(TESTBUILD),true) | |||
ifeq ($(USING_JUCE),true) | |||
BUILD_CXX_FLAGS += -Wno-undef | |||
# FIXME | |||
BUILD_CXX_FLAGS += -Wno-deprecated-declarations | |||
endif | |||
endif | |||
@@ -12,6 +12,8 @@ include $(CWD)/Makefile.mk | |||
ifeq ($(TESTBUILD),true) | |||
ifeq ($(USING_JUCE),true) | |||
BUILD_CXX_FLAGS += -Wno-undef | |||
# FIXME | |||
BUILD_CXX_FLAGS += -Wno-deprecated-declarations | |||
endif | |||
endif | |||
@@ -125,7 +127,7 @@ LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS_native += $(MODULEDIR)/juce_gui_extra.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_gui_extra.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_gui_extra.posix64.a | |||
@@ -14,6 +14,13 @@ CWD=.. | |||
MODULENAME=carla-discovery | |||
include $(CWD)/Makefile.mk | |||
# Workaround GCC bug | |||
ifeq ($(TESTBUILD),true) | |||
ifeq ($(USING_JUCE),true) | |||
BUILD_CXX_FLAGS += -Wno-undef | |||
endif | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
BINDIR := $(CWD)/../bin | |||
@@ -117,12 +124,14 @@ LIBS_win32 += $(MODULEDIR)/juce_gui_basics.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_gui_basics.win64.a | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS_native += $(MODULEDIR)/juce_gui_extra.a | |||
LIBS_posix32 += $(MODULEDIR)/juce_gui_extra.posix32.a | |||
LIBS_posix64 += $(MODULEDIR)/juce_gui_extra.posix64.a | |||
LIBS_win32 += $(MODULEDIR)/juce_gui_extra.win32.a | |||
LIBS_win64 += $(MODULEDIR)/juce_gui_extra.win64.a | |||
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
endif # MACOS | |||
endif # USING_JUCE_GUI_EXTRA | |||
endif # USING_JUCE | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
@@ -26,11 +26,20 @@ | |||
#endif | |||
#ifdef USING_JUCE | |||
# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) | |||
# pragma GCC diagnostic push | |||
# pragma GCC diagnostic ignored "-Wdouble-promotion" | |||
# pragma GCC diagnostic ignored "-Weffc++" | |||
# pragma GCC diagnostic ignored "-Wfloat-equal" | |||
# endif | |||
# include "AppConfig.h" | |||
# include "juce_audio_processors/juce_audio_processors.h" | |||
# if JUCE_PLUGINHOST_VST | |||
# define USING_JUCE_FOR_VST2 | |||
# endif | |||
# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) | |||
# pragma GCC diagnostic pop | |||
# endif | |||
#endif | |||
#include "CarlaLadspaUtils.hpp" | |||
@@ -59,16 +59,16 @@ | |||
#define JUCE_MODULE_AVAILABLE_juce_video 0 | |||
// conditional | |||
#ifdef APPCONFIG_OS_MAC | |||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 | |||
#if defined(USING_JUCE_AUDIO_DEVICES) && !defined(BUILD_BRIDGE) | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | |||
#else | |||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 0 | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_devices 0 | |||
#endif | |||
#ifndef BUILD_BRIDGE | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | |||
#ifdef USING_JUCE_GUI_EXTRA | |||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 | |||
#else | |||
# define JUCE_MODULE_AVAILABLE_juce_audio_devices 0 | |||
# define JUCE_MODULE_AVAILABLE_juce_gui_extra 0 | |||
#endif | |||
// misc | |||
@@ -945,7 +945,7 @@ private: | |||
#endif | |||
inline bool isHeapAllocated() const noexcept { return size > (int) sizeof (packedData); } | |||
inline uint8* getData() const noexcept { return isHeapAllocated() ? packedData.allocatedData : (uint8*) packedData.asBytes; } | |||
inline uint8* getData() const noexcept { return isHeapAllocated() ? packedData.allocatedData : const_cast<uint8*>(packedData.asBytes); } | |||
uint8* allocateSpace (int); | |||
}; | |||
@@ -81,7 +81,7 @@ LIBS += $(MODULEDIR)/juce_data_structures.a | |||
LIBS += $(MODULEDIR)/juce_events.a | |||
LIBS += $(MODULEDIR)/juce_graphics.a | |||
LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
endif | |||
@@ -110,7 +110,7 @@ LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
ifeq ($(LINUX_OR_MACOS),true) | |||
ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
endif | |||
endif | |||