Browse Source

More of the same

tags/v0.9.0
falkTX 13 years ago
parent
commit
74891de1e9
15 changed files with 238 additions and 340 deletions
  1. +1
    -1
      c++/Makefile.mk
  2. +83
    -66
      c++/carla-backend/Makefile
  3. +0
    -125
      c++/carla-backend/Makefile.dbg
  4. +99
    -0
      c++/carla-backend/carla-backend.pro
  5. +1
    -1
      c++/carla-backend/carla_backend_standalone.cpp
  6. +0
    -92
      c++/carla-backend/qtcreator/carla-backend.pro
  7. +2
    -2
      c++/carla-engine/carla_engine.cpp
  8. +2
    -2
      c++/carla-engine/carla_engine_jack.cpp
  9. +3
    -0
      c++/carla-engine/carla_osc.hpp
  10. +1
    -1
      c++/carla-engine/carla_shared.cpp
  11. +5
    -0
      c++/carla-engine/carla_threads.hpp
  12. +10
    -4
      c++/carla-native/Makefile
  13. +1
    -1
      c++/carla-native/zynaddsubfx.cpp
  14. +1
    -1
      c++/carla-plugin/carla_plugin.hpp
  15. +29
    -44
      c++/carla-plugin/native.cpp

+ 1
- 1
c++/Makefile.mk View File

@@ -41,4 +41,4 @@ BUILD_CXX_FLAGS += -DVESTIGE_HEADER
# Modify to enable/disable specific features # Modify to enable/disable specific features
CARLA_PLUGIN_SUPPORT = true CARLA_PLUGIN_SUPPORT = true
CARLA_SAMPLERS_SUPPORT = true CARLA_SAMPLERS_SUPPORT = true
CARLA_RTAUDIO_SUPPORT = false
CARLA_RTAUDIO_SUPPORT = true

+ 83
- 66
c++/carla-backend/Makefile View File

@@ -4,94 +4,111 @@
# Created by falkTX # 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) 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 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 endif


ifeq ($(HAVE_FLUIDSYNTH),true) 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 endif


ifeq ($(HAVE_LINUXSAMPLER),true) 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 endif


ifeq ($(HAVE_ZYN_DEPS),true) 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 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 endif


# backend
OBJS = \ 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 += \ 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 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 endif


# -------------------------------------------------------------- # --------------------------------------------------------------
@@ -102,22 +119,22 @@ doc: carla_backend.doxygen
doxygen $< doxygen $<


