@@ -463,25 +463,31 @@ typedef enum { | |||
*/ | |||
PLUGIN_AU = 6, | |||
/*! | |||
* ReWire plugin. | |||
* @note Windows and MacOS only | |||
*/ | |||
PLUGIN_REWIRE = 7, | |||
/*! | |||
* Single CSD file (Csound). | |||
*/ | |||
PLUGIN_FILE_CSD = 7, | |||
PLUGIN_FILE_CSD = 8, | |||
/*! | |||
* Single GIG file. | |||
*/ | |||
PLUGIN_FILE_GIG = 8, | |||
PLUGIN_FILE_GIG = 9, | |||
/*! | |||
* Single SF2 file (SoundFont). | |||
*/ | |||
PLUGIN_FILE_SF2 = 9, | |||
PLUGIN_FILE_SF2 = 10, | |||
/*! | |||
* Single SFZ file. | |||
*/ | |||
PLUGIN_FILE_SFZ = 10 | |||
PLUGIN_FILE_SFZ = 11 | |||
} PluginType; | |||
@@ -840,6 +840,7 @@ public: | |||
static CarlaPlugin* newLV2(const Initializer& init); | |||
static CarlaPlugin* newVST(const Initializer& init); | |||
static CarlaPlugin* newAU(const Initializer& init); | |||
static CarlaPlugin* newReWire(const Initializer& init); | |||
static CarlaPlugin* newCsound(const Initializer& init); | |||
static CarlaPlugin* newJuce(const Initializer& init, const char* const format); | |||
@@ -16,7 +16,7 @@ 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 | |||
BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST -DWANT_AU -DWANT_REWIRE | |||
ifeq ($(CARLA_VESTIGE_HEADER),true) | |||
BUILD_CXX_FLAGS += -DVESTIGE_HEADER | |||
endif | |||
@@ -891,6 +891,10 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
plugin = CarlaPlugin::newAU(initializer); | |||
break; | |||
case PLUGIN_REWIRE: | |||
plugin = CarlaPlugin::newReWire(initializer); | |||
break; | |||
case PLUGIN_FILE_CSD: | |||
plugin = CarlaPlugin::newFileCSD(initializer); | |||
break; | |||
@@ -294,14 +294,18 @@ bool CarlaPluginUi::tryTransientWinIdMatch(const ulong pid, const char* const ui | |||
#ifdef CARLA_OS_MAC | |||
CarlaPluginUi* CarlaPluginUi::newCocoa(CloseCallback* cb) | |||
{ | |||
return new CocoaPluginUi(cb); | |||
//return new CocoaPluginUi(cb); | |||
return nullptr; | |||
(void)cb; | |||
} | |||
#endif | |||
#ifdef CARLA_OS_WIN | |||
CarlaPluginUi* CarlaPluginUi::newWindows(CloseCallback* cb) | |||
{ | |||
return new WindowsPluginUi(cb); | |||
//return new WindowsPluginUi(cb); | |||
return nullptr; | |||
(void)cb; | |||
} | |||
#endif | |||
@@ -27,6 +27,7 @@ OBJS = \ | |||
Lv2Plugin.cpp.o \ | |||
VstPlugin.cpp.o \ | |||
AuPlugin.cpp.o \ | |||
ReWirePlugin.cpp.o \ | |||
CsoundPlugin.cpp.o \ | |||
JucePlugin.cpp.o \ | |||
FluidSynthPlugin.cpp.o \ | |||
@@ -87,6 +88,9 @@ VstPlugin.cpp.o: VstPlugin.cpp $(CARLA_PLUGIN_INTERNAL_HPP) $(CARLA_ENGINE_HPP) | |||
AuPlugin.cpp.o: AuPlugin.cpp $(CARLA_PLUGIN_HPP) $(CARLA_ENGINE_HPP) $(CARLA_UTILS_HPP) | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
ReWirePlugin.cpp.o: ReWirePlugin.cpp $(CARLA_PLUGIN_INTERNAL_HPP) $(CARLA_ENGINE_HPP) $(CARLA_LIB_UTILS_HPP) $(CARLA_MATH_UTILS_HPP) | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
CsoundPlugin.cpp.o: CsoundPlugin.cpp $(CARLA_PLUGIN_INTERNAL_HPP) $(CARLA_ENGINE_HPP) | |||
$(CXX) $< $(BUILD_CXX_FLAGS) $(CSOUND_FLAGS) -c -o $@ | |||
@@ -30,6 +30,10 @@ | |||
#include <QtCore/QByteArray> | |||
#ifdef BUILD_BRIDGE | |||
# undef HAVE_JUCE | |||
#endif | |||
#ifdef HAVE_JUCE | |||
# include "juce_gui_basics.h" | |||
using juce::initialiseJuce_GUI; | |||
@@ -419,6 +419,7 @@ OBJS_NATIVE += \ | |||
../backend/plugin/Lv2Plugin__native.o \ | |||
../backend/plugin/VstPlugin__native.o \ | |||
../backend/plugin/AuPlugin__native.o \ | |||
../backend/plugin/ReWirePlugin__native.o \ | |||
../backend/plugin/CsoundPlugin__native.o \ | |||
../backend/plugin/JucePlugin__native.o \ | |||
../backend/plugin/FluidSynthPlugin__native.o \ | |||
@@ -463,171 +464,200 @@ carla-bridge-native: $(OBJS_NATIVE) $(LIBS_NATIVE) | |||
# -------------------------------------------------------------- | |||
# posix32 | |||
# OBJS_POSIX32 = CarlaBridgePlugin__posix32.o \ | |||
# CarlaBridgeClient__posix32.o CarlaBridgeOsc__posix32.o | |||
# | |||
# # carla-engine | |||
# OBJS_POSIX32 += \ | |||
# ../backend/engine/CarlaEngine__posix32.o \ | |||
# ../backend/engine/CarlaEngineOsc__posix32.o \ | |||
# ../backend/engine/CarlaEngineThread__posix32.o \ | |||
# ../backend/engine/CarlaEngineJack__posix32.o \ | |||
# ../backend/engine/CarlaEngineBridge__posix32.o | |||
# | |||
# # carla-plugin | |||
# OBJS_POSIX32 += \ | |||
# ../backend/plugin/CarlaPlugin__posix32.o \ | |||
# ../backend/plugin/CarlaPluginThread__posix32.o \ | |||
# ../backend/plugin/NativePlugin__posix32.o \ | |||
# ../backend/plugin/LadspaPlugin__posix32.o \ | |||
# ../backend/plugin/DssiPlugin__posix32.o \ | |||
# ../backend/plugin/Lv2Plugin__posix32.o \ | |||
# ../backend/plugin/VstPlugin__posix32.o \ | |||
# ../backend/plugin/Vst3Plugin__posix32.o \ | |||
# ../backend/plugin/FluidSynthPlugin__posix32.o \ | |||
# ../backend/plugin/LinuxSamplerPlugin__posix32.o | |||
OBJS_POSIX32 = CarlaBridgePlugin__posix32.o \ | |||
CarlaBridgeClient__posix32.o CarlaBridgeOsc__posix32.o | |||
# carla-engine | |||
OBJS_POSIX32 += \ | |||
../backend/engine/CarlaEngine__posix32.o \ | |||
../backend/engine/CarlaEngineInternal__posix32.o \ | |||
../backend/engine/CarlaEngineOsc__posix32.o \ | |||
../backend/engine/CarlaEngineThread__posix32.o \ | |||
../backend/engine/CarlaEngineJack__posix32.o \ | |||
../backend/engine/CarlaEngineBridge__posix32.o | |||
# carla-plugin | |||
OBJS_POSIX32 += \ | |||
../backend/plugin/CarlaPlugin__posix32.o \ | |||
../backend/plugin/CarlaPluginInternal__posix32.o \ | |||
../backend/plugin/CarlaPluginThread__posix32.o \ | |||
../backend/plugin/CarlaPluginUi__posix32.o \ | |||
../backend/plugin/NativePlugin__posix32.o \ | |||
../backend/plugin/LadspaPlugin__posix32.o \ | |||
../backend/plugin/DssiPlugin__posix32.o \ | |||
../backend/plugin/Lv2Plugin__posix32.o \ | |||
../backend/plugin/VstPlugin__posix32.o \ | |||
../backend/plugin/AuPlugin__posix32.o \ | |||
../backend/plugin/ReWirePlugin__posix32.o \ | |||
../backend/plugin/CsoundPlugin__posix32.o \ | |||
../backend/plugin/JucePlugin__posix32.o \ | |||
../backend/plugin/FluidSynthPlugin__posix32.o \ | |||
../backend/plugin/LinuxSamplerPlugin__posix32.o | |||
# carla-standalone | |||
# OBJS_POSIX32 += \ | |||
# ../backend/standalone/CarlaStandalone__posix32.o | |||
# | |||
# # libs | |||
# OBJS_POSIX32 += \ | |||
# ../modules/lilv.posix32.a \ | |||
# ../modules/rtmempool.posix32.a | |||
# | |||
# carla-bridge-posix32: $(OBJS_POSIX32) | |||
# $(CXX) $(OBJS_POSIX32) $(POSIX_LINK_FLAGS) $(POSIX_32BIT_FLAGS) -o $@ | |||
# | |||
# %__posix32.o: %.cpp | |||
# $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@ | |||
OBJS_POSIX32 += \ | |||
../backend/standalone/CarlaStandalone__posix32.o | |||
# libs | |||
LIBS_POSIX32 = \ | |||
../modules/lilv.posix32.a \ | |||
../modules/rtmempool.posix32.a | |||
carla-bridge-posix32: $(OBJS_POSIX32) $(LIBS_POSIX32) | |||
$(CXX) $(OBJS_POSIX32) -Wl,--start-group $(LIBS_POSIX32) -Wl,--end-group $(POSIX_LINK_FLAGS) $(POSIX_32BIT_FLAGS) -o $@ | |||
%__posix32.o: %.cpp | |||
$(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) -c -o $@ | |||
# -------------------------------------------------------------- | |||
# posix64 | |||
# OBJS_POSIX64 = CarlaBridgePlugin__posix64.o \ | |||
# CarlaBridgeClient__posix64.o CarlaBridgeOsc__posix64.o | |||
# | |||
# # carla-engine | |||
# OBJS_POSIX64 += \ | |||
# ../backend/engine/CarlaEngine__posix64.o \ | |||
# ../backend/engine/CarlaEngineOsc__posix64.o \ | |||
# ../backend/engine/CarlaEngineThread__posix64.o \ | |||
# ../backend/engine/CarlaEngineJack__posix64.o \ | |||
# ../backend/engine/CarlaEngineBridge__posix64.o | |||
# | |||
# # carla-plugin | |||
# OBJS_POSIX64 += \ | |||
# ../backend/plugin/CarlaPlugin__posix64.o \ | |||
# ../backend/plugin/CarlaPluginThread__posix64.o \ | |||
# ../backend/plugin/NativePlugin__posix64.o \ | |||
# ../backend/plugin/LadspaPlugin__posix64.o \ | |||
# ../backend/plugin/DssiPlugin__posix64.o \ | |||
# ../backend/plugin/Lv2Plugin__posix64.o \ | |||
# ../backend/plugin/VstPlugin__posix64.o \ | |||
# ../backend/plugin/Vst3Plugin__posix64.o \ | |||
# ../backend/plugin/FluidSynthPlugin__posix64.o \ | |||
# ../backend/plugin/LinuxSamplerPlugin__posix64.o | |||
OBJS_POSIX64 = CarlaBridgePlugin__posix64.o \ | |||
CarlaBridgeClient__posix64.o CarlaBridgeOsc__posix64.o | |||
# carla-engine | |||
OBJS_POSIX64 += \ | |||
../backend/engine/CarlaEngine__posix64.o \ | |||
../backend/engine/CarlaEngineInternal__posix64.o \ | |||
../backend/engine/CarlaEngineOsc__posix64.o \ | |||
../backend/engine/CarlaEngineThread__posix64.o \ | |||
../backend/engine/CarlaEngineJack__posix64.o \ | |||
../backend/engine/CarlaEngineBridge__posix64.o | |||
# carla-plugin | |||
OBJS_POSIX64 += \ | |||
../backend/plugin/CarlaPlugin__posix64.o \ | |||
../backend/plugin/CarlaPluginInternal__posix64.o \ | |||
../backend/plugin/CarlaPluginThread__posix64.o \ | |||
../backend/plugin/CarlaPluginUi__posix64.o \ | |||
../backend/plugin/NativePlugin__posix64.o \ | |||
../backend/plugin/LadspaPlugin__posix64.o \ | |||
../backend/plugin/DssiPlugin__posix64.o \ | |||
../backend/plugin/Lv2Plugin__posix64.o \ | |||
../backend/plugin/VstPlugin__posix64.o \ | |||
../backend/plugin/AuPlugin__posix32.o \ | |||
../backend/plugin/ReWirePlugin__posix64.o \ | |||
../backend/plugin/CsoundPlugin__posix64.o \ | |||
../backend/plugin/JucePlugin__posix64.o \ | |||
../backend/plugin/FluidSynthPlugin__posix64.o \ | |||
../backend/plugin/LinuxSamplerPlugin__posix64.o | |||
# carla-standalone | |||
# OBJS_POSIX64 += \ | |||
# ../backend/standalone/CarlaStandalone__posix64.o | |||
# | |||
# # libs | |||
# OBJS_POSIX64 += \ | |||
# ../modules/lilv.posix64.a \ | |||
# ../modules/rtmempool.posix64.a | |||
OBJS_POSIX64 += \ | |||
../backend/standalone/CarlaStandalone__posix64.o | |||
# carla-bridge-posix64: $(OBJS_POSIX64) | |||
# $(CXX) $(OBJS_POSIX64) $(POSIX_LINK_FLAGS) $(POSIX_64BIT_FLAGS) -o $@ | |||
# | |||
# %__posix64.o: %.cpp | |||
# $(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@ | |||
# libs | |||
LIBS_POSIX64 = \ | |||
../modules/lilv.posix64.a \ | |||
../modules/rtmempool.posix64.a | |||
carla-bridge-posix64: $(OBJS_POSIX64) $(LIBS_POSIX64) | |||
$(CXX) $(OBJS_POSIX64) -Wl,--start-group $(LIBS_POSIX64) -Wl,--end-group $(POSIX_LINK_FLAGS) $(POSIX_64BIT_FLAGS) -o $@ | |||
%__posix64.o: %.cpp | |||
$(CXX) $< $(POSIX_BUILD_FLAGS) $(POSIX_64BIT_FLAGS) -c -o $@ | |||
# -------------------------------------------------------------- | |||
# win32 | |||
# OBJS_WIN32 = CarlaBridgePlugin__win32.o \ | |||
# CarlaBridgeClient__win32.o CarlaBridgeOsc__win32.o | |||
# | |||
# # carla-engine | |||
# OBJS_WIN32 += \ | |||
# ../backend/engine/CarlaEngine__win32.o \ | |||
# ../backend/engine/CarlaEngineOsc__win32.o \ | |||
# ../backend/engine/CarlaEngineThread__win32.o \ | |||
# ../backend/engine/CarlaEngineBridge__win32.o \ | |||
# ../backend/engine/CarlaEngineJack__win32.o | |||
# | |||
# # carla-plugin | |||
# OBJS_WIN32 += \ | |||
# ../backend/plugin/CarlaPlugin__win32.o \ | |||
# ../backend/plugin/CarlaPluginThread__win32.o \ | |||
# ../backend/plugin/NativePlugin__win32.o \ | |||
# ../backend/plugin/LadspaPlugin__win32.o \ | |||
# ../backend/plugin/DssiPlugin__win32.o \ | |||
# ../backend/plugin/Lv2Plugin__win32.o \ | |||
# ../backend/plugin/VstPlugin__win32.o \ | |||
# ../backend/plugin/Vst3Plugin__win32.o \ | |||
# ../backend/plugin/FluidSynthPlugin__win32.o \ | |||
# ../backend/plugin/LinuxSamplerPlugin__win32.o | |||
OBJS_WIN32 = CarlaBridgePlugin__win32.o \ | |||
CarlaBridgeClient__win32.o CarlaBridgeOsc__win32.o | |||
# carla-engine | |||
OBJS_WIN32 += \ | |||
../backend/engine/CarlaEngine__win32.o \ | |||
../backend/engine/CarlaEngineInternal__win32.o \ | |||
../backend/engine/CarlaEngineOsc__win32.o \ | |||
../backend/engine/CarlaEngineThread__win32.o \ | |||
../backend/engine/CarlaEngineBridge__win32.o \ | |||
../backend/engine/CarlaEngineJack__win32.o | |||
# carla-plugin | |||
OBJS_WIN32 += \ | |||
../backend/plugin/CarlaPlugin__win32.o \ | |||
../backend/plugin/CarlaPluginInternal__win32.o \ | |||
../backend/plugin/CarlaPluginThread__win32.o \ | |||
../backend/plugin/CarlaPluginUi__win32.o \ | |||
../backend/plugin/NativePlugin__win32.o \ | |||
../backend/plugin/LadspaPlugin__win32.o \ | |||
../backend/plugin/DssiPlugin__win32.o \ | |||
../backend/plugin/Lv2Plugin__win32.o \ | |||
../backend/plugin/VstPlugin__win32.o \ | |||
../backend/plugin/AuPlugin__win32.o \ | |||
../backend/plugin/ReWirePlugin__win32.o \ | |||
../backend/plugin/CsoundPlugin__win32.o \ | |||
../backend/plugin/JucePlugin__win32.o \ | |||
../backend/plugin/FluidSynthPlugin__win32.o \ | |||
../backend/plugin/LinuxSamplerPlugin__win32.o | |||
# carla-standalone | |||
# OBJS_WIN32 += \ | |||
# ../backend/standalone/CarlaStandalone__win32.o | |||
# | |||
# # libs | |||
# OBJS_WIN32 += \ | |||
# ../modules/juce_core.win32.a \ | |||
# ../modules/lilv.win32.a \ | |||
# ../modules/rtmempool.win32.a | |||
# carla-bridge-win32.exe: $(OBJS_WIN32) ../modules/jackbridge-win32.dll | |||
# $(CXX) $(OBJS_WIN32) $(WIN_32BIT_FLAGS) $(WIN_LINK_FLAGS) -ljackbridge-win32 -o $@ | |||
# | |||
# %__win32.o: %.cpp | |||
# $(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_32BIT_FLAGS) -c -o $@ | |||
OBJS_WIN32 += \ | |||
../backend/standalone/CarlaStandalone__win32.o | |||
# libs | |||
LIBS_WIN32 = \ | |||
../modules/lilv.win32.a \ | |||
../modules/rtmempool.win32.a | |||
ifeq ($(HAVE_JUCE),true) | |||
LIBS_WIN32 += \ | |||
../modules/juce_audio_basics.win32.a \ | |||
../modules/juce_core.win32.a | |||
endif | |||
carla-bridge-win32.exe: $(OBJS_WIN32) $(LIBS_WIN32) ../modules/jackbridge-win32.dll | |||
$(CXX) $(OBJS_WIN32) -Wl,--start-group $(LIBS_WIN32) -Wl,--end-group $(WIN_LINK_FLAGS) $(WIN_32BIT_FLAGS) -ljackbridge-win32 -o $@ | |||
%__win32.o: %.cpp | |||
$(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_32BIT_FLAGS) -c -o $@ | |||
# -------------------------------------------------------------- | |||
# win64 | |||
# OBJS_WIN64 = CarlaBridgePlugin__win64.o \ | |||
# CarlaBridgeClient__win64.o CarlaBridgeOsc__win64.o | |||
# | |||
# # carla-engine | |||
# OBJS_WIN64 += \ | |||
# ../backend/engine/CarlaEngine__win64.o \ | |||
# ../backend/engine/CarlaEngineOsc__win64.o \ | |||
# ../backend/engine/CarlaEngineThread__win64.o \ | |||
# ../backend/engine/CarlaEngineBridge__win64.o \ | |||
# ../backend/engine/CarlaEngineJack__win64.o | |||
# | |||
# # carla-plugin | |||
# OBJS_WIN64 += \ | |||
# ../backend/plugin/CarlaPlugin__win64.o \ | |||
# ../backend/plugin/CarlaPluginThread__win64.o \ | |||
# ../backend/plugin/NativePlugin__win64.o \ | |||
# ../backend/plugin/LadspaPlugin__win64.o \ | |||
# ../backend/plugin/DssiPlugin__win64.o \ | |||
# ../backend/plugin/Lv2Plugin__win64.o \ | |||
# ../backend/plugin/VstPlugin__win64.o \ | |||
# ../backend/plugin/Vst3Plugin__win64.o \ | |||
# ../backend/plugin/FluidSynthPlugin__win64.o \ | |||
# ../backend/plugin/LinuxSamplerPlugin__win64.o | |||
# | |||
# # carla-standalone | |||
# OBJS_WIN64 += \ | |||
# ../backend/standalone/CarlaStandalone__win64.o | |||
# | |||
# # libs | |||
# OBJS_WIN64 += \ | |||
# ../modules/lilv.win64.a \ | |||
# ../modules/rtmempool.win64.a | |||
# | |||
# carla-bridge-win64.exe: $(OBJS_WIN64) ../modules/jackbridge-win64.dll | |||
# $(CXX) $(OBJS_WIN64) $(WIN_64BIT_FLAGS) $(WIN_LINK_FLAGS) -ljackbridge-win64 -o $@ | |||
# | |||
# %__win64.o: %.cpp | |||
# $(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_64BIT_FLAGS) -c -o $@ | |||
OBJS_WIN64 = CarlaBridgePlugin__win64.o \ | |||
CarlaBridgeClient__win64.o CarlaBridgeOsc__win64.o | |||
# carla-engine | |||
OBJS_WIN64 += \ | |||
../backend/engine/CarlaEngine__win64.o \ | |||
../backend/engine/CarlaEngineInternal__win64.o \ | |||
../backend/engine/CarlaEngineOsc__win64.o \ | |||
../backend/engine/CarlaEngineThread__win64.o \ | |||
../backend/engine/CarlaEngineBridge__win64.o \ | |||
../backend/engine/CarlaEngineJack__win64.o | |||
# carla-plugin | |||
OBJS_WIN64 += \ | |||
../backend/plugin/CarlaPlugin__win64.o \ | |||
../backend/plugin/CarlaPluginInternal__win64.o \ | |||
../backend/plugin/CarlaPluginThread__win64.o \ | |||
../backend/plugin/CarlaPluginUi__win64.o \ | |||
../backend/plugin/NativePlugin__win64.o \ | |||
../backend/plugin/LadspaPlugin__win64.o \ | |||
../backend/plugin/DssiPlugin__win64.o \ | |||
../backend/plugin/Lv2Plugin__win64.o \ | |||
../backend/plugin/VstPlugin__win64.o \ | |||
../backend/plugin/AuPlugin__win64.o \ | |||
../backend/plugin/ReWirePlugin__win64.o \ | |||
../backend/plugin/CsoundPlugin__win64.o \ | |||
../backend/plugin/JucePlugin__win64.o \ | |||
../backend/plugin/FluidSynthPlugin__win64.o \ | |||
../backend/plugin/LinuxSamplerPlugin__win64.o | |||
# carla-standalone | |||
OBJS_WIN64 += \ | |||
../backend/standalone/CarlaStandalone__win64.o | |||
# libs | |||
LIBS_WIN64 = \ | |||
../modules/lilv.win64.a \ | |||
../modules/rtmempool.win64.a | |||
carla-bridge-win64.exe: $(OBJS_WIN64) $(LIBS_WIN64) ../modules/jackbridge-win64.dll | |||
$(CXX) $(OBJS_WIN64) -Wl,--start-group $(LIBS_WIN32) -Wl,--end-group $(WIN_LINK_FLAGS) $(WIN_64BIT_FLAGS) -ljackbridge-win64 -o $@ | |||
%__win64.o: %.cpp | |||
$(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_64BIT_FLAGS) -c -o $@ | |||
# -------------------------------------------------------------- | |||
@@ -638,10 +668,10 @@ clean: | |||
rm -f carla-bridge-vst-carbon carla-bridge-vst-cocoa carla-bridge-vst-x11 | |||
rm -f carla-bridge-native carla-bridge-posix32 carla-bridge-posix64 | |||
rm -f $(OBJS_NATIVE) | |||
# rm -f $(OBJS_POSIX32) | |||
# rm -f $(OBJS_POSIX64) | |||
# rm -f $(OBJS_WIN32) | |||
# rm -f $(OBJS_WIN64) | |||
rm -f $(OBJS_POSIX32) | |||
rm -f $(OBJS_POSIX64) | |||
rm -f $(OBJS_WIN32) | |||
rm -f $(OBJS_WIN64) | |||
debug: | |||
$(MAKE) DEBUG=true | |||
@@ -654,8 +684,17 @@ doxygen: carla_bridge.doxygen | |||
.FORCE: | |||
.PHONY: .FORCE | |||
# ../modules/juce_core.%.a: .FORCE | |||
# $(MAKE) -C ../modules juce_core_$* | |||
../modules/jackbridge-win32.dll: .FORCE | |||
$(MAKE) -C ../modules jackbridge-win32e | |||
../modules/jackbridge-win64.dll: .FORCE | |||
$(MAKE) -C ../modules jackbridge-win64e | |||
../modules/juce_audio_basics.%.a: .FORCE | |||
$(MAKE) -C ../modules juce_audio_basics_$* | |||
../modules/juce_core.%.a: .FORCE | |||
$(MAKE) -C ../modules juce_core_$* | |||
../modules/lilv.%.a: .FORCE | |||
$(MAKE) -C ../modules lilv_$* | |||
@@ -351,17 +351,21 @@ PLUGIN_VST = 5 | |||
# @note MacOS only | |||
PLUGIN_AU = 6 | |||
# ReWire plugin. | |||
# @note Windows and MacOS only | |||
PLUGIN_REWIRE = 7 | |||
# Single CSD file (Csound). | |||
PLUGIN_FILE_CSD = 7 | |||
PLUGIN_FILE_CSD = 8 | |||
# Single GIG file. | |||
PLUGIN_FILE_GIG = 8 | |||
PLUGIN_FILE_GIG = 9 | |||
# Single SF2 file (SoundFont). | |||
PLUGIN_FILE_SF2 = 9 | |||
PLUGIN_FILE_SF2 = 10 | |||
# Single SFZ file. | |||
PLUGIN_FILE_SFZ = 10 | |||
PLUGIN_FILE_SFZ = 11 | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Plugin Category | |||
@@ -560,6 +560,8 @@ class PluginEdit(QDialog): | |||
self.ui.le_type.setText("VST") | |||
elif pluginType == PLUGIN_AU: | |||
self.ui.le_type.setText("AU") | |||
elif pluginType == PLUGIN_REWIRE: | |||
self.ui.le_type.setText("ReWire") | |||
elif pluginType == PLUGIN_FILE_CSD: | |||
self.ui.le_type.setText("CSD") | |||
elif pluginType == PLUGIN_FILE_GIG: | |||
@@ -142,12 +142,18 @@ jackbridge: | |||
jackbridge-win32: | |||
$(MAKE) -C jackbridge win32 | |||
jackbridge-win32e: | |||
$(MAKE) -C jackbridge win32e | |||
jackbridge-win64: | |||
$(MAKE) -C jackbridge win64 | |||
jackbridge-wine32: | |||
$(MAKE) -C jackbridge wine32 | |||
jackbridge-win64e: | |||
$(MAKE) -C jackbridge win64e | |||
jackbridge-wine64: | |||
$(MAKE) -C jackbridge wine64 | |||
@@ -17,7 +17,9 @@ OBJS = JackBridge1.cpp.o JackBridge2.cpp.o | |||
OBJS_posix32 = JackBridge1.cpp.posix32.o JackBridge2.cpp.posix32.o | |||
OBJS_posix64 = JackBridge1.cpp.posix64.o JackBridge2.cpp.posix64.o | |||
OBJS_win32 = JackBridge1.cpp.win32.o JackBridge2.cpp.win32.o | |||
OBJS_win32e = JackBridge1.cpp.win32e.o JackBridge2.cpp.win32e.o | |||
OBJS_win64 = JackBridge1.cpp.win64.o JackBridge2.cpp.win64.o | |||
OBJS_win64e = JackBridge1.cpp.win64e.o JackBridge2.cpp.win64e.o | |||
# -------------------------------------------------------------- | |||
@@ -27,6 +29,8 @@ posix32: ../jackbridge.posix32.a | |||
posix64: ../jackbridge.posix64.a | |||
win32: ../jackbridge.win32.a | |||
win64: ../jackbridge.win64.a | |||
win32e: ../jackbridge-win32.dll | |||
win64e: ../jackbridge-win64.dll | |||
# -------------------------------------------------------------- | |||
@@ -53,6 +57,12 @@ win64: ../jackbridge.win64.a | |||
../libjackbridge.dll: $(OBJS) | |||
$(CXX) $^ -shared $(LINK_FLAGS) -o $@ | |||
../jackbridge-win32.dll: $(OBJS_win32e) | |||
$(CXX) $^ -shared $(LINK_FLAGS) -Wl,--output-def,$@.def,--out-implib,$@.a -o $@ | |||
../jackbridge-win64.dll: $(OBJS_win64e) | |||
$(CXX) $^ -shared $(LINK_FLAGS) -Wl,--output-def,$@.def,--out-implib,$@.a -o $@ | |||
../libjackbridge.dylib: $(OBJS) | |||
$(CXX) $^ -dynamiclib $(LINK_FLAGS) -o $@ | |||
@@ -61,9 +71,6 @@ win64: ../jackbridge.win64.a | |||
# -------------------------------------------------------------- | |||
%.cpp.o: %.cpp | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
%.posix32.o: % | |||
$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@ | |||
@@ -76,6 +83,15 @@ win64: ../jackbridge.win64.a | |||
%.win64.o: % | |||
$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@ | |||
%.win32e.o: % | |||
$(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -DJACKBRIDGE_DUMMY=1 -DJACKBRIDGE_EXPORT -w -c -o $@ | |||
%.win64e.o: % | |||
$(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -DJACKBRIDGE_DUMMY=1 -DJACKBRIDGE_EXPORT -w -c -o $@ | |||
%.cpp.o: %.cpp | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
# -------------------------------------------------------------- | |||
clean: | |||
@@ -19,185 +19,6 @@ | |||
// ----------------------------------------------------------------------- | |||
struct OpenInfo { | |||
ulong size1; // ?? | |||
ulong size2; // 12 | |||
long sampleRate; | |||
long bufferSize; | |||
}; | |||
struct DevInfo { | |||
ulong size; // 8288 | |||
char name[32]; | |||
long channelCount; // max limited to 255 | |||
char channelNames[256][32]; | |||
unsigned long defaultChannels[8]; | |||
unsigned long stereoPairs[4]; | |||
unsigned long eventBufferSize; | |||
long version; | |||
}; | |||
struct AudioInfo { | |||
ulong size; // 12 | |||
long sampleRate; | |||
long bufferSize; | |||
}; | |||
struct BusInfo { | |||
ulong size; // 40 | |||
ulong channel; | |||
char name[32]; | |||
}; | |||
struct EventInfo { | |||
ulong size; // 36 | |||
ulong bus[32]; | |||
}; | |||
struct Event { // 24 | |||
ushort type; | |||
uchar d1, d2; | |||
ulong s1, s2, s3, s4, s5; | |||
}; | |||
struct EventBuffer { | |||
ulong size1; // 20 | |||
ulong size2; // 24 | |||
ulong count; | |||
ulong maxCount; | |||
Event* buf; | |||
}; | |||
struct AudioInInfo { | |||
ulong size; // 1116 | |||
EventBuffer evBuf; | |||
unsigned long channels[8]; | |||
float* audioBuf[256]; | |||
long tickStart; | |||
ulong frames; | |||
ulong playMode; | |||
ulong tempo; // bpm | |||
ulong signNumerator; | |||
ulong signDenominator; | |||
long loopStartPos; | |||
long loopEndPos; | |||
ulong loopOn; | |||
} ReWireDriveParams; | |||
struct AudioOutInfo { | |||
ulong size; // 56 | |||
EventBuffer evBuf; | |||
ulong channels[8]; | |||
}; | |||
// ----------------------------------------------------------------------- | |||
typedef void (*Fn_RWDEFCloseDevice)(); | |||
typedef void (*Fn_RWDEFDriveAudio)(AudioInInfo* in, AudioOutInfo* out); | |||
typedef void (*Fn_RWDEFGetDeviceInfo)(DevInfo* info); | |||
typedef void (*Fn_RWDEFGetDeviceNameAndVersion)(long* version, char* name); | |||
typedef void (*Fn_RWDEFGetEventBusInfo)(ushort index, BusInfo* info); | |||
typedef void (*Fn_RWDEFGetEventChannelInfo)(void* v1, void* v2); | |||
typedef void (*Fn_RWDEFGetEventControllerInfo)(void* v1, ushort index, void* v2); | |||
typedef void (*Fn_RWDEFGetEventInfo)(EventInfo* info); | |||
typedef void (*Fn_RWDEFGetEventNoteInfo)(void* v1, ushort index, void* v2); | |||
typedef void (*Fn_RWDEFIdle)(); | |||
typedef char (*Fn_RWDEFIsCloseOK)(); | |||
typedef char (*Fn_RWDEFIsPanelAppLaunched)(); | |||
typedef int (*Fn_RWDEFLaunchPanelApp)(); | |||
typedef int (*Fn_RWDEFOpenDevice)(OpenInfo* info); | |||
typedef int (*Fn_RWDEFQuitPanelApp)(); | |||
typedef void (*Fn_RWDEFSetAudioInfo)(AudioInfo* info); | |||
// ----------------------------------------------------------------------------- | |||
struct RewireBridge { | |||
void* lib; | |||
Fn_RWDEFCloseDevice RWDEFCloseDevice; | |||
Fn_RWDEFDriveAudio RWDEFDriveAudio; | |||
Fn_RWDEFGetDeviceInfo RWDEFGetDeviceInfo; | |||
Fn_RWDEFGetDeviceNameAndVersion RWDEFGetDeviceNameAndVersion; | |||
Fn_RWDEFGetEventBusInfo RWDEFGetEventBusInfo; | |||
Fn_RWDEFGetEventChannelInfo RWDEFGetEventChannelInfo; | |||
Fn_RWDEFGetEventControllerInfo RWDEFGetEventControllerInfo; | |||
Fn_RWDEFGetEventInfo RWDEFGetEventInfo; | |||
Fn_RWDEFGetEventNoteInfo RWDEFGetEventNoteInfo; | |||
Fn_RWDEFIdle RWDEFIdle; | |||
Fn_RWDEFIsCloseOK RWDEFIsCloseOK; | |||
Fn_RWDEFIsPanelAppLaunched RWDEFIsPanelAppLaunched; | |||
Fn_RWDEFLaunchPanelApp RWDEFLaunchPanelApp; | |||
Fn_RWDEFOpenDevice RWDEFOpenDevice; | |||
Fn_RWDEFQuitPanelApp RWDEFQuitPanelApp; | |||
Fn_RWDEFSetAudioInfo RWDEFSetAudioInfo; | |||
RewireBridge(const char* const filename) | |||
: lib(nullptr), | |||
RWDEFCloseDevice(nullptr), | |||
RWDEFDriveAudio(nullptr), | |||
RWDEFGetDeviceInfo(nullptr), | |||
RWDEFGetDeviceNameAndVersion(nullptr), | |||
RWDEFGetEventBusInfo(nullptr), | |||
RWDEFGetEventChannelInfo(nullptr), | |||
RWDEFGetEventControllerInfo(nullptr), | |||
RWDEFGetEventInfo(nullptr), | |||
RWDEFGetEventNoteInfo(nullptr), | |||
RWDEFIdle(nullptr), | |||
RWDEFIsCloseOK(nullptr), | |||
RWDEFIsPanelAppLaunched(nullptr), | |||
RWDEFLaunchPanelApp(nullptr), | |||
RWDEFOpenDevice(nullptr), | |||
RWDEFQuitPanelApp(nullptr), | |||
RWDEFSetAudioInfo(nullptr) | |||
{ | |||
lib = lib_open(filename); | |||
if (lib == nullptr) | |||
{ | |||
fprintf(stderr, "Failed to load DLL, reason:\n%s\n", lib_error(filename)); | |||
return; | |||
} | |||
else | |||
{ | |||
fprintf(stdout, "loaded sucessfully!\n"); | |||
} | |||
#define JOIN(a, b) a ## b | |||
#define LIB_SYMBOL(NAME) NAME = (Fn_##NAME)lib_symbol(lib, #NAME); | |||
LIB_SYMBOL(RWDEFCloseDevice) | |||
LIB_SYMBOL(RWDEFDriveAudio) | |||
LIB_SYMBOL(RWDEFGetDeviceInfo) | |||
LIB_SYMBOL(RWDEFGetDeviceNameAndVersion) | |||
LIB_SYMBOL(RWDEFGetEventBusInfo) | |||
LIB_SYMBOL(RWDEFGetEventChannelInfo) | |||
LIB_SYMBOL(RWDEFGetEventControllerInfo) | |||
LIB_SYMBOL(RWDEFGetEventInfo) | |||
LIB_SYMBOL(RWDEFGetEventNoteInfo) | |||
LIB_SYMBOL(RWDEFIdle) | |||
LIB_SYMBOL(RWDEFIsCloseOK) | |||
LIB_SYMBOL(RWDEFIsPanelAppLaunched) | |||
LIB_SYMBOL(RWDEFLaunchPanelApp) | |||
LIB_SYMBOL(RWDEFOpenDevice) | |||
LIB_SYMBOL(RWDEFQuitPanelApp) | |||
LIB_SYMBOL(RWDEFSetAudioInfo) | |||
#undef JOIN | |||
#undef LIB_SYMBOL | |||
} | |||
~RewireBridge() | |||
{ | |||
if (lib != nullptr) | |||
{ | |||
lib_close(lib); | |||
lib = nullptr; | |||
} | |||
} | |||
}; | |||
// ----------------------------------------------------------------------- | |||
int main(/*int argc, char* argv[]*/) | |||
{ | |||
static const char* const filename = "C:\\Program Files\\Waves\\ReWire\\WavesReWireDevice.dll"; | |||
@@ -99,6 +99,8 @@ const char* PluginType2Str(const PluginType type) noexcept | |||
return "PLUGIN_VST"; | |||
case PLUGIN_AU: | |||
return "PLUGIN_AU"; | |||
case PLUGIN_REWIRE: | |||
return "PLUGIN_REWIRE"; | |||
case PLUGIN_FILE_CSD: | |||
return "PLUGIN_FILE_CSD"; | |||
case PLUGIN_FILE_GIG: | |||
@@ -400,6 +402,8 @@ const char* getPluginTypeAsString(const PluginType type) noexcept | |||
return "VST"; | |||
case PLUGIN_AU: | |||
return "AU"; | |||
case PLUGIN_REWIRE: | |||
return "ReWire"; | |||
case PLUGIN_FILE_CSD: | |||
return "CSD"; | |||
case PLUGIN_FILE_GIG: | |||
@@ -437,6 +441,8 @@ PluginType getPluginTypeFromString(const char* const ctype) | |||
return PLUGIN_VST; | |||
if (stype == "au") | |||
return PLUGIN_AU; | |||
if (stype == "rewire") | |||
return PLUGIN_REWIRE; | |||
if (stype == "csd") | |||
return PLUGIN_FILE_CSD; | |||
if (stype == "gig") | |||
@@ -62,7 +62,7 @@ void carla_shm_init(shm_t& shm) | |||
static inline | |||
shm_t carla_shm_create(const char* const name) | |||
{ | |||
CARLA_SAFE_ASSERT_RETURN(name != nullptr && name[0] != '\0', gNullShm); | |||
CARLA_SAFE_ASSERT_RETURN(name != nullptr && name[0] != '\0', gNullCarlaShm); | |||
shm_t ret; | |||
ret.shm = nullptr; // TODO | |||
@@ -74,7 +74,7 @@ shm_t carla_shm_create(const char* const name) | |||
static inline | |||
shm_t carla_shm_attach(const char* const name) | |||
{ | |||
CARLA_SAFE_ASSERT_RETURN(name != nullptr && name[0] != '\0', gNullShm); | |||
CARLA_SAFE_ASSERT_RETURN(name != nullptr && name[0] != '\0', gNullCarlaShm); | |||
shm_t ret; | |||
ret.shm = CreateFileA(name, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); | |||
@@ -86,7 +86,7 @@ shm_t carla_shm_attach(const char* const name) | |||
static inline | |||
shm_t carla_shm_attach_linux(const char* const name) | |||
{ | |||
CARLA_SAFE_ASSERT_RETURN(name != nullptr && name[0] != '\0', gNullShm); | |||
CARLA_SAFE_ASSERT_RETURN(name != nullptr && name[0] != '\0', gNullCarlaShm); | |||
char shmName[std::strlen(name)+10]; | |||
std::strcpy(shmName, "/dev/shm/"); | |||
@@ -445,6 +445,9 @@ void fillXmlStringFromSaveState(QString& content, const SaveState& saveState) | |||
info += QString(" <Binary>%1</Binary>\n").arg(xmlSafeString(saveState.binary, true)); | |||
info += QString(" <UniqueID>%1</UniqueID>\n").arg(saveState.uniqueID); | |||
break; | |||
case PLUGIN_REWIRE: | |||
info += QString(" <Label>%1</Label>\n").arg(xmlSafeString(saveState.label, true)); | |||
break; | |||
case PLUGIN_FILE_CSD: | |||
case PLUGIN_FILE_GIG: | |||
case PLUGIN_FILE_SF2: | |||