Browse Source

Add ReWirePlugin class; More bridges work

tags/1.9.4
falkTX 11 years ago
parent
commit
1a0db2ec2f
17 changed files with 1352 additions and 348 deletions
  1. +10
    -4
      source/backend/CarlaBackend.h
  2. +1
    -0
      source/backend/CarlaPlugin.hpp
  3. +1
    -1
      source/backend/Makefile.mk
  4. +4
    -0
      source/backend/engine/CarlaEngine.cpp
  5. +6
    -2
      source/backend/plugin/CarlaPluginUi.cpp
  6. +4
    -0
      source/backend/plugin/Makefile
  7. +1084
    -0
      source/backend/plugin/ReWirePlugin.cpp
  8. +4
    -0
      source/backend/standalone/CarlaStandalone.cpp
  9. +191
    -152
      source/bridges/Makefile
  10. +8
    -4
      source/carla_backend.py
  11. +2
    -0
      source/carla_widgets.py
  12. +6
    -0
      source/modules/Makefile
  13. +19
    -3
      source/modules/jackbridge/Makefile
  14. +0
    -179
      source/tests/Rewire.cpp
  15. +6
    -0
      source/utils/CarlaBackendUtils.hpp
  16. +3
    -3
      source/utils/CarlaShmUtils.hpp
  17. +3
    -0
      source/utils/CarlaStateUtils.cpp

+ 10
- 4
source/backend/CarlaBackend.h View File

@@ -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;



+ 1
- 0
source/backend/CarlaPlugin.hpp View File

@@ -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);


+ 1
- 1
source/backend/Makefile.mk View File

@@ -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


+ 4
- 0
source/backend/engine/CarlaEngine.cpp View File

@@ -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;


+ 6
- 2
source/backend/plugin/CarlaPluginUi.cpp View File

@@ -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



+ 4
- 0
source/backend/plugin/Makefile View File

@@ -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 $@



+ 1084
- 0
source/backend/plugin/ReWirePlugin.cpp
File diff suppressed because it is too large
View File


+ 4
- 0
source/backend/standalone/CarlaStandalone.cpp View File

@@ -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;


+ 191
- 152
source/bridges/Makefile View File

@@ -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_$*


+ 8
- 4
source/carla_backend.py View File

@@ -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


+ 2
- 0
source/carla_widgets.py View File

@@ -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:


+ 6
- 0
source/modules/Makefile View File

@@ -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



+ 19
- 3
source/modules/jackbridge/Makefile View File

@@ -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:


+ 0
- 179
source/tests/Rewire.cpp View File

@@ -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";


+ 6
- 0
source/utils/CarlaBackendUtils.hpp View File

@@ -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")


+ 3
- 3
source/utils/CarlaShmUtils.hpp View File

@@ -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/");


+ 3
- 0
source/utils/CarlaStateUtils.cpp View File

@@ -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:


Loading…
Cancel
Save