carla_backend.so: $(OBJS) 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: .cpp.o:
$(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@
$(CXX) -c $< $(BUILD_CXX_FLAGS) -o $@


../carla-lilv/carla_lilv.a: ../carla-lilv/carla_lilv.a:
$(MAKE) -C ../carla-lilv $(MAKE) -C ../carla-lilv


../carla-native/carla_native.a:
$(MAKE) -C ../carla-native

../carla-rtmempool/carla_rtmempool.a: ../carla-rtmempool/carla_rtmempool.a:
$(MAKE) -C ../carla-rtmempool $(MAKE) -C ../carla-rtmempool




+ 0
- 125
c++/carla-backend/Makefile.dbg View File

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

+ 99
- 0
c++/carla-backend/carla-backend.pro View File

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

+ 1
- 1
c++/carla-backend/carla_backend_standalone.cpp View File

@@ -17,7 +17,7 @@


#include "carla_backend_standalone.hpp" #include "carla_backend_standalone.hpp"
#include "carla_plugin.hpp" #include "carla_plugin.hpp"
#include "plugins/carla_native.h"
#include "carla_native.h"


// ------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------




+ 0
- 92
c++/carla-backend/qtcreator/carla-backend.pro View File

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

+ 2
- 2
c++/carla-engine/carla_engine.cpp View File

@@ -1301,7 +1301,7 @@ const CarlaEngineControlEvent* CarlaEngineControlPort::getEvent(uint32_t index)
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
if (handle.jackPort) if (handle.jackPort)
{ {
static jackbridge_midi_event_t jackEvent;
static jack_midi_event_t jackEvent;
static CarlaEngineControlEvent carlaEvent; static CarlaEngineControlEvent carlaEvent;


if (jackbridge_midi_event_get(&jackEvent, buffer, index) != 0) if (jackbridge_midi_event_get(&jackEvent, buffer, index) != 0)
@@ -1520,7 +1520,7 @@ const CarlaEngineMidiEvent* CarlaEngineMidiPort::getEvent(uint32_t index)
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
if (handle.jackPort) if (handle.jackPort)
{ {
static jackbridge_midi_event_t jackEvent;
static jack_midi_event_t jackEvent;
static CarlaEngineMidiEvent carlaEvent; static CarlaEngineMidiEvent carlaEvent;


if (jackbridge_midi_event_get(&jackEvent, buffer, index) == 0 && jackEvent.size <= 4) if (jackbridge_midi_event_get(&jackEvent, buffer, index) == 0 && jackEvent.size <= 4)


+ 2
- 2
c++/carla-engine/carla_engine_jack.cpp View File

@@ -316,7 +316,7 @@ protected:
// initialize control input // initialize control input
memset(rackControlEventsIn, 0, sizeof(CarlaEngineControlEvent)*MAX_ENGINE_CONTROL_EVENTS); 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); const uint32_t jackEventCount = jackbridge_midi_get_event_count(controlIn);


uint32_t carlaEventIndex = 0; uint32_t carlaEventIndex = 0;
@@ -373,7 +373,7 @@ protected:
memset(rackMidiEventsIn, 0, sizeof(CarlaEngineMidiEvent)*MAX_ENGINE_MIDI_EVENTS); memset(rackMidiEventsIn, 0, sizeof(CarlaEngineMidiEvent)*MAX_ENGINE_MIDI_EVENTS);
{ {
uint32_t i = 0, j = 0; 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) while (jackbridge_midi_event_get(&jackEvent, midiIn, j++) == 0)
{ {


+ 3
- 0
c++/carla-engine/carla_osc.hpp View File

@@ -49,6 +49,9 @@


CARLA_BACKEND_START_NAMESPACE CARLA_BACKEND_START_NAMESPACE


class CarlaEngine;
class CarlaPlugin;

class CarlaOsc class CarlaOsc
{ {
public: public:


+ 1
- 1
c++/carla-engine/carla_shared.cpp View File

@@ -19,7 +19,7 @@
#include "carla_engine.hpp" #include "carla_engine.hpp"


#ifndef BUILD_BRIDGE #ifndef BUILD_BRIDGE
# include "plugins/carla_native.h"
# include "carla_native.h"
#endif #endif


#include <QtCore/QString> #include <QtCore/QString>


+ 5
- 0
c++/carla-engine/carla_threads.hpp View File

@@ -23,6 +23,11 @@
#include <QtCore/QMutex> #include <QtCore/QMutex>
#include <QtCore/QThread> #include <QtCore/QThread>


CARLA_BACKEND_START_NAMESPACE
class CarlaEngine;
class CarlaPlugin;
CARLA_BACKEND_END_NAMESPACE

// -------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------
// CarlaCheckThread // CarlaCheckThread




+ 10
- 4
c++/carla-native/Makefile View File

@@ -6,13 +6,19 @@


include ../Makefile.mk 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) 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 endif


OBJS = \ OBJS = \


+ 1
- 1
c++/carla-native/zynaddsubfx.cpp View File

@@ -15,7 +15,7 @@
* For a full copy of the GNU General Public License see the COPYING file * 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 "carla_native.hpp"


#include "zynaddsubfx/Misc/Master.h" #include "zynaddsubfx/Misc/Master.h"


+ 1
- 1
c++/carla-plugin/carla_plugin.hpp View File

@@ -20,7 +20,7 @@


#include "carla_engine.hpp" #include "carla_engine.hpp"
#include "carla_shared.hpp" #include "carla_shared.hpp"
#include "carla_midi.hpp"
#include "carla_midi.h"


#include "carla_lib_utils.hpp" #include "carla_lib_utils.hpp"




+ 29
- 44
c++/carla-plugin/native.cpp View File

@@ -16,7 +16,7 @@
*/ */


#include "carla_plugin.hpp" #include "carla_plugin.hpp"
#include "plugins/carla_native.h"
#include "carla_native.h"


// Internal C plugins // Internal C plugins
extern "C" { extern "C" {
@@ -26,7 +26,7 @@ extern void carla_register_native_plugin_bypass();
// Internal C++ plugins // Internal C++ plugins
extern void carla_register_native_plugin_midiSplit(); extern void carla_register_native_plugin_midiSplit();
#ifdef WANT_ZYNADDSUBFX #ifdef WANT_ZYNADDSUBFX
extern void carla_register_native_plugin_zynAddSubFx();
extern void carla_register_native_plugin_zynaddsubfx();
#endif #endif


CARLA_BACKEND_START_NAMESPACE CARLA_BACKEND_START_NAMESPACE
@@ -52,44 +52,23 @@ public:


~NativePluginScopedInitiliazer() ~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() 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 #ifdef WANT_ZYNADDSUBFX
carla_register_native_plugin_zynAddSubFx();
carla_register_native_plugin_zynaddsubfx();
#endif #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: private:
bool firstInit; bool firstInit;
std::vector<const PluginDescriptor*> descriptors;
}; };


static NativePluginScopedInitiliazer scopedInitliazer; static NativePluginScopedInitiliazer scopedInitliazer;
@@ -176,12 +155,12 @@ public:


int32_t rindex = param.data[parameterId].rindex; 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; return 0;
@@ -208,6 +187,7 @@ public:
CARLA_ASSERT(parameterId < param.count); CARLA_ASSERT(parameterId < param.count);
CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId));


#if 0
const int32_t rindex = param.data[parameterId].rindex; const int32_t rindex = param.data[parameterId].rindex;


if (descriptor && rindex < (int32_t)descriptor->portCount) if (descriptor && rindex < (int32_t)descriptor->portCount)
@@ -222,6 +202,7 @@ public:
return scalePoint->value; return scalePoint->value;
} }
} }
#endif


return 0.0; return 0.0;
} }
@@ -271,6 +252,7 @@ public:
CARLA_ASSERT(descriptor); CARLA_ASSERT(descriptor);
CARLA_ASSERT(parameterId < param.count); CARLA_ASSERT(parameterId < param.count);


