Browse Source

Build and use DGL module and DISTRHO plugins

tags/1.9.6
falkTX 10 years ago
parent
commit
b7eaf52592
9 changed files with 150 additions and 38 deletions
  1. +16
    -0
      source/backend/Makefile
  2. +5
    -0
      source/bridges-plugin/Makefile
  3. +2
    -1
      source/modules/dgl/ImageAboutWindow.hpp
  4. +4
    -4
      source/modules/dgl/src/ImageAboutWindow.cpp
  5. +23
    -12
      source/modules/dgl/src/Window.cpp
  6. +40
    -18
      source/modules/distrho/src/DistrhoPluginCarla.cpp
  7. +40
    -1
      source/native-plugins/Makefile
  8. +12
    -2
      source/native-plugins/_all.c
  9. +8
    -0
      source/plugin/Makefile

+ 16
- 0
source/backend/Makefile View File

@@ -30,6 +30,10 @@ STANDALONE_LIBS += $(MODULEDIR)/lilv.a
STANDALONE_LIBS += $(MODULEDIR)/native-plugins.a STANDALONE_LIBS += $(MODULEDIR)/native-plugins.a
STANDALONE_LIBS += $(MODULEDIR)/rtmempool.a STANDALONE_LIBS += $(MODULEDIR)/rtmempool.a


ifeq ($(HAVE_DGL),true)
STANDALONE_LIBS += $(MODULEDIR)/dgl.a
endif

ifeq ($(MACOS_OR_WIN32),true) ifeq ($(MACOS_OR_WIN32),true)
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_devices.a STANDALONE_LIBS += $(MODULEDIR)/juce_audio_devices.a
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_processors.a STANDALONE_LIBS += $(MODULEDIR)/juce_audio_processors.a
@@ -51,6 +55,10 @@ UTILS_LIBS += $(MODULEDIR)/juce_core.a
UTILS_LIBS += $(MODULEDIR)/lilv.a UTILS_LIBS += $(MODULEDIR)/lilv.a
UTILS_LIBS += $(MODULEDIR)/native-plugins.a UTILS_LIBS += $(MODULEDIR)/native-plugins.a


ifeq ($(HAVE_DGL),true)
UTILS_LIBS += $(MODULEDIR)/dgl.a
endif

# ---------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------


STANDALONE_LINK_FLAGS = $(JACKBRIDGE_LIBS) STANDALONE_LINK_FLAGS = $(JACKBRIDGE_LIBS)
@@ -77,6 +85,10 @@ STANDALONE_LINK_FLAGS += $(RTAUDIO_LIBS)
STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS) STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS)
endif endif


ifeq ($(HAVE_DGL),true)
STANDALONE_LINK_FLAGS += $(DGL_LIBS)
endif

ifeq ($(HAVE_FLUIDSYNTH),true) ifeq ($(HAVE_FLUIDSYNTH),true)
STANDALONE_LINK_FLAGS += $(FLUIDSYNTH_LIBS) STANDALONE_LINK_FLAGS += $(FLUIDSYNTH_LIBS)
endif endif
@@ -99,6 +111,10 @@ UTILS_LINK_FLAGS += $(JUCE_CORE_LIBS)
UTILS_LINK_FLAGS += $(LILV_LIBS) UTILS_LINK_FLAGS += $(LILV_LIBS)
UTILS_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) UTILS_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS)


ifeq ($(HAVE_DGL),true)
UTILS_LINK_FLAGS += $(DGL_LIBS)
endif

ifneq ($(HAIKU),true) ifneq ($(HAIKU),true)
UTILS_LINK_FLAGS += -lpthread UTILS_LINK_FLAGS += -lpthread
endif endif


+ 5
- 0
source/bridges-plugin/Makefile View File

@@ -152,6 +152,11 @@ NATIVE_LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS)
LIBS_native += $(MODULEDIR)/native-plugins.a LIBS_native += $(MODULEDIR)/native-plugins.a
NATIVE_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) NATIVE_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS)


ifeq ($(HAVE_DGL),true)
LIBS_native += $(MODULEDIR)/dgl.a
NATIVE_LINK_FLAGS += $(DGL_LIBS)
endif

# ---------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------


OBJS_native = \ OBJS_native = \


+ 2
- 1
source/modules/dgl/ImageAboutWindow.hpp View File

@@ -43,7 +43,8 @@ protected:
private: private:
Image fImgBackground; Image fImgBackground;


DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ImageAboutWindow)
DISTRHO_DECLARE_NON_COPY_CLASS(ImageAboutWindow)
//DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ImageAboutWindow)
}; };


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


+ 4
- 4
source/modules/dgl/src/ImageAboutWindow.cpp View File

@@ -23,8 +23,8 @@ START_NAMESPACE_DGL
ImageAboutWindow::ImageAboutWindow(Window& parent, const Image& image) ImageAboutWindow::ImageAboutWindow(Window& parent, const Image& image)
: Window(parent.getApp(), parent), : Window(parent.getApp(), parent),
Widget((Window&)*this), Widget((Window&)*this),
fImgBackground(image),
leakDetector_ImageAboutWindow()
fImgBackground(image)/*,
leakDetector_ImageAboutWindow()*/
{ {
Window::setResizable(false); Window::setResizable(false);
Window::setSize(static_cast<uint>(image.getWidth()), static_cast<uint>(image.getHeight())); Window::setSize(static_cast<uint>(image.getWidth()), static_cast<uint>(image.getHeight()));
@@ -34,8 +34,8 @@ ImageAboutWindow::ImageAboutWindow(Window& parent, const Image& image)
ImageAboutWindow::ImageAboutWindow(Widget* widget, const Image& image) ImageAboutWindow::ImageAboutWindow(Widget* widget, const Image& image)
: Window(widget->getParentApp(), widget->getParentWindow()), : Window(widget->getParentApp(), widget->getParentWindow()),
Widget((Window&)*this), Widget((Window&)*this),
fImgBackground(image),
leakDetector_ImageAboutWindow()
fImgBackground(image)/*,
leakDetector_ImageAboutWindow()*/
{ {
Window::setResizable(false); Window::setResizable(false);
Window::setSize(static_cast<uint>(image.getWidth()), static_cast<uint>(image.getHeight())); Window::setSize(static_cast<uint>(image.getWidth()), static_cast<uint>(image.getHeight()));


+ 23
- 12
source/modules/dgl/src/Window.cpp View File

@@ -227,7 +227,12 @@ struct Window::PrivateData {
{ {
DBG("Destroying window..."); DBGF; DBG("Destroying window..."); DBGF;


//fOnModal = false;
if (fModal.enabled)
{
exec_fini();
close();
}

fWidgets.clear(); fWidgets.clear();


if (fUsingEmbed) if (fUsingEmbed)
@@ -687,9 +692,9 @@ struct Window::PrivateData {


Widget::SpecialEvent ev; Widget::SpecialEvent ev;
ev.press = press; ev.press = press;
ev.key = key;
ev.mod = static_cast<Modifier>(puglGetModifiers(fView));
ev.time = puglGetEventTimestamp(fView);
ev.key = key;
ev.mod = static_cast<Modifier>(puglGetModifiers(fView));
ev.time = puglGetEventTimestamp(fView);


FOR_EACH_WIDGET_INV(rit) FOR_EACH_WIDGET_INV(rit)
{ {
@@ -704,14 +709,17 @@ struct Window::PrivateData {
{ {
DBGp("PUGL: onMouse : %i %i %i %i\n", button, press, x, y); DBGp("PUGL: onMouse : %i %i %i %i\n", button, press, x, y);


// FIXME - pugl sends 2 of these for each window on init, don't ask me why. we'll ignore it
if (press && button == 0 && x == 0 && y == 0) return;

if (fModal.childFocus != nullptr) if (fModal.childFocus != nullptr)
return fModal.childFocus->focus(); return fModal.childFocus->focus();


Widget::MouseEvent ev; Widget::MouseEvent ev;
ev.button = button; ev.button = button;
ev.press = press;
ev.mod = static_cast<Modifier>(puglGetModifiers(fView));
ev.time = puglGetEventTimestamp(fView);
ev.press = press;
ev.mod = static_cast<Modifier>(puglGetModifiers(fView));
ev.time = puglGetEventTimestamp(fView);


FOR_EACH_WIDGET_INV(rit) FOR_EACH_WIDGET_INV(rit)
{ {
@@ -773,7 +781,7 @@ struct Window::PrivateData {
{ {
DBGp("PUGL: onReshape : %i %i\n", width, height); DBGp("PUGL: onReshape : %i %i\n", width, height);


if (width == 1 && height == 1)
if (width <= 1 && height <= 1)
return; return;


fWidth = width; fWidth = width;
@@ -794,7 +802,7 @@ struct Window::PrivateData {
{ {
DBG("PUGL: onClose\n"); DBG("PUGL: onClose\n");


if (fModal.enabled && fModal.parent != nullptr)
if (fModal.enabled)
exec_fini(); exec_fini();


fSelf->onClose(); fSelf->onClose();
@@ -906,13 +914,16 @@ struct Window::PrivateData {
// Window // Window


Window::Window(App& app) Window::Window(App& app)
: pData(new PrivateData(app, this)) {}
: pData(new PrivateData(app, this)),
leakDetector_Window() {}


Window::Window(App& app, Window& parent) Window::Window(App& app, Window& parent)
: pData(new PrivateData(app, this, parent)) {}
: pData(new PrivateData(app, this, parent)),
leakDetector_Window() {}


Window::Window(App& app, intptr_t parentId) Window::Window(App& app, intptr_t parentId)
: pData(new PrivateData(app, this, parentId)) {}
: pData(new PrivateData(app, this, parentId)),
leakDetector_Window() {}


Window::~Window() Window::~Window()
{ {


+ 40
- 18
source/modules/distrho/src/DistrhoPluginCarla.cpp View File

@@ -45,22 +45,27 @@ public:
fPlugin(plugin), fPlugin(plugin),
fUI(this, 0, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, plugin->getInstancePointer()) fUI(this, 0, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, plugin->getInstancePointer())
{ {
fUI.setTitle(host->uiName);
fUI.setWindowTitle(host->uiName);


if (host->uiParentId != 0) if (host->uiParentId != 0)
fUI.setTransientWinId(host->uiParentId);
fUI.setWindowTransientWinId(host->uiParentId);
}

~UICarla()
{
fUI.quit();
} }


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


void carla_show(const bool yesNo) void carla_show(const bool yesNo)
{ {
fUI.setVisible(yesNo);
fUI.setWindowVisible(yesNo);
} }


void carla_idle()
bool carla_idle()
{ {
fUI.idle();
return fUI.idle();
} }


void carla_setParameterValue(const uint32_t index, const float value) void carla_setParameterValue(const uint32_t index, const float value)
@@ -84,7 +89,7 @@ public:


void carla_setUiTitle(const char* const uiTitle) void carla_setUiTitle(const char* const uiTitle)
{ {
fUI.setTitle(uiTitle);
fUI.setWindowTitle(uiTitle);
} }


// --------------------------------------------- // ---------------------------------------------
@@ -112,7 +117,7 @@ protected:


void handleSetSize(const uint width, const uint height) void handleSetSize(const uint width, const uint height)
{ {
fUI.setSize(width, height);
fUI.setWindowSize(width, height);
} }


// --------------------------------------------- // ---------------------------------------------
@@ -205,25 +210,23 @@ protected:


static NativeParameter param; static NativeParameter param;


// reset
param.hints = ::PARAMETER_IS_ENABLED;
param.scalePointCount = 0; param.scalePointCount = 0;
param.scalePoints = nullptr; param.scalePoints = nullptr;


{ {
int nativeParamHints = ::PARAMETER_IS_ENABLED;
int nativeParamHints = ::NATIVE_PARAMETER_IS_ENABLED;
const uint32_t paramHints = fPlugin.getParameterHints(index); const uint32_t paramHints = fPlugin.getParameterHints(index);


if (paramHints & kParameterIsAutomable) if (paramHints & kParameterIsAutomable)
nativeParamHints |= ::PARAMETER_IS_AUTOMABLE;
nativeParamHints |= ::NATIVE_PARAMETER_IS_AUTOMABLE;
if (paramHints & kParameterIsBoolean) if (paramHints & kParameterIsBoolean)
nativeParamHints |= ::PARAMETER_IS_BOOLEAN;
nativeParamHints |= ::NATIVE_PARAMETER_IS_BOOLEAN;
if (paramHints & kParameterIsInteger) if (paramHints & kParameterIsInteger)
nativeParamHints |= ::PARAMETER_IS_INTEGER;
nativeParamHints |= ::NATIVE_PARAMETER_IS_INTEGER;
if (paramHints & kParameterIsLogarithmic) if (paramHints & kParameterIsLogarithmic)
nativeParamHints |= ::PARAMETER_IS_LOGARITHMIC;
nativeParamHints |= ::NATIVE_PARAMETER_IS_LOGARITHMIC;
if (paramHints & kParameterIsOutput) if (paramHints & kParameterIsOutput)
nativeParamHints |= ::PARAMETER_IS_OUTPUT;
nativeParamHints |= ::NATIVE_PARAMETER_IS_OUTPUT;


param.hints = static_cast<NativeParameterHints>(nativeParamHints); param.hints = static_cast<NativeParameterHints>(nativeParamHints);
} }
@@ -329,7 +332,13 @@ protected:
realMidiEvent.frame = midiEvent.time; realMidiEvent.frame = midiEvent.time;
realMidiEvent.size = midiEvent.size; realMidiEvent.size = midiEvent.size;


carla_copy<uint8_t>(realMidiEvent.buf, midiEvent.data, midiEvent.size);
uint8_t j=0;
for (; j<midiEvent.size; ++j)
realMidiEvent.data[j] = midiEvent.data[j];
for (; j<midiEvent.size; ++j)
realMidiEvent.data[j] = midiEvent.data[j];

realMidiEvent.dataExt = nullptr;
} }


fPlugin.run(const_cast<const float**>(inBuffer), outBuffer, frames, realMidiEvents, midiEventCount); fPlugin.run(const_cast<const float**>(inBuffer), outBuffer, frames, realMidiEvents, midiEventCount);
@@ -348,17 +357,30 @@ protected:
void uiShow(const bool show) override void uiShow(const bool show) override
{ {
if (show) if (show)
{
createUiIfNeeded(); createUiIfNeeded();
CARLA_SAFE_ASSERT_RETURN(fUiPtr != nullptr,);


if (fUiPtr != nullptr)
fUiPtr->carla_show(show); fUiPtr->carla_show(show);
}
else if (fUiPtr != nullptr)
{
delete fUiPtr;
fUiPtr = nullptr;
}
} }


void uiIdle() override void uiIdle() override
{ {
CARLA_SAFE_ASSERT_RETURN(fUiPtr != nullptr,); CARLA_SAFE_ASSERT_RETURN(fUiPtr != nullptr,);


fUiPtr->carla_idle();
if (! fUiPtr->carla_idle())
{
uiClosed();

delete fUiPtr;
fUiPtr = nullptr;
}
} }


void uiSetParameterValue(const uint32_t index, const float value) override void uiSetParameterValue(const uint32_t index, const float value) override


+ 40
- 1
source/native-plugins/Makefile View File

@@ -11,7 +11,7 @@ include ../modules/Makefile.mk
# ---------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------


BUILD_C_FLAGS += -I.. BUILD_C_FLAGS += -I..
BUILD_CXX_FLAGS += -I.. -I../distrho -isystem $(CWD)/modules
BUILD_CXX_FLAGS += -I.. -isystem $(CWD)/modules -I$(CWD)/modules/distrho


# ---------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------
# Flags for _all.c # Flags for _all.c
@@ -62,6 +62,16 @@ OBJS += \
$(OBJDIR)/midi-file.cpp.o \ $(OBJDIR)/midi-file.cpp.o \
$(OBJDIR)/notes.cpp.o $(OBJDIR)/notes.cpp.o


# ----------------------------------------------------------------------------------------------------------------------------
# DISTRHO plugins

OBJS += \
$(OBJDIR)/distrho-3bandeq.cpp.o \
$(OBJDIR)/distrho-3bandsplitter.cpp.o \
$(OBJDIR)/distrho-mverb.cpp.o \
$(OBJDIR)/distrho-nekobi.cpp.o \
$(OBJDIR)/distrho-pingpongpan.cpp.o

# ---------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------
# ZynAddSubFX # ZynAddSubFX


@@ -157,6 +167,33 @@ $(OBJDIR)/%.c.o: %.c


# ---------------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------------


$(OBJDIR)/distrho-3bandeq.cpp.o: distrho-3bandeq.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling $<"
@$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_NAMESPACE=DISTRHO_3BandEQ -Idistrho-3bandeq -I$(CWD)/modules/dgl -c -o $@

$(OBJDIR)/distrho-3bandsplitter.cpp.o: distrho-3bandsplitter.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling $<"
@$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_NAMESPACE=DISTRHO_3BandSplitter -Idistrho-3bandsplitter -I$(CWD)/modules/dgl -c -o $@

$(OBJDIR)/distrho-mverb.cpp.o: distrho-mverb.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling $<"
@$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_NAMESPACE=DISTRHO_MVerb -Idistrho-mverb -I$(CWD)/modules/dgl -c -o $@

$(OBJDIR)/distrho-nekobi.cpp.o: distrho-nekobi.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling $<"
@$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_NAMESPACE=DISTRHO_Nekobi -Idistrho-nekobi -I$(CWD)/modules/dgl -c -o $@

$(OBJDIR)/distrho-pingpongpan.cpp.o: distrho-pingpongpan.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling $<"
@$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_NAMESPACE=DISTRHO_PingPongPan -Idistrho-pingpongpan -I$(CWD)/modules/dgl -c -o $@

# ----------------------------------------------------------------------------------------------------------------------------

$(OBJDIR)/zynaddsubfx-fx.cpp.o: zynaddsubfx-fx.cpp $(ZYN_UI_FILES_H) $(OBJDIR)/zynaddsubfx-fx.cpp.o: zynaddsubfx-fx.cpp $(ZYN_UI_FILES_H)
-@mkdir -p $(OBJDIR) -@mkdir -p $(OBJDIR)
@echo "Compiling $<" @echo "Compiling $<"
@@ -177,6 +214,8 @@ $(OBJDIR)/zynaddsubfx-ui.cpp.o: zynaddsubfx-ui.cpp $(ZYN_UI_FILES_H) $(ZYN_UI_FI
@echo "Compiling $<" @echo "Compiling $<"
@$(CXX) $< $(ZYN_CXX_FLAGS) -w -c -o $@ @$(CXX) $< $(ZYN_CXX_FLAGS) -w -c -o $@


# ----------------------------------------------------------------------------------------------------------------------------

$(OBJDIR)/%.cpp.o: %.cpp $(OBJDIR)/%.cpp.o: %.cpp
-@mkdir -p $(OBJDIR) -@mkdir -p $(OBJDIR)
@echo "Compiling $<" @echo "Compiling $<"


+ 12
- 2
source/native-plugins/_all.c View File

@@ -36,8 +36,11 @@ extern void carla_register_native_plugin_midifile(void);
extern void carla_register_native_plugin_carla(void); extern void carla_register_native_plugin_carla(void);


// DISTRHO plugins // DISTRHO plugins
//extern void carla_register_native_plugin_distrho_3bandeq(void);
//extern void carla_register_native_plugin_distrho_3bandsplitter(void);
extern void carla_register_native_plugin_distrho_3bandeq(void);
extern void carla_register_native_plugin_distrho_3bandsplitter(void);
extern void carla_register_native_plugin_distrho_mverb(void);
extern void carla_register_native_plugin_distrho_nekobi(void);
extern void carla_register_native_plugin_distrho_pingpongpan(void);


// External-UI plugins // External-UI plugins
extern void carla_register_native_plugin_bigmeter(void); extern void carla_register_native_plugin_bigmeter(void);
@@ -71,6 +74,13 @@ void carla_register_all_plugins(void)
// Carla // Carla
carla_register_native_plugin_carla(); carla_register_native_plugin_carla();


// DISTRHO Plugins
carla_register_native_plugin_distrho_3bandeq();
carla_register_native_plugin_distrho_3bandsplitter();
carla_register_native_plugin_distrho_mverb();
carla_register_native_plugin_distrho_nekobi();
carla_register_native_plugin_distrho_pingpongpan();

// External-UI plugins // External-UI plugins
carla_register_native_plugin_bigmeter(); carla_register_native_plugin_bigmeter();
carla_register_native_plugin_notes(); carla_register_native_plugin_notes();


+ 8
- 0
source/plugin/Makefile View File

@@ -37,6 +37,10 @@ LIBS += $(MODULEDIR)/lilv.a
LIBS += $(MODULEDIR)/native-plugins.a LIBS += $(MODULEDIR)/native-plugins.a
LIBS += $(MODULEDIR)/rtmempool.a LIBS += $(MODULEDIR)/rtmempool.a


ifeq ($(HAVE_DGL),true)
LIBS += $(MODULEDIR)/dgl.a
endif

ifeq ($(MACOS_OR_WIN32),true) ifeq ($(MACOS_OR_WIN32),true)
LIBS += $(MODULEDIR)/juce_audio_processors.a LIBS += $(MODULEDIR)/juce_audio_processors.a
LIBS += $(MODULEDIR)/juce_data_structures.a LIBS += $(MODULEDIR)/juce_data_structures.a
@@ -73,6 +77,10 @@ ifeq ($(MACOS),true)
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS)
endif endif


ifeq ($(HAVE_DGL),true)
LINK_FLAGS += $(DGL_LIBS)
endif

ifeq ($(HAVE_FLUIDSYNTH),true) ifeq ($(HAVE_FLUIDSYNTH),true)
LINK_FLAGS += $(FLUIDSYNTH_LIBS) LINK_FLAGS += $(FLUIDSYNTH_LIBS)
endif endif


Loading…
Cancel
Save