| @@ -41,4 +41,4 @@ BUILD_CXX_FLAGS += -DVESTIGE_HEADER | |||
| # Modify to enable/disable specific features | |||
| CARLA_PLUGIN_SUPPORT = true | |||
| CARLA_SAMPLERS_SUPPORT = true | |||
| CARLA_RTAUDIO_SUPPORT = false | |||
| CARLA_RTAUDIO_SUPPORT = true | |||
| @@ -4,94 +4,111 @@ | |||
| # Created by falkTX | |||
| # | |||
| CC ?= gcc | |||
| CXX ?= g++ | |||
| include ../Makefile.mk | |||
| # HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||
| HAVE_JACK = $(shell pkg-config --exists jack && echo true) | |||
| # HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true) | |||
| endif | |||
| BASE_FLAGS = -O2 -ffast-math -fomit-frame-pointer -fPIC -mtune=generic -msse -mfpmath=sse -Wall -I. -I../carla-includes -I../carla-jackbridge | |||
| ifeq ($(CARLA_SAMPLERS_SUPPORT),true) | |||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||
| endif | |||
| CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||
| ifeq ($(CARLA_RTAUDIO_SUPPORT),true) | |||
| HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||
| HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||
| endif | |||
| CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui) | |||
| CARLA_CXX_FLAGS += -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT -DNDEBUG | |||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||
| HAVE_ZYN_GUI_DEPS = $(shell pkg-config --exists fftw3 mxml ntk && echo true) | |||
| CARLA_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||
| CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header | |||
| # -------------------------------------------------------------- | |||
| CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS) | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui) | |||
| BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-engine -I../carla-jackbridge -I../carla-native -I../carla-plugin -I../carla-utils | |||
| BUILD_CXX_FLAGS += -fPIC -DCARLA_ENGINE_JACK | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags jack liblo QtCore QtGui) | |||
| ifeq ($(HAVE_ALSA),true) | |||
| WANT_RTAUDIO = true | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs alsa) | |||
| endif | |||
| LINK_FLAGS += -fPIC -shared -ldl -lm | |||
| LINK_FLAGS += $(shell pkg-config --libs jack liblo QtCore QtGui) | |||
| ifeq ($(HAVE_JACK),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack) -DCARLA_ENGINE_JACK | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs jack) | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||
| endif | |||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||
| WANT_RTAUDIO = true | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__ | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs libpulse-simple) | |||
| ifeq ($(HAVE_SUIL),true) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DWANT_SUIL | |||
| LINK_FLAGS += $(shell pkg-config --libs suil-0) | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH | |||
| LINK_FLAGS += $(shell pkg-config --libs fluidsynth) | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER | |||
| LINK_FLAGS += $(shell pkg-config --libs linuxsampler) | |||
| endif | |||
| ifeq ($(HAVE_ALSA),true) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ | |||
| LINK_FLAGS += $(shell pkg-config --libs alsa) | |||
| WANT_RTAUDIO = true | |||
| endif | |||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__ | |||
| LINK_FLAGS += $(shell pkg-config --libs libpulse-simple) | |||
| WANT_RTAUDIO = true | |||
| endif | |||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) -DWANT_ZYNADDSUBFX | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fftw3 mxml) | |||
| LINK_FLAGS += $(shell pkg-config --libs fftw3 mxml) | |||
| endif | |||
| ifeq ($(HAVE_SUIL),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DHAVE_SUIL | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs suil-0) | |||
| ifeq ($(HAVE_ZYN_GUI_DEPS),true) | |||
| LINK_FLAGS += $(shell pkg-config --libs ntk) | |||
| endif | |||
| # backend | |||
| OBJS = \ | |||
| carla_backend_standalone.o \ | |||
| carla_bridge.o \ | |||
| carla_engine.o \ | |||
| carla_engine_jack.o \ | |||
| carla_engine_rtaudio.o \ | |||
| carla_native.o \ | |||
| carla_osc.o \ | |||
| carla_shared.o \ | |||
| carla_threads.o \ | |||
| ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \ | |||
| ../carla-lilv/carla_lilv.a \ | |||
| ../carla-rtmempool/carla_rtmempool.a | |||
| carla_backend_standalone.o | |||
| # engine | |||
| OBJS += \ | |||
| plugins/bypass.o \ | |||
| plugins/midi-split.o | |||
| ifeq ($(WANT_RTAUDIO),true) | |||
| CARLA_CXX_FLAGS += -Irtaudio-4.0.11 -Irtmidi-2.0.1 -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D_FORTIFY_SOURCE=2 | |||
| OBJS += rtaudio-4.0.11/RtAudio.o | |||
| OBJS += rtmidi-2.0.1/RtMidi.o | |||
| ../carla-engine/carla_engine.o \ | |||
| ../carla-engine/carla_engine_jack.o \ | |||
| ../carla-engine/carla_engine_rtaudio.o \ | |||
| ../carla-engine/carla_osc.o \ | |||
| ../carla-engine/carla_shared.o \ | |||
| ../carla-engine/carla_threads.o | |||
| # plugins | |||
| OBJS += \ | |||
| ../carla-plugin/carla_bridge.o \ | |||
| ../carla-plugin/native.o \ | |||
| ../carla-plugin/ladspa.o \ | |||
| ../carla-plugin/dssi.o \ | |||
| ../carla-plugin/lv2.o \ | |||
| ../carla-plugin/vst.o \ | |||
| ../carla-plugin/fluidsynth.o \ | |||
| ../carla-plugin/linuxsampler.o | |||
| # native | |||
| OBJS += ../carla-native/carla_native.a | |||
| # others | |||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||
| OBJS += ../carla-lilv/carla_lilv.a | |||
| OBJS += ../carla-rtmempool/carla_rtmempool.a | |||
| endif | |||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||
| OBJS += plugins/zynaddsubfx.o plugins/zynaddsubfx-src.o | |||
| ifeq ($(WANT_RTAUDIO),true) | |||
| BUILD_CXX_FLAGS += -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D_FORTIFY_SOURCE=2 | |||
| BUILD_CXX_FLAGS += -I../carla-engine/rtaudio-4.0.11 -I../carla-engine/rtmidi-2.0.1 | |||
| OBJS += ../carla-engine/rtaudio-4.0.11/RtAudio.o | |||
| OBJS += ../carla-engine/rtmidi-2.0.1/RtMidi.o | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| @@ -102,22 +119,22 @@ doc: carla_backend.doxygen | |||
| doxygen $< | |||
| carla_backend.so: $(OBJS) | |||
| $(CXX) $^ $(CARLA_LD_FLAGS) -o $@ && strip $@ | |||
| $(CXX) $^ $(LINK_FLAGS) -o $@ && strip $@ | |||
| carla_backend-dssi.so: $(OBJS) carla_backend_plugin.cpp | |||
| $(CXX) $^ -DDISTRHO_PLUGIN_TARGET_DSSI -Idistrho-plugin-toolkit $(CARLA_CXX_FLAGS) $(CARLA_LD_FLAGS) -o $@ && strip $@ | |||
| # carla_backend-dssi.so: $(OBJS) carla_backend_plugin.cpp | |||
| # $(CXX) $^ -DDISTRHO_PLUGIN_TARGET_DSSI -Idistrho-plugin-toolkit $(CARLA_CXX_FLAGS) $(CARLA_LD_FLAGS) -o $@ && strip $@ | |||
| # -------------------------------------------------------------- | |||
| .c.o: | |||
| $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||
| .cpp.o: | |||
| $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@ | |||
| $(CXX) -c $< $(BUILD_CXX_FLAGS) -o $@ | |||
| ../carla-lilv/carla_lilv.a: | |||
| $(MAKE) -C ../carla-lilv | |||
| ../carla-native/carla_native.a: | |||
| $(MAKE) -C ../carla-native | |||
| ../carla-rtmempool/carla_rtmempool.a: | |||
| $(MAKE) -C ../carla-rtmempool | |||
| @@ -1,125 +0,0 @@ | |||
| #!/usr/bin/make -f | |||
| # Makefile for carla-backend # | |||
| # ------------------------------------- # | |||
| # Created by falkTX | |||
| # | |||
| CC ?= gcc | |||
| CXX ?= g++ | |||
| # HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||
| HAVE_JACK = $(shell pkg-config --exists jack && echo true) | |||
| # HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||
| HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true) | |||
| BASE_FLAGS = -O0 -g -fPIC -Wall -I. -I../carla-includes -I../carla-jackbridge | |||
| CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||
| CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui) | |||
| CARLA_CXX_FLAGS += -DDEBUG | |||
| CARLA_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||
| CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header | |||
| CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS) | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui) | |||
| ifeq ($(HAVE_ALSA),true) | |||
| WANT_RTAUDIO = true | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs alsa) | |||
| endif | |||
| ifeq ($(HAVE_JACK),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack) -DCARLA_ENGINE_JACK | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs jack) | |||
| endif | |||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||
| WANT_RTAUDIO = true | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__ | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs libpulse-simple) | |||
| endif | |||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth) | |||
| endif | |||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler) | |||
| endif | |||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) -DWANT_ZYNADDSUBFX | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fftw3 mxml) | |||
| endif | |||
| ifeq ($(HAVE_SUIL),true) | |||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DHAVE_SUIL | |||
| CARLA_LD_FLAGS += $(shell pkg-config --libs suil-0) | |||
| endif | |||
| OBJS = \ | |||
| carla_backend_standalone.o \ | |||
| carla_bridge.o \ | |||
| carla_engine.o \ | |||
| carla_engine_jack.o \ | |||
| carla_engine_rtaudio.o \ | |||
| carla_native.o \ | |||
| carla_osc.o \ | |||
| carla_shared.o \ | |||
| carla_threads.o \ | |||
| ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \ | |||
| ../carla-lilv/carla_lilv.a \ | |||
| ../carla-rtmempool/carla_rtmempool.a | |||
| OBJS += \ | |||
| plugins/bypass.o \ | |||
| plugins/midi-split.o | |||
| ifeq ($(WANT_RTAUDIO),true) | |||
| CARLA_CXX_FLAGS += -Irtaudio-4.0.11 -Irtmidi-2.0.1 -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__ | |||
| OBJS += rtaudio-4.0.11/RtAudio.o | |||
| OBJS += rtmidi-2.0.1/RtMidi.o | |||
| endif | |||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||
| OBJS += plugins/zynaddsubfx.o plugins/zynaddsubfx-src.o | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| all: carla_backend.so | |||
| doc: carla_backend.doxygen | |||
| doxygen $< | |||
| carla_backend.so: $(OBJS) | |||
| $(CXX) $^ $(CARLA_LD_FLAGS) -o $@ | |||
| carla_backend-dssi.so: $(OBJS) carla_backend_plugin.cpp | |||
| $(CXX) $^ -DDISTRHO_PLUGIN_TARGET_DSSI -Idistrho-plugin-toolkit $(CARLA_CXX_FLAGS) $(CARLA_LD_FLAGS) -o $@ | |||
| # -------------------------------------------------------------- | |||
| .c.o: | |||
| $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||
| .cpp.o: | |||
| $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@ | |||
| ../carla-lilv/carla_lilv.a: | |||
| $(MAKE) -C ../carla-lilv | |||
| ../carla-rtmempool/carla_rtmempool.a: | |||
| $(MAKE) -C ../carla-rtmempool | |||
| clean: | |||
| rm -f $(OBJS) *.a *.so *.dll | |||
| @@ -0,0 +1,99 @@ | |||
| # QtCreator project file | |||
| QT = core gui | |||
| CONFIG = debug | |||
| CONFIG += link_pkgconfig qt warn_on # plugin shared | |||
| DEFINES = DEBUG | |||
| DEFINES += QTCREATOR_TEST | |||
| DEFINES += CARLA_ENGINE_JACK | |||
| DEFINES += CARLA_ENGINE_RTAUDIO HAVE_GETTIMEOFDAY __LINUX_ALSA__ __LINUX_ALSASEQ__ __LINUX_PULSE__ | |||
| DEFINES += __RTAUDIO_DEBUG__ __RTMIDI_DEBUG__ | |||
| DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST | |||
| DEFINES += WANT_SUIL | |||
| DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER | |||
| DEFINES += WANT_ZYNADDSUBFX WANT_ZYNADDSUBFX_GUI | |||
| PKGCONFIG = jack liblo | |||
| PKGCONFIG += alsa libpulse-simple | |||
| PKGCONFIG += fluidsynth linuxsampler | |||
| PKGCONFIG += fftw3 mxml | |||
| PKGCONFIG += suil-0 | |||
| TARGET = carla_backend | |||
| TEMPLATE = app | |||
| VERSION = 0.5.0 | |||
| # backend | |||
| SOURCES = \ | |||
| # carla_backend_plugin.cpp \ | |||
| carla_backend_standalone.cpp | |||
| # engine | |||
| SOURCES += \ | |||
| ../carla-engine/carla_engine.cpp \ | |||
| ../carla-engine/carla_engine_jack.cpp \ | |||
| ../carla-engine/carla_engine_rtaudio.cpp \ | |||
| ../carla-engine/carla_osc.cpp \ | |||
| ../carla-engine/carla_shared.cpp \ | |||
| ../carla-engine/carla_threads.cpp | |||
| # plugins | |||
| SOURCES += \ | |||
| ../carla-plugin/carla_bridge.cpp \ | |||
| ../carla-plugin/native.cpp \ | |||
| ../carla-plugin/ladspa.cpp \ | |||
| ../carla-plugin/dssi.cpp \ | |||
| ../carla-plugin/lv2.cpp \ | |||
| ../carla-plugin/vst.cpp \ | |||
| ../carla-plugin/fluidsynth.cpp \ | |||
| ../carla-plugin/linuxsampler.cpp | |||
| # HEADERS = \ | |||
| # ../carla_backend.hpp \ | |||
| # ../carla_backend_standalone.hpp \ | |||
| # ../carla_engine.hpp \ | |||
| # ../carla_osc.hpp \ | |||
| # ../carla_plugin.hpp \ | |||
| # ../carla_shared.hpp \ | |||
| # ../carla_threads.hpp \ | |||
| # ../plugins/carla_native.h \ | |||
| # ../plugins/carla_nativemm.h \ | |||
| # ../../carla-includes/carla_defines.hpp \ | |||
| # ../../carla-includes/carla_midi.hpp \ | |||
| # ../../carla-includes/ladspa_rdf.hpp \ | |||
| # ../../carla-includes/lv2_rdf.hpp \ | |||
| # ../../carla-utils/carla_utils.hpp \ | |||
| # ../../carla-utils/carla_lib_utils.hpp \ | |||
| # ../../carla-utils/carla_osc_utils.hpp \ | |||
| # ../../carla-utils/carla_ladspa_utils.hpp \ | |||
| # ../../carla-utils/carla_lv2_utils.hpp \ | |||
| # ../../carla-utils/carla_vst_utils.hpp | |||
| INCLUDEPATH = . \ | |||
| ../carla-includes \ | |||
| ../carla-engine \ | |||
| ../carla-jackbridge \ | |||
| ../carla-native \ | |||
| ../carla-plugin \ | |||
| ../carla-utils | |||
| LIBS = \ | |||
| ../carla-lilv/carla_lilv.a \ | |||
| ../carla-native/carla_native.a \ | |||
| ../carla-rtmempool/carla_rtmempool.a | |||
| INCLUDEPATH += ../carla-engine/rtaudio-4.0.11 | |||
| INCLUDEPATH += ../carla-engine/rtmidi-2.0.1 | |||
| SOURCES += ../carla-engine/rtaudio-4.0.11/RtAudio.cpp | |||
| SOURCES += ../carla-engine/rtmidi-2.0.1/RtMidi.cpp | |||
| QMAKE_CFLAGS *= -fPIC -std=c99 | |||
| QMAKE_CXXFLAGS *= -fPIC -std=c++0x | |||
| unix { | |||
| LIBS += -ldl -lm | |||
| } | |||
| @@ -17,7 +17,7 @@ | |||
| #include "carla_backend_standalone.hpp" | |||
| #include "carla_plugin.hpp" | |||
| #include "plugins/carla_native.h" | |||
| #include "carla_native.h" | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -1,92 +0,0 @@ | |||
| # QtCreator project file | |||
| QT = core gui | |||
| CONFIG = debug link_pkgconfig qt warn_on plugin shared | |||
| PKGCONFIG = liblo | |||
| PKGCONFIG += jack | |||
| PKGCONFIG += alsa libpulse-simple | |||
| PKGCONFIG += fluidsynth linuxsampler | |||
| PKGCONFIG += fftw3 mxml | |||
| PKGCONFIG += suil-0 | |||
| TARGET = carla_backend | |||
| TEMPLATE = app | |||
| VERSION = 0.5.0 | |||
| SOURCES = \ | |||
| ../carla_backend_plugin.cpp \ | |||
| ../carla_backend_standalone.cpp \ | |||
| ../carla_bridge.cpp \ | |||
| ../carla_engine.cpp \ | |||
| ../carla_engine_jack.cpp \ | |||
| ../carla_engine_rtaudio.cpp \ | |||
| ../carla_native.cpp \ | |||
| ../carla_osc.cpp \ | |||
| ../carla_shared.cpp \ | |||
| ../carla_threads.cpp \ | |||
| ../ladspa.cpp \ | |||
| ../dssi.cpp \ | |||
| ../lv2.cpp \ | |||
| ../vst.cpp \ | |||
| ../fluidsynth.cpp \ | |||
| ../linuxsampler.cpp | |||
| SOURCES += \ | |||
| ../plugins/bypass.c \ | |||
| ../plugins/midi-split.cpp \ | |||
| ../plugins/zynaddsubfx.cpp \ | |||
| ../plugins/zynaddsubfx-src.cpp | |||
| HEADERS = \ | |||
| ../carla_backend.hpp \ | |||
| ../carla_backend_standalone.hpp \ | |||
| ../carla_engine.hpp \ | |||
| ../carla_osc.hpp \ | |||
| ../carla_plugin.hpp \ | |||
| ../carla_shared.hpp \ | |||
| ../carla_threads.hpp \ | |||
| ../plugins/carla_native.h \ | |||
| ../plugins/carla_nativemm.h \ | |||
| ../../carla-includes/carla_defines.hpp \ | |||
| ../../carla-includes/carla_midi.hpp \ | |||
| ../../carla-includes/ladspa_rdf.hpp \ | |||
| ../../carla-includes/lv2_rdf.hpp \ | |||
| ../../carla-utils/carla_utils.hpp \ | |||
| ../../carla-utils/carla_lib_utils.hpp \ | |||
| ../../carla-utils/carla_osc_utils.hpp \ | |||
| ../../carla-utils/carla_ladspa_utils.hpp \ | |||
| ../../carla-utils/carla_lv2_utils.hpp \ | |||
| ../../carla-utils/carla_vst_utils.hpp | |||
| INCLUDEPATH = .. \ | |||
| ../../carla-jackbridge \ | |||
| ../../carla-includes \ | |||
| ../../carla-utils \ | |||
| ../distrho-plugin-toolkit | |||
| LIBS = -ldl \ | |||
| ../../carla-lilv/carla_lilv.a \ | |||
| ../../carla-rtmempool/carla_rtmempool.a | |||
| DEFINES = QTCREATOR_TEST | |||
| DEFINES += DEBUG NDEBUG | |||
| DEFINES += CARLA_ENGINE_JACK | |||
| DEFINES += CARLA_ENGINE_RTAUDIO HAVE_GETTIMEOFDAY __LINUX_ALSA__ __LINUX_ALSASEQ__ __LINUX_PULSE__ __RTAUDIO_DEBUG__ __RTMIDI_DEBUG__ | |||
| DEFINES += CARLA_ENGINE_LV2 | |||
| DEFINES += CARLA_ENGINE_VST | |||
| DEFINES += DISTRHO_PLUGIN_TARGET_DSSI | |||
| DEFINES += HAVE_SUIL | |||
| DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST | |||
| DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER | |||
| DEFINES += WANT_ZYNADDSUBFX | |||
| #LIBS += -L../../carla-jackbridge -lcarla-jackbridge-native | |||
| INCLUDEPATH += ../rtaudio-4.0.11 | |||
| INCLUDEPATH += ../rtmidi-2.0.1 | |||
| SOURCES += ../rtaudio-4.0.11/RtAudio.cpp | |||
| SOURCES += ../rtmidi-2.0.1/RtMidi.cpp | |||
| QMAKE_CFLAGS *= -fPIC -std=c99 | |||
| QMAKE_CXXFLAGS *= -fPIC -std=c++0x | |||
| @@ -1301,7 +1301,7 @@ const CarlaEngineControlEvent* CarlaEngineControlPort::getEvent(uint32_t index) | |||
| #ifdef CARLA_ENGINE_JACK | |||
| if (handle.jackPort) | |||
| { | |||
| static jackbridge_midi_event_t jackEvent; | |||
| static jack_midi_event_t jackEvent; | |||
| static CarlaEngineControlEvent carlaEvent; | |||
| if (jackbridge_midi_event_get(&jackEvent, buffer, index) != 0) | |||
| @@ -1520,7 +1520,7 @@ const CarlaEngineMidiEvent* CarlaEngineMidiPort::getEvent(uint32_t index) | |||
| #ifdef CARLA_ENGINE_JACK | |||
| if (handle.jackPort) | |||
| { | |||
| static jackbridge_midi_event_t jackEvent; | |||
| static jack_midi_event_t jackEvent; | |||
| static CarlaEngineMidiEvent carlaEvent; | |||
| if (jackbridge_midi_event_get(&jackEvent, buffer, index) == 0 && jackEvent.size <= 4) | |||
| @@ -316,7 +316,7 @@ protected: | |||
| // initialize control input | |||
| memset(rackControlEventsIn, 0, sizeof(CarlaEngineControlEvent)*MAX_ENGINE_CONTROL_EVENTS); | |||
| { | |||
| jackbridge_midi_event_t jackEvent; | |||
| jack_midi_event_t jackEvent; | |||
| const uint32_t jackEventCount = jackbridge_midi_get_event_count(controlIn); | |||
| uint32_t carlaEventIndex = 0; | |||
| @@ -373,7 +373,7 @@ protected: | |||
| memset(rackMidiEventsIn, 0, sizeof(CarlaEngineMidiEvent)*MAX_ENGINE_MIDI_EVENTS); | |||
| { | |||
| uint32_t i = 0, j = 0; | |||
| jackbridge_midi_event_t jackEvent; | |||
| jack_midi_event_t jackEvent; | |||
| while (jackbridge_midi_event_get(&jackEvent, midiIn, j++) == 0) | |||
| { | |||
| @@ -49,6 +49,9 @@ | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| class CarlaEngine; | |||
| class CarlaPlugin; | |||
| class CarlaOsc | |||
| { | |||
| public: | |||
| @@ -19,7 +19,7 @@ | |||
| #include "carla_engine.hpp" | |||
| #ifndef BUILD_BRIDGE | |||
| # include "plugins/carla_native.h" | |||
| # include "carla_native.h" | |||
| #endif | |||
| #include <QtCore/QString> | |||
| @@ -23,6 +23,11 @@ | |||
| #include <QtCore/QMutex> | |||
| #include <QtCore/QThread> | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| class CarlaEngine; | |||
| class CarlaPlugin; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // CarlaCheckThread | |||
| @@ -6,13 +6,19 @@ | |||
| include ../Makefile.mk | |||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||
| HAVE_ZYN_GUI_DEPS = $(shell pkg-config --exists fftw3 mxml ntk && echo true) | |||
| BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-utils -fPIC | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore) | |||
| BUILD_C_FLAGS += -I. -fPIC | |||
| BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-utils -fPIC | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore) | |||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) | |||
| endif | |||
| ifeq ($(HAVE_ZYN_GUI_DEPS),true) | |||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags ntk) -DWANT_ZYNADDSUBFX_GUI | |||
| endif | |||
| OBJS = \ | |||
| @@ -15,7 +15,7 @@ | |||
| * For a full copy of the GNU General Public License see the COPYING file | |||
| */ | |||
| #include "carla_midi.hpp" | |||
| #include "carla_midi.h" | |||
| #include "carla_native.hpp" | |||
| #include "zynaddsubfx/Misc/Master.h" | |||
| @@ -20,7 +20,7 @@ | |||
| #include "carla_engine.hpp" | |||
| #include "carla_shared.hpp" | |||
| #include "carla_midi.hpp" | |||
| #include "carla_midi.h" | |||
| #include "carla_lib_utils.hpp" | |||
| @@ -16,7 +16,7 @@ | |||
| */ | |||
| #include "carla_plugin.hpp" | |||
| #include "plugins/carla_native.h" | |||
| #include "carla_native.h" | |||
| // Internal C plugins | |||
| extern "C" { | |||
| @@ -26,7 +26,7 @@ extern void carla_register_native_plugin_bypass(); | |||
| // Internal C++ plugins | |||
| extern void carla_register_native_plugin_midiSplit(); | |||
| #ifdef WANT_ZYNADDSUBFX | |||
| extern void carla_register_native_plugin_zynAddSubFx(); | |||
| extern void carla_register_native_plugin_zynaddsubfx(); | |||
| #endif | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| @@ -52,44 +52,23 @@ public: | |||
| ~NativePluginScopedInitiliazer() | |||
| { | |||
| for (size_t i=0; i < descriptors.size(); i++) | |||
| { | |||
| const PluginDescriptor* const desc = descriptors[i]; | |||
| if (desc->_fini) | |||
| desc->_fini((struct _PluginDescriptor*)desc); | |||
| } | |||
| descriptors.clear(); | |||
| } | |||
| void maybeFirstInit() | |||
| { | |||
| if (firstInit) | |||
| { | |||
| firstInit = false; | |||
| carla_register_native_plugin_bypass(); | |||
| carla_register_native_plugin_midiSplit(); | |||
| if (! firstInit) | |||
| return; | |||
| firstInit = false; | |||
| carla_register_native_plugin_bypass(); | |||
| carla_register_native_plugin_midiSplit(); | |||
| #ifdef WANT_ZYNADDSUBFX | |||
| carla_register_native_plugin_zynAddSubFx(); | |||
| carla_register_native_plugin_zynaddsubfx(); | |||
| #endif | |||
| } | |||
| } | |||
| void initializeIfNeeded(const PluginDescriptor* const desc) | |||
| { | |||
| if (descriptors.empty() || std::find(descriptors.begin(), descriptors.end(), desc) == descriptors.end()) | |||
| { | |||
| if (desc->_init) | |||
| desc->_init((struct _PluginDescriptor*)desc); | |||
| descriptors.push_back(desc); | |||
| } | |||
| } | |||
| private: | |||
| bool firstInit; | |||
| std::vector<const PluginDescriptor*> descriptors; | |||
| }; | |||
| static NativePluginScopedInitiliazer scopedInitliazer; | |||
| @@ -176,12 +155,12 @@ public: | |||
| int32_t rindex = param.data[parameterId].rindex; | |||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | |||
| if (descriptor && descriptor->get_parameter_count && rindex < (int32_t)descriptor->get_parameter_count(handle)) | |||
| { | |||
| const PluginPort* const port = &descriptor->ports[rindex]; | |||
| const Parameter* const param = descriptor->get_parameter_info(handle, rindex); | |||
| if (port) | |||
| return port->scalePointCount; | |||
| if (param) | |||
| return param->scalePointCount; | |||
| } | |||
| return 0; | |||
| @@ -208,6 +187,7 @@ public: | |||
| CARLA_ASSERT(parameterId < param.count); | |||
| CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); | |||
| #if 0 | |||
| const int32_t rindex = param.data[parameterId].rindex; | |||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | |||
| @@ -222,6 +202,7 @@ public: | |||
| return scalePoint->value; | |||
| } | |||
| } | |||
| #endif | |||
| return 0.0; | |||
| } | |||
| @@ -271,6 +252,7 @@ public: | |||
| CARLA_ASSERT(descriptor); | |||
| CARLA_ASSERT(parameterId < param.count); | |||
| #if 0 | |||
| const int32_t rindex = param.data[parameterId].rindex; | |||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | |||
| @@ -283,6 +265,7 @@ public: | |||
| return; | |||
| } | |||
| } | |||
| #endif | |||
| CarlaPlugin::getParameterName(parameterId, strBuf); | |||
| } | |||
| @@ -315,6 +298,7 @@ public: | |||
| CARLA_ASSERT(handle); | |||
| CARLA_ASSERT(parameterId < param.count); | |||
| #if 0 | |||
| if (descriptor && handle) | |||
| { | |||
| const int32_t rindex = param.data[parameterId].rindex; | |||
| @@ -327,6 +311,7 @@ public: | |||
| return; | |||
| } | |||
| } | |||
| #endif | |||
| CarlaPlugin::getParameterUnit(parameterId, strBuf); | |||
| } | |||
| @@ -337,6 +322,7 @@ public: | |||
| CARLA_ASSERT(parameterId < param.count); | |||
| CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); | |||
| #if 0 | |||
| int32_t rindex = param.data[parameterId].rindex; | |||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | |||
| @@ -354,6 +340,7 @@ public: | |||
| } | |||
| } | |||
| } | |||
| #endif | |||
| CarlaPlugin::getParameterScalePointLabel(parameterId, scalePointId, strBuf); | |||
| } | |||
| @@ -474,6 +461,7 @@ public: | |||
| // Delete old data | |||
| deleteBuffers(); | |||
| #if 0 | |||
| uint32_t aIns, aOuts, mIns, mOuts, params, j; | |||
| aIns = aOuts = mIns = mOuts = params = 0; | |||
| @@ -775,6 +763,7 @@ public: | |||
| m_hints |= getPluginHintsFromNative(descriptor->hints); | |||
| reloadPrograms(true); | |||
| #endif | |||
| x_client->activate(); | |||
| @@ -801,6 +790,7 @@ public: | |||
| midiprog.count = 0; | |||
| midiprog.data = nullptr; | |||
| #if 0 | |||
| // Query new programs | |||
| if (descriptor->get_midi_program && descriptor->set_midi_program) | |||
| { | |||
| @@ -874,6 +864,7 @@ public: | |||
| if (programChanged) | |||
| setMidiProgram(midiprog.current, true, true, true, true); | |||
| } | |||
| #endif | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| @@ -1124,7 +1115,6 @@ public: | |||
| midiEvent->data[0] = uint8_t(extMidiNotes[i].velo ? MIDI_STATUS_NOTE_ON : MIDI_STATUS_NOTE_OFF) + extMidiNotes[i].channel; | |||
| midiEvent->data[1] = extMidiNotes[i].note; | |||
| midiEvent->data[2] = extMidiNotes[i].velo; | |||
| midiEvent->size = 3; | |||
| extMidiNotes[i].channel = -1; // mark as invalid | |||
| midiEventCount += 1; | |||
| @@ -1169,9 +1159,8 @@ public: | |||
| ::MidiEvent* const midiEvent = &midiEvents[midiEventCount]; | |||
| memset(midiEvent, 0, sizeof(::MidiEvent)); | |||
| midiEvent->portOffset = i; | |||
| midiEvent->port = i; | |||
| midiEvent->time = minEvent->time; | |||
| midiEvent->size = minEvent->size; | |||
| if (MIDI_IS_STATUS_NOTE_OFF(status)) | |||
| { | |||
| @@ -1245,12 +1234,10 @@ public: | |||
| memset(&midiEvents[k], 0, sizeof(::MidiEvent)); | |||
| midiEvents[k].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; | |||
| midiEvents[k].data[1] = MIDI_CONTROL_ALL_SOUND_OFF; | |||
| midiEvents[k].size = 2; | |||
| memset(&midiEvents[k*2], 0, sizeof(::MidiEvent)); | |||
| midiEvents[k*2].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; | |||
| midiEvents[k*2].data[1] = MIDI_CONTROL_ALL_NOTES_OFF; | |||
| midiEvents[k*2].size = 2; | |||
| } | |||
| midiEventCount = MAX_MIDI_CHANNELS*2; | |||
| @@ -1390,10 +1377,10 @@ public: | |||
| if (MIDI_IS_STATUS_NOTE_ON(data[0]) && data[2] == 0) | |||
| data[0] -= 0x10; | |||
| const uint32_t portOffset = midiEvents[i].portOffset; | |||
| const uint32_t port = midiEvents[i].port; | |||
| if (portOffset < mOut.count) | |||
| mOut.ports[portOffset]->writeEvent(midiEvents[i].time, data, 3); | |||
| if (port < mOut.count) | |||
| mOut.ports[port]->writeEvent(midiEvents[i].time, data, 3); | |||
| } | |||
| } // End of MIDI Output | |||
| @@ -1628,8 +1615,6 @@ public: | |||
| return false; | |||
| } | |||
| scopedInitliazer.initializeIfNeeded(descriptor); | |||
| // --------------------------------------------------------------- | |||
| // initialize plugin | |||