#if 0
const int32_t rindex = param.data[parameterId].rindex; const int32_t rindex = param.data[parameterId].rindex;


if (descriptor && rindex < (int32_t)descriptor->portCount) if (descriptor && rindex < (int32_t)descriptor->portCount)
@@ -283,6 +265,7 @@ public:
return; return;
} }
} }
#endif


CarlaPlugin::getParameterName(parameterId, strBuf); CarlaPlugin::getParameterName(parameterId, strBuf);
} }
@@ -315,6 +298,7 @@ public:
CARLA_ASSERT(handle); CARLA_ASSERT(handle);
CARLA_ASSERT(parameterId < param.count); CARLA_ASSERT(parameterId < param.count);


#if 0
if (descriptor && handle) if (descriptor && handle)
{ {
const int32_t rindex = param.data[parameterId].rindex; const int32_t rindex = param.data[parameterId].rindex;
@@ -327,6 +311,7 @@ public:
return; return;
} }
} }
#endif


CarlaPlugin::getParameterUnit(parameterId, strBuf); CarlaPlugin::getParameterUnit(parameterId, strBuf);
} }
@@ -337,6 +322,7 @@ public:
CARLA_ASSERT(parameterId < param.count); CARLA_ASSERT(parameterId < param.count);
CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId));


#if 0
int32_t rindex = param.data[parameterId].rindex; int32_t rindex = param.data[parameterId].rindex;


if (descriptor && rindex < (int32_t)descriptor->portCount) if (descriptor && rindex < (int32_t)descriptor->portCount)
@@ -354,6 +340,7 @@ public:
} }
} }
} }
#endif


CarlaPlugin::getParameterScalePointLabel(parameterId, scalePointId, strBuf); CarlaPlugin::getParameterScalePointLabel(parameterId, scalePointId, strBuf);
} }
@@ -474,6 +461,7 @@ public:
// Delete old data // Delete old data
deleteBuffers(); deleteBuffers();


#if 0
uint32_t aIns, aOuts, mIns, mOuts, params, j; uint32_t aIns, aOuts, mIns, mOuts, params, j;
aIns = aOuts = mIns = mOuts = params = 0; aIns = aOuts = mIns = mOuts = params = 0;


@@ -775,6 +763,7 @@ public:
m_hints |= getPluginHintsFromNative(descriptor->hints); m_hints |= getPluginHintsFromNative(descriptor->hints);


reloadPrograms(true); reloadPrograms(true);
#endif


x_client->activate(); x_client->activate();


@@ -801,6 +790,7 @@ public:
midiprog.count = 0; midiprog.count = 0;
midiprog.data = nullptr; midiprog.data = nullptr;


#if 0
// Query new programs // Query new programs
if (descriptor->get_midi_program && descriptor->set_midi_program) if (descriptor->get_midi_program && descriptor->set_midi_program)
{ {
@@ -874,6 +864,7 @@ public:
if (programChanged) if (programChanged)
setMidiProgram(midiprog.current, true, true, true, true); 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[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[1] = extMidiNotes[i].note;
midiEvent->data[2] = extMidiNotes[i].velo; midiEvent->data[2] = extMidiNotes[i].velo;
midiEvent->size = 3;


extMidiNotes[i].channel = -1; // mark as invalid extMidiNotes[i].channel = -1; // mark as invalid
midiEventCount += 1; midiEventCount += 1;
@@ -1169,9 +1159,8 @@ public:
::MidiEvent* const midiEvent = &midiEvents[midiEventCount]; ::MidiEvent* const midiEvent = &midiEvents[midiEventCount];
memset(midiEvent, 0, sizeof(::MidiEvent)); memset(midiEvent, 0, sizeof(::MidiEvent));


midiEvent->portOffset = i;
midiEvent->port = i;
midiEvent->time = minEvent->time; midiEvent->time = minEvent->time;
midiEvent->size = minEvent->size;


if (MIDI_IS_STATUS_NOTE_OFF(status)) if (MIDI_IS_STATUS_NOTE_OFF(status))
{ {
@@ -1245,12 +1234,10 @@ public:
memset(&midiEvents[k], 0, sizeof(::MidiEvent)); memset(&midiEvents[k], 0, sizeof(::MidiEvent));
midiEvents[k].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; midiEvents[k].data[0] = MIDI_STATUS_CONTROL_CHANGE + k;
midiEvents[k].data[1] = MIDI_CONTROL_ALL_SOUND_OFF; midiEvents[k].data[1] = MIDI_CONTROL_ALL_SOUND_OFF;
midiEvents[k].size = 2;


memset(&midiEvents[k*2], 0, sizeof(::MidiEvent)); memset(&midiEvents[k*2], 0, sizeof(::MidiEvent));
midiEvents[k*2].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; midiEvents[k*2].data[0] = MIDI_STATUS_CONTROL_CHANGE + k;
midiEvents[k*2].data[1] = MIDI_CONTROL_ALL_NOTES_OFF; midiEvents[k*2].data[1] = MIDI_CONTROL_ALL_NOTES_OFF;
midiEvents[k*2].size = 2;
} }


midiEventCount = MAX_MIDI_CHANNELS*2; midiEventCount = MAX_MIDI_CHANNELS*2;
@@ -1390,10 +1377,10 @@ public:
if (MIDI_IS_STATUS_NOTE_ON(data[0]) && data[2] == 0) if (MIDI_IS_STATUS_NOTE_ON(data[0]) && data[2] == 0)
data[0] -= 0x10; 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 } // End of MIDI Output
@@ -1628,8 +1615,6 @@ public:
return false; return false;
} }


scopedInitliazer.initializeIfNeeded(descriptor);

// --------------------------------------------------------------- // ---------------------------------------------------------------
// initialize plugin // initialize plugin




Loading…
Cancel
Save