Browse Source

Start small reworking of UI bridges

tags/1.9.4
falkTX 11 years ago
parent
commit
d23aed868d
9 changed files with 222 additions and 353 deletions
  1. +1
    -1
      source/bridges-ui/CarlaBridge.hpp
  2. +5
    -22
      source/bridges-ui/CarlaBridgeClient.hpp
  3. +32
    -42
      source/bridges-ui/CarlaBridgeOsc.cpp
  4. +12
    -14
      source/bridges-ui/CarlaBridgeOsc.hpp
  5. +13
    -10
      source/bridges-ui/CarlaBridgeToolkit.hpp
  6. +17
    -20
      source/bridges-ui/CarlaBridgeToolkitGtk.cpp
  7. +14
    -19
      source/bridges-ui/CarlaBridgeToolkitPlugin.cpp
  8. +12
    -79
      source/bridges-ui/CarlaBridgeToolkitQt.cpp
  9. +116
    -146
      source/bridges-ui/Makefile

+ 1
- 1
source/bridges-ui/CarlaBridge.hpp View File

@@ -1,6 +1,6 @@
/*
* Carla Bridge
* Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as


+ 5
- 22
source/bridges-ui/CarlaBridgeClient.hpp View File

@@ -19,10 +19,7 @@
#define CARLA_BRIDGE_CLIENT_HPP_INCLUDED

#include "CarlaBridgeOsc.hpp"

#ifdef BUILD_BRIDGE_UI
# include "CarlaBridgeToolkit.hpp"
#endif
#include "CarlaBridgeToolkit.hpp"

CARLA_BRIDGE_START_NAMESPACE

@@ -34,7 +31,6 @@ public:
CarlaBridgeClient(const char* const uiTitle);
virtual ~CarlaBridgeClient();

#ifdef BUILD_BRIDGE_UI
// ---------------------------------------------------------------------
// ui initialization

@@ -66,7 +62,6 @@ public:
void toolkitResize(const int width, const int height);
void toolkitExec(const bool showGui);
void toolkitQuit();
#endif

// ---------------------------------------------------------------------
// osc stuff
@@ -78,15 +73,9 @@ public:
bool isOscControlRegistered() const noexcept;
void sendOscUpdate() const;

#ifdef BUILD_BRIDGE_PLUGIN
void sendOscBridgeUpdate() const;
void sendOscBridgeError(const char* const error) const;
#endif

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

protected:
#ifdef BUILD_BRIDGE_UI
void sendOscConfigure(const char* const key, const char* const value) const;
void sendOscControl(const int32_t index, const float value) const;
void sendOscProgram(const uint32_t index) const;
@@ -94,10 +83,10 @@ protected:
void sendOscMidi(const uint8_t midiBuf[4]) const;
void sendOscExiting() const;

# ifdef BRIDGE_LV2
#ifdef BRIDGE_LV2
void sendOscLv2AtomTransfer(const int32_t portIndex, const char* const atomBuf) const;
void sendOscLv2UridMap(const uint32_t urid, const char* const uri) const;
# endif
#endif

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

@@ -106,7 +95,6 @@ protected:
bool uiLibClose();
void* uiLibSymbol(const char* const symbol);
const char* uiLibError();
#endif

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

@@ -114,7 +102,6 @@ private:
CarlaBridgeOsc fOsc;
const CarlaOscData& fOscData;

#ifdef BUILD_BRIDGE_UI
struct UI {
CarlaBridgeToolkit* const toolkit;
CarlaString filename;
@@ -146,16 +133,12 @@ private:
toolkit->quit();
}

# ifdef CARLA_PROPER_CPP11_SUPPORT
#ifdef CARLA_PROPER_CPP11_SUPPORT
UI() = delete;
UI(UI&) = delete;
UI(const UI&) = delete;
# endif

} fUI;
#else
friend class CarlaPluginClient;
#endif
} fUI;

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaBridgeClient)
};


+ 32
- 42
source/bridges-ui/CarlaBridgeOsc.cpp View File

@@ -1,6 +1,6 @@
/*
* Carla Bridge OSC
* Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -23,7 +23,7 @@ CARLA_BRIDGE_START_NAMESPACE
// -----------------------------------------------------------------------

CarlaBridgeOsc::CarlaBridgeOsc(CarlaBridgeClient* const client)
: fClient(client),
: kClient(client),
fServer(nullptr)
{
CARLA_ASSERT(client != nullptr);
@@ -50,13 +50,8 @@ void CarlaBridgeOsc::init(const char* const url)
std::srand((uint)(uintptr_t)this);
std::srand((uint)(uintptr_t)&url);

#ifdef BUILD_BRIDGE_PLUGIN
fName = "plug-";
fName += CarlaString(std::rand() % 99999);
#else
fName = "ui-";
fName += CarlaString(std::rand() % 99999);
#endif

fServer = lo_server_new_with_proto(nullptr, LO_UDP, osc_error_handler);

@@ -79,9 +74,7 @@ void CarlaBridgeOsc::init(const char* const url)
std::free(tmpServerPath);
}

#ifdef BUILD_BRIDGE_UI
lo_server_add_method(fServer, nullptr, nullptr, osc_message_handler, this);
#endif

CARLA_ASSERT(fName.isNotEmpty());
CARLA_ASSERT(fServerPath.isNotEmpty());
@@ -120,7 +113,6 @@ void CarlaBridgeOsc::close()
CARLA_ASSERT(fServer == nullptr);
}

#ifdef BUILD_BRIDGE_UI
// -----------------------------------------------------------------------

int CarlaBridgeOsc::handleMessage(const char* const path, const int argc, const lo_arg* const* const argv, const char* const types, const lo_message msg)
@@ -161,25 +153,25 @@ int CarlaBridgeOsc::handleMessage(const char* const path, const int argc, const

// UI methods
if (std::strcmp(method, "configure") == 0)
return handleMsgUiConfigure(argc, argv, types);
return handleMsgConfigure(argc, argv, types);
if (std::strcmp(method, "control") == 0)
return handleMsgUiControl(argc, argv, types);
return handleMsgControl(argc, argv, types);
if (std::strcmp(method, "program") == 0)
return handleMsgUiProgram(argc, argv, types);
return handleMsgProgram(argc, argv, types);
if (std::strcmp(method, "midi-program") == 0)
return handleMsgUiMidiProgram(argc, argv, types);
return handleMsgMidiProgram(argc, argv, types);
if (std::strcmp(method, "midi") == 0)
return handleMsgUiMidi(argc, argv, types);
return handleMsgMidi(argc, argv, types);
if (std::strcmp(method, "sample-rate") == 0)
return 0; // unused

# ifdef BRIDGE_LV2
#ifdef BRIDGE_LV2
// LV2 methods
if (std::strcmp(method, "lv2_atom_transfer") == 0)
return handleMsgLv2UiAtomTransfer(argc, argv, types);
return handleMsgLv2AtomTransfer(argc, argv, types);
if (std::strcmp(method, "lv2_urid_map") == 0)
return handleMsgLv2UiUridMap(argc, argv, types);
# endif
return handleMsgLv2UridMap(argc, argv, types);
#endif

carla_stderr("CarlaBridgeOsc::handleMessage(\"%s\", ...) - received unsupported OSC method '%s'", path, method);
return 1;
@@ -187,38 +179,38 @@ int CarlaBridgeOsc::handleMessage(const char* const path, const int argc, const

int CarlaBridgeOsc::handleMsgShow()
{
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgShow()");

fClient->toolkitShow();
kClient->toolkitShow();

return 0;
}

int CarlaBridgeOsc::handleMsgHide()
{
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgHide()");

fClient->toolkitHide();
kClient->toolkitHide();

return 0;
}

int CarlaBridgeOsc::handleMsgQuit()
{
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgQuit()");

fClient->toolkitQuit();
kClient->toolkitQuit();

return 0;
}

int CarlaBridgeOsc::handleMsgUiConfigure(CARLA_BRIDGE_OSC_HANDLE_ARGS)
int CarlaBridgeOsc::handleMsgConfigure(CARLA_BRIDGE_OSC_HANDLE_ARGS)
{
CARLA_BRIDGE_OSC_CHECK_OSC_TYPES(2, "ss");
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgConfigure()");

// nothing here for now
@@ -228,10 +220,10 @@ int CarlaBridgeOsc::handleMsgUiConfigure(CARLA_BRIDGE_OSC_HANDLE_ARGS)
(void)argv;
}

int CarlaBridgeOsc::handleMsgUiControl(CARLA_BRIDGE_OSC_HANDLE_ARGS)
int CarlaBridgeOsc::handleMsgControl(CARLA_BRIDGE_OSC_HANDLE_ARGS)
{
CARLA_BRIDGE_OSC_CHECK_OSC_TYPES(2, "if");
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgControl()");

const int32_t index = argv[0]->i;
@@ -239,30 +231,30 @@ int CarlaBridgeOsc::handleMsgUiControl(CARLA_BRIDGE_OSC_HANDLE_ARGS)

CARLA_SAFE_ASSERT_RETURN(index != -1, 1);

fClient->setParameter(index, value);
kClient->setParameter(index, value);

return 0;
}

int CarlaBridgeOsc::handleMsgUiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS)
int CarlaBridgeOsc::handleMsgProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS)
{
CARLA_BRIDGE_OSC_CHECK_OSC_TYPES(1, "i");
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgProgram()");

const int32_t index = argv[0]->i;

CARLA_SAFE_ASSERT_RETURN(index >= 0, 1);

fClient->setProgram(static_cast<uint32_t>(index));
kClient->setProgram(static_cast<uint32_t>(index));

return 0;
}

int CarlaBridgeOsc::handleMsgUiMidiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS)
int CarlaBridgeOsc::handleMsgMidiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS)
{
CARLA_BRIDGE_OSC_CHECK_OSC_TYPES(2, "ii");
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgMidiProgram()");

const int32_t bank = argv[0]->i;
@@ -271,15 +263,15 @@ int CarlaBridgeOsc::handleMsgUiMidiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS)
CARLA_SAFE_ASSERT_RETURN(bank >= 0, 1);
CARLA_SAFE_ASSERT_RETURN(program >= 0, 1);

fClient->setMidiProgram(static_cast<uint32_t>(bank), static_cast<uint32_t>(program));
kClient->setMidiProgram(static_cast<uint32_t>(bank), static_cast<uint32_t>(program));

return 0;
}

int CarlaBridgeOsc::handleMsgUiMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS)
int CarlaBridgeOsc::handleMsgMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS)
{
CARLA_BRIDGE_OSC_CHECK_OSC_TYPES(1, "m");
CARLA_SAFE_ASSERT_RETURN(fClient != nullptr, 1);
CARLA_SAFE_ASSERT_RETURN(kClient != nullptr, 1);
carla_debug("CarlaBridgeOsc::handleMsgMidi()");

const uint8_t* const data = argv[0]->m;
@@ -296,7 +288,7 @@ int CarlaBridgeOsc::handleMsgUiMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS)

CARLA_SAFE_ASSERT_RETURN(note < MAX_MIDI_NOTE, 1);

fClient->noteOff(channel, note);
kClient->noteOff(channel, note);
}
else if (MIDI_IS_STATUS_NOTE_ON(status))
{
@@ -306,14 +298,12 @@ int CarlaBridgeOsc::handleMsgUiMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS)
CARLA_SAFE_ASSERT_RETURN(note < MAX_MIDI_NOTE, 1);
CARLA_SAFE_ASSERT_RETURN(velo < MAX_MIDI_VALUE, 1);

fClient->noteOn(channel, note, velo);
kClient->noteOn(channel, note, velo);
}

return 0;
}

#endif // BUILD_BRIDGE_UI

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

CARLA_BRIDGE_END_NAMESPACE

+ 12
- 14
source/bridges-ui/CarlaBridgeOsc.hpp View File

@@ -1,6 +1,6 @@
/*
* Carla Bridge OSC
* Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -81,32 +81,31 @@ public:
// -------------------------------------------------------------------

private:
CarlaBridgeClient* const fClient;
CarlaBridgeClient* const kClient;

CarlaOscData fControlData;
CarlaString fName;
CarlaString fServerPath;
lo_server fServer;

#ifdef BUILD_BRIDGE_UI
// -------------------------------------------------------------------

int handleMessage(const char* const path, const int argc, const lo_arg* const* const argv, const char* const types, const lo_message msg);

int handleMsgConfigure(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgControl(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgMidiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS);

int handleMsgShow();
int handleMsgHide();
int handleMsgQuit();

int handleMsgUiConfigure(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgUiControl(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgUiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgUiMidiProgram(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgUiMidi(CARLA_BRIDGE_OSC_HANDLE_ARGS);

# ifdef BRIDGE_LV2
int handleMsgLv2UiAtomTransfer(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgLv2UiUridMap(CARLA_BRIDGE_OSC_HANDLE_ARGS);
# endif
#ifdef BRIDGE_LV2
int handleMsgLv2AtomTransfer(CARLA_BRIDGE_OSC_HANDLE_ARGS);
int handleMsgLv2UridMap(CARLA_BRIDGE_OSC_HANDLE_ARGS);
#endif

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

@@ -114,7 +113,6 @@ private:
{
return ((CarlaBridgeOsc*)userData)->handleMessage(path, argc, argv, types, msg);
}
#endif

static void osc_error_handler(int num, const char* msg, const char* path)
{


+ 13
- 10
source/bridges-ui/CarlaBridgeToolkit.hpp View File

@@ -1,6 +1,6 @@
/*
* Carla Bridge Toolkit
* Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -19,19 +19,16 @@
#define CARLA_BRIDGE_TOOLKIT_HPP_INCLUDED

#include "CarlaBridge.hpp"
#include "CarlaJuceUtils.hpp"
#include "CarlaString.hpp"

CARLA_BRIDGE_START_NAMESPACE

#if 0
} // Fix editor indentation
#endif
// -----------------------------------------------------------------------

class CarlaBridgeToolkit
{
public:
CarlaBridgeToolkit(CarlaBridgeClient* const client, const char* const uiTitle);
virtual ~CarlaBridgeToolkit();
virtual ~CarlaBridgeToolkit() {}

virtual void init() = 0;
virtual void exec(const bool showGui) = 0;
@@ -41,17 +38,23 @@ public:
virtual void hide() = 0;
virtual void resize(const int width, const int height) = 0;

virtual void* getContainerId();
virtual void* getContainerId() const { return nullptr; }

static CarlaBridgeToolkit* createNew(CarlaBridgeClient* const client, const char* const uiTitle);

protected:
CarlaBridgeClient* const kClient;
const char* const kUiTitle;
const CarlaString kWindowTitle;

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaBridgeToolkit)
CarlaBridgeToolkit(CarlaBridgeClient* const client, const char* const title)
: kClient(client),
kWindowTitle(title) {}

CARLA_LEAK_DETECTOR(CarlaBridgeToolkit)
};

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

CARLA_BRIDGE_END_NAMESPACE

#endif // __CARLA_BRIDGE_TOOLKIT_HPP__

+ 17
- 20
source/bridges-ui/CarlaBridgeToolkitGtk.cpp View File

@@ -18,12 +18,7 @@
#include "CarlaBridgeClient.hpp"
#include "CarlaBridgeToolkit.hpp"

#if defined(BRIDGE_COCOA) || defined(BRIDGE_HWND) || defined(BRIDGE_X11)
# error Embed UI uses Qt
#endif

#include <gtk/gtk.h>
//#include <QtCore/QSettings> // FIXME

CARLA_BRIDGE_START_NAMESPACE

@@ -42,10 +37,10 @@ static char** gargv = nullptr;

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

class CarlaToolkitGtk : public CarlaBridgeToolkit
class CarlaBridgeToolkitGtk : public CarlaBridgeToolkit
{
public:
CarlaToolkitGtk(CarlaBridgeClient* const client, const char* const uiTitle)
CarlaBridgeToolkitGtk(CarlaBridgeClient* const client, const char* const uiTitle)
: CarlaBridgeToolkit(client, uiTitle),
fNeedsShow(false),
fWindow(nullptr),
@@ -54,19 +49,19 @@ public:
fLastWidth(0),
fLastHeight(0)
{
carla_debug("CarlaToolkitGtk::CarlaToolkitGtk(%p, \"%s\")", client, uiTitle);
carla_debug("CarlaBridgeToolkitGtk::CarlaBridgeToolkitGtk(%p, \"%s\")", client, uiTitle);
}

~CarlaToolkitGtk() override
~CarlaBridgeToolkitGtk() override
{
CARLA_ASSERT(fWindow == nullptr);
carla_debug("CarlaToolkitGtk::~CarlaToolkitGtk()");
carla_debug("CarlaBridgeToolkitGtk::~CarlaBridgeToolkitGtk()");
}

void init() override
{
CARLA_ASSERT(fWindow == nullptr);
carla_debug("CarlaToolkitGtk::init()");
carla_debug("CarlaBridgeToolkitGtk::init()");

gtk_init(&gargc, &gargv);

@@ -79,7 +74,7 @@ public:
{
CARLA_ASSERT(kClient != nullptr);
CARLA_ASSERT(fWindow != nullptr);
carla_debug("CarlaToolkitGtk::exec(%s)", bool2str(showGui));
carla_debug("CarlaBridgeToolkitGtk::exec(%s)", bool2str(showGui));

GtkWidget* const widget((GtkWidget*)kClient->getWidget());

@@ -139,7 +134,7 @@ public:

void quit() override
{
carla_debug("CarlaToolkitGtk::quit()");
carla_debug("CarlaBridgeToolkitGtk::quit()");

if (fWindow != nullptr)
{
@@ -153,7 +148,7 @@ public:

void show() override
{
carla_debug("CarlaToolkitGtk::show()");
carla_debug("CarlaBridgeToolkitGtk::show()");

fNeedsShow = true;

@@ -163,7 +158,7 @@ public:

void hide() override
{
carla_debug("CarlaToolkitGtk::hide()");
carla_debug("CarlaBridgeToolkitGtk::hide()");

fNeedsShow = false;

@@ -174,7 +169,7 @@ public:
void resize(int width, int height) override
{
CARLA_ASSERT(fWindow != nullptr);
carla_debug("CarlaToolkitGtk::resize(%i, %i)", width, height);
carla_debug("CarlaBridgeToolkitGtk::resize(%i, %i)", width, height);

if (fWindow != nullptr)
gtk_window_resize(GTK_WINDOW(fWindow), width, height);
@@ -193,7 +188,7 @@ protected:

void handleDestroy()
{
carla_debug("CarlaToolkitGtk::handleDestroy()");
carla_debug("CarlaBridgeToolkitGtk::handleDestroy()");

fWindow = nullptr;

@@ -225,7 +220,7 @@ private:
{
CARLA_ASSERT(data != nullptr);

if (CarlaToolkitGtk* const _this_ = (CarlaToolkitGtk*)data)
if (CarlaBridgeToolkitGtk* const _this_ = (CarlaBridgeToolkitGtk*)data)
_this_->handleDestroy();

gtk_main_quit();
@@ -235,7 +230,7 @@ private:
{
CARLA_ASSERT(data != nullptr);

if (CarlaToolkitGtk* const _this_ = (CarlaToolkitGtk*)data)
if (CarlaBridgeToolkitGtk* const _this_ = (CarlaBridgeToolkitGtk*)data)
return _this_->handleTimeout();

return false;
@@ -246,7 +241,9 @@ private:

CarlaBridgeToolkit* CarlaBridgeToolkit::createNew(CarlaBridgeClient* const client, const char* const uiTitle)
{
return new CarlaToolkitGtk(client, uiTitle);
return new CarlaBridgeToolkitGtk(client, uiTitle);
}

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

CARLA_BRIDGE_END_NAMESPACE

source/bridges-ui/CarlaBridgeToolkit.cpp → source/bridges-ui/CarlaBridgeToolkitPlugin.cpp View File

@@ -1,6 +1,6 @@
/*
* Carla Bridge Toolkit
* Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
* Carla Bridge Toolkit, Plugin version
* Copyright (C) 2014 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -15,30 +15,25 @@
* For a full copy of the GNU General Public License see the GPL.txt file
*/

#include "CarlaBridgeClient.hpp"
#include "CarlaBridgeToolkit.hpp"

CARLA_BRIDGE_START_NAMESPACE
#include "CarlaPluginUI.hpp"

CarlaBridgeToolkit::CarlaBridgeToolkit(CarlaBridgeClient* const client, const char* const uiTitle)
: kClient(client),
kUiTitle(carla_strdup((uiTitle != nullptr) ? uiTitle : "(null)"))
{
CARLA_ASSERT(client != nullptr);
CARLA_ASSERT(uiTitle != nullptr);
carla_debug("CarlaBridgeToolkit::CarlaBridgeToolkit(%p, \"%s\")", client, uiTitle);
}

CarlaBridgeToolkit::~CarlaBridgeToolkit()
{
carla_debug("CarlaBridgeToolkit::~CarlaBridgeToolkit()");
CARLA_BRIDGE_START_NAMESPACE

delete[] kUiTitle;
}
// -------------------------------------------------------------------------

void* CarlaBridgeToolkit::getContainerId()
CarlaBridgeToolkit* CarlaBridgeToolkit::createNew(CarlaBridgeClient* const client, const char* const uiTitle)
{
carla_debug("CarlaBridgeToolkit::getContainerId()");
return nullptr;
(void)client; (void)uiTitle;
}

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

CARLA_BRIDGE_END_NAMESPACE

#include "CarlaPluginUI.cpp"

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

+ 12
- 79
source/bridges-ui/CarlaBridgeToolkitQt.cpp View File

@@ -26,29 +26,9 @@
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
# include <QtWidgets/QApplication>
# include <QtWidgets/QMainWindow>
# ifdef Q_WS_X11
# undef Q_WS_X11
# endif
#else
# include <QtGui/QApplication>
# include <QtGui/QMainWindow>
# ifdef Q_WS_X11
# include <QtGui/QX11EmbedContainer>
# endif
#endif

#if defined(BRIDGE_COCOA) || defined(BRIDGE_HWND) || defined(BRIDGE_X11)
# define BRIDGE_CONTAINER
# ifndef BRIDGE_X11
typedef QWidget QEmbedContainer;
# else
# ifdef Q_WS_X11
typedef QX11EmbedContainer QEmbedContainer;
# else
# warning Using X11 UI bridge without QX11EmbedContainer
typedef QWidget QEmbedContainer;
# endif
# endif
#endif

CARLA_BRIDGE_START_NAMESPACE
@@ -59,12 +39,6 @@ CARLA_BRIDGE_START_NAMESPACE
static const char* const appName = "Carla-Qt4UIs";
#elif defined(BRIDGE_QT5)
static const char* const appName = "Carla-Qt5UIs";
#elif defined(BRIDGE_COCOA)
static const char* const appName = "Carla-CocoaUIs";
#elif defined(BRIDGE_HWND)
static const char* const appName = "Carla-HWNDUIs";
#elif defined(BRIDGE_X11)
static const char* const appName = "Carla-X11UIs";
#else
static const char* const appName = "Carla-UIs";
#endif
@@ -85,9 +59,6 @@ public:
CarlaBridgeToolkit(client, uiTitle),
fApp(nullptr),
fWindow(nullptr),
#ifdef BRIDGE_CONTAINER
fEmbedContainer(nullptr),
#endif
fMsgTimer(0),
fNeedsShow(false)
{
@@ -162,16 +133,16 @@ public:
}

fWindow->setWindowIcon(QIcon::fromTheme("carla", QIcon(":/scalable/carla.svg")));
fWindow->setWindowTitle(kUiTitle);
fWindow->setWindowTitle(kWindowTitle);

{
QSettings settings("falkTX", appName);

if (settings.contains(QString("%1/pos_x").arg(kUiTitle)))
if (settings.contains(QString("%1/pos_x").arg(kWindowTitle)))
{
bool hasX, hasY;
const int posX(settings.value(QString("%1/pos_x").arg(kUiTitle), fWindow->x()).toInt(&hasX));
const int posY(settings.value(QString("%1/pos_y").arg(kUiTitle), fWindow->y()).toInt(&hasY));
const int posX(settings.value(QString("%1/pos_x").arg(kWindowTitle), fWindow->x()).toInt(&hasX));
const int posY(settings.value(QString("%1/pos_y").arg(kWindowTitle), fWindow->y()).toInt(&hasY));

if (hasX && hasY)
fWindow->move(posX, posY);
@@ -179,8 +150,8 @@ public:
if (kClient->isResizable())
{
bool hasWidth, hasHeight;
const int width(settings.value(QString("%1/width").arg(kUiTitle), fWindow->width()).toInt(&hasWidth));
const int height(settings.value(QString("%1/height").arg(kUiTitle), fWindow->height()).toInt(&hasHeight));
const int width(settings.value(QString("%1/width").arg(kWindowTitle), fWindow->width()).toInt(&hasWidth));
const int height(settings.value(QString("%1/height").arg(kWindowTitle), fWindow->height()).toInt(&hasHeight));

if (hasWidth && hasHeight)
fWindow->resize(width, height);
@@ -222,24 +193,14 @@ public:
if (fWindow != nullptr)
{
QSettings settings("falkTX", appName);
settings.setValue(QString("%1/pos_x").arg(kUiTitle), fWindow->x());
settings.setValue(QString("%1/pos_y").arg(kUiTitle), fWindow->y());
settings.setValue(QString("%1/width").arg(kUiTitle), fWindow->width());
settings.setValue(QString("%1/height").arg(kUiTitle), fWindow->height());
settings.setValue(QString("%1/pos_x").arg(kWindowTitle), fWindow->x());
settings.setValue(QString("%1/pos_y").arg(kWindowTitle), fWindow->y());
settings.setValue(QString("%1/width").arg(kWindowTitle), fWindow->width());
settings.setValue(QString("%1/height").arg(kWindowTitle), fWindow->height());
settings.sync();

fWindow->close();

#ifdef BRIDGE_CONTAINER
if (fEmbedContainer != nullptr)
{
fEmbedContainer->close();

delete fEmbedContainer;
fEmbedContainer = nullptr;
}
#endif

delete fWindow;
fWindow = nullptr;
}
@@ -288,35 +249,10 @@ public:
emit setSizeSafeSignal(width, height);
}

#ifdef BRIDGE_CONTAINER
void* getContainerId()
{
CARLA_ASSERT(fWindow != nullptr);
carla_debug("CarlaBridgeToolkitQt::getContainerId()");

if (fEmbedContainer == nullptr)
{
fEmbedContainer = new QEmbedContainer(fWindow);

fWindow->setCentralWidget(fEmbedContainer);
fWindow->adjustSize();

fEmbedContainer->setParent(fWindow);
fEmbedContainer->show();
}

return (void*)fEmbedContainer->winId();
}
#endif

protected:
QApplication* fApp;
QMainWindow* fWindow;

#ifdef BRIDGE_CONTAINER
QEmbedContainer* fEmbedContainer;
#endif

int fMsgTimer;
bool fNeedsShow;

@@ -359,11 +295,6 @@ private slots:
fWindow->resize(width, height);
else
fWindow->setFixedSize(width, height);

#ifdef BRIDGE_CONTAINER
if (fEmbedContainer != nullptr)
fEmbedContainer->setFixedSize(width, height);
#endif
}
};

@@ -384,6 +315,8 @@ CarlaBridgeToolkit* CarlaBridgeToolkit::createNew(CarlaBridgeClient* const clien

CARLA_BRIDGE_END_NAMESPACE

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

#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
# include "resources.qt5.cpp"
#else


+ 116
- 146
source/bridges-ui/Makefile View File

@@ -7,65 +7,48 @@
include ../Makefile.mk

# --------------------------------------------------------------
# Common

BUILD_CXX_FLAGS += -DBUILD_BRIDGE
BUILD_CXX_FLAGS += -DBUILD_BRIDGE -DBUILD_BRIDGE_UI
BUILD_CXX_FLAGS += -I. -I../backend -I../includes -I../utils -isystem ../modules
BUILD_CXX_FLAGS += $(LIBLO_FLAGS)
LINK_FLAGS += $(LIBLO_LIBS)
LINK_FLAGS += $(JUCE_CORE_LIBS)

# --------------------------------------------------------------
# UI bridges

BUILD_UI_FLAGS = $(BUILD_CXX_FLAGS) -DBUILD_BRIDGE_UI
LINK_UI_FLAGS = $(LINK_FLAGS)

LINK_UI_FLAGS += ../modules/juce_core.a
LINK_UI_FLAGS += $(JUCE_CORE_LIBS)

BUILD_UI_LV2_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_LV2
BUILD_UI_VST_FLAGS = $(BUILD_UI_FLAGS) -DBRIDGE_VST
BUILD_LV2_FLAGS = $(BUILD_CXX_FLAGS) -DBRIDGE_LV2
BUILD_VST_FLAGS = $(BUILD_CXX_FLAGS) -DBRIDGE_VST

ifeq ($(CARLA_VESTIGE_HEADER),true)
BUILD_UI_VST_FLAGS += -DVESTIGE_HEADER
BUILD_VST_FLAGS += -DVESTIGE_HEADER
endif

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

BUILD_UI_LV2_GTK2_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_GTK2 -DBRIDGE_LV2_GTK2 $(shell pkg-config --cflags gtk+-2.0)
LINK_UI_LV2_GTK2_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs gtk+-2.0) -ldl

BUILD_UI_LV2_GTK3_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_GTK3 -DBRIDGE_LV2_GTK3 $(shell pkg-config --cflags gtk+-3.0)
LINK_UI_LV2_GTK3_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs gtk+-3.0) -ldl
BUILD_LV2_GTK2_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_GTK2 -DBRIDGE_LV2_GTK2 $(shell pkg-config --cflags gtk+-2.0)
LINK_LV2_GTK2_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs gtk+-2.0) -ldl

BUILD_UI_LV2_QT4_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_QT4 -DBRIDGE_LV2_QT4 $(shell pkg-config --cflags QtCore QtGui)
LINK_UI_LV2_QT4_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs QtCore QtGui) -ldl
BUILD_LV2_GTK3_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_GTK3 -DBRIDGE_LV2_GTK3 $(shell pkg-config --cflags gtk+-3.0)
LINK_LV2_GTK3_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs gtk+-3.0) -ldl

BUILD_UI_LV2_QT5_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_QT5 -DBRIDGE_LV2_QT5 $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets)
LINK_UI_LV2_QT5_FLAGS = $(LINK_UI_FLAGS) $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) -ldl
BUILD_LV2_QT4_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_QT4 -DBRIDGE_LV2_QT4 $(shell pkg-config --cflags QtCore QtGui)
LINK_LV2_QT4_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs QtCore QtGui) -ldl

BUILD_UI_LV2_COCOA_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_COCOA -DBRIDGE_LV2_COCOA
LINK_UI_LV2_COCOA_FLAGS = $(LINK_UI_FLAGS) -ldl
BUILD_LV2_QT5_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_QT5 -DBRIDGE_LV2_QT5 $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets)
LINK_LV2_QT5_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) -ldl

BUILD_UI_LV2_HWND_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_HWND -DBRIDGE_LV2_HWND
LINK_UI_LV2_HWND_FLAGS = $(LINK_FLAGS) $(EXTRA_LIBS) -static -mwindows
BUILD_LV2_X11_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_X11 -DBRIDGE_LV2_X11
LINK_LV2_X11_FLAGS = $(LINK_FLAGS) -ldl

BUILD_UI_LV2_X11_FLAGS = $(BUILD_UI_LV2_FLAGS) -DBRIDGE_X11 -DBRIDGE_LV2_X11
LINK_UI_LV2_X11_FLAGS = $(LINK_UI_FLAGS) -ldl

# --------------------------------------------------------------
BUILD_LV2_COCOA_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_COCOA -DBRIDGE_LV2_COCOA
LINK_LV2_COCOA_FLAGS = $(LINK_FLAGS) -ldl

BUILD_UI_VST_CARBON_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_CARBON -DBRIDGE_VST_CARBON
LINK_UI_VST_CARBON_FLAGS = $(LINK_UI_FLAGS) -ldl
BUILD_LV2_WINDOWS_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_HWND -DBRIDGE_LV2_HWND
LINK_LV2_WINDOWS_FLAGS = $(LINK_FLAGS) -static -mwindows

BUILD_UI_VST_COCOA_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_COCOA -DBRIDGE_VST_COCOA
LINK_UI_VST_COCOA_FLAGS = $(LINK_UI_FLAGS) -ldl

BUILD_UI_VST_HWND_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_HWND -DBRIDGE_VST_HWND
LINK_UI_VST_HWND_FLAGS = $(LINK_FLAGS) $(EXTRA_LIBS) -static -mwindows

BUILD_UI_VST_X11_FLAGS = $(BUILD_UI_VST_FLAGS) -DBRIDGE_X11 -DBRIDGE_VST_X11
LINK_UI_VST_X11_FLAGS = $(LINK_UI_FLAGS) -ldl
BUILD_VST_X11_FLAGS = $(BUILD_VST_FLAGS) -DBRIDGE_X11 -DBRIDGE_VST_X11
LINK_VST_X11_FLAGS = $(LINK_FLAGS) -ldl

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

@@ -86,52 +69,49 @@ TARGETS += ui_lv2-qt5
endif

ifeq ($(HAVE_X11),true)
# TARGETS += ui_lv2-x11
# TARGETS += ui_vst-x11
TARGETS += ui_lv2-x11
TARGETS += ui_vst-x11
endif

ifeq ($(MACOS),true)
# TARGETS += ui_lv2-cocoa
# TARGETS += ui_vst-carbon
# TARGETS += ui_vst-cocoa
TARGETS += ui_lv2-cocoa
endif

ifeq ($(WIN32),true)
# TARGETS += ui_lv2-windows
# TARGETS += ui_vst-hwnd
TARGETS += ui_lv2-windows
endif

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

all: $(TARGETS)
# all: $(TARGETS)

ui_lv2-gtk2: ../../bin/carla-bridge-lv2-gtk2
ui_lv2-gtk3: ../../bin/carla-bridge-lv2-gtk3
ui_lv2-qt4: ../../bin/carla-bridge-lv2-qt4
ui_lv2-qt5: ../../bin/carla-bridge-lv2-qt5
# TODO
all:

ui_lv2-gtk2: ../../bin/carla-bridge-lv2-gtk2
ui_lv2-gtk3: ../../bin/carla-bridge-lv2-gtk3
ui_lv2-qt4: ../../bin/carla-bridge-lv2-qt4
ui_lv2-qt5: ../../bin/carla-bridge-lv2-qt5
ui_lv2-x11: ../../bin/carla-bridge-lv2-x11
ui_lv2-cocoa: ../../bin/carla-bridge-lv2-cocoa
ui_lv2-windows: ../../bin/carla-bridge-lv2-windows.exe
ui_lv2-x11: ../../bin/carla-bridge-lv2-x11

ui_vst-carbon: ../../bin/carla-bridge-vst-carbon
ui_vst-cocoa: ../../bin/carla-bridge-vst-cocoa
ui_vst-hwnd: ../../bin/carla-bridge-vst-hwnd.exe
ui_vst-x11: ../../bin/carla-bridge-vst-x11
ui_vst-x11: ../../bin/carla-bridge-vst-x11

# --------------------------------------------------------------
# UI common

OBJS_UI_LV2_LIBS = \
OBJS_LV2_LIBS = \
../modules/juce_core.a \
../modules/lilv.a

OBJS_UI_VST_LIBS =
OBJS_VST_LIBS = \
../modules/juce_core.a

%__lv2.o: %.cpp
$(CXX) $< $(BUILD_UI_LV2_FLAGS) -c -o $@
$(CXX) $< $(BUILD_LV2_FLAGS) -c -o $@

%__vst.o: %.cpp
$(CXX) $< $(BUILD_UI_VST_FLAGS) -c -o $@
$(CXX) $< $(BUILD_VST_FLAGS) -c -o $@

resources.qt4.cpp: ../../resources/resources-theme.qrc
$(RCC_QT4) $< -o $@
@@ -148,139 +128,129 @@ CarlaBridgeToolkitQt5.moc: CarlaBridgeToolkitQt.cpp
# --------------------------------------------------------------
# ui_lv2-gtk2

OBJS_UI_LV2_GTK2 = CarlaBridgeUI-LV2__lv2-gtk2.o \
CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitGtk__lv2-gtk2.o
OBJS_LV2_GTK2 = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitGtk__lv2-gtk2.o \
CarlaBridgeUI-LV2__lv2-gtk2.o

../../bin/carla-bridge-lv2-gtk2: $(OBJS_UI_LV2_GTK2) $(OBJS_UI_LV2_LIBS)
$(CXX) $^ $(LINK_UI_LV2_GTK2_FLAGS) -o $@
../../bin/carla-bridge-lv2-gtk2: $(OBJS_LV2_GTK2) $(OBJS_LV2_LIBS)
$(CXX) $^ $(LINK_LV2_GTK2_FLAGS) -o $@

%__lv2-gtk2.o: %.cpp
$(CXX) $< $(BUILD_UI_LV2_GTK2_FLAGS) -c -o $@
$(CXX) $< $(BUILD_LV2_GTK2_FLAGS) -c -o $@

# --------------------------------------------------------------
# ui_lv2-gtk3

OBJS_UI_LV2_GTK3 = CarlaBridgeUI-LV2__lv2-gtk3.o \
CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitGtk__lv2-gtk3.o
OBJS_LV2_GTK3 = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitGtk__lv2-gtk3.o \
CarlaBridgeUI-LV2__lv2-gtk3.o

../../bin/carla-bridge-lv2-gtk3: $(OBJS_UI_LV2_GTK3) $(OBJS_UI_LV2_LIBS)
$(CXX) $^ $(LINK_UI_LV2_GTK3_FLAGS) -o $@
../../bin/carla-bridge-lv2-gtk3: $(OBJS_LV2_GTK3) $(OBJS_LV2_LIBS)
$(CXX) $^ $(LINK_LV2_GTK3_FLAGS) -o $@

%__lv2-gtk3.o: %.cpp
$(CXX) $< $(BUILD_UI_LV2_GTK3_FLAGS) -c -o $@
$(CXX) $< $(BUILD_LV2_GTK3_FLAGS) -c -o $@

# --------------------------------------------------------------
# ui_lv2-qt4

OBJS_UI_LV2_QT4 = CarlaBridgeUI-LV2__lv2-qt4.o \
CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-qt4.o
OBJS_LV2_QT4 = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitQt__lv2-qt4.o \
CarlaBridgeUI-LV2__lv2-qt4.o

../../bin/carla-bridge-lv2-qt4: $(OBJS_UI_LV2_QT4) $(OBJS_UI_LV2_LIBS) ../modules/theme.qt4.a
$(CXX) $^ $(LINK_UI_LV2_QT4_FLAGS) -o $@
../../bin/carla-bridge-lv2-qt4: $(OBJS_LV2_QT4) $(OBJS_LV2_LIBS) ../modules/theme.qt4.a
$(CXX) $^ $(LINK_LV2_QT4_FLAGS) -o $@

%__lv2-qt4.o: %.cpp CarlaBridgeToolkitQt4.moc resources.qt4.cpp
$(CXX) $< $(BUILD_UI_LV2_QT4_FLAGS) -I../modules/theme -c -o $@
$(CXX) $< $(BUILD_LV2_QT4_FLAGS) -I../modules/theme -c -o $@

# --------------------------------------------------------------
# ui_lv2-qt5

OBJS_UI_LV2_QT5 = CarlaBridgeUI-LV2__lv2-qt5.o \
CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-qt5.o
OBJS_LV2_QT5 = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitQt__lv2-qt5.o \
CarlaBridgeUI-LV2__lv2-qt5.o

../../bin/carla-bridge-lv2-qt5: $(OBJS_UI_LV2_QT5) $(OBJS_UI_LV2_LIBS) ../modules/theme.qt5.a
$(CXX) $^ $(LINK_UI_LV2_QT5_FLAGS) -o $@
../../bin/carla-bridge-lv2-qt5: $(OBJS_LV2_QT5) $(OBJS_LV2_LIBS) ../modules/theme.qt5.a
$(CXX) $^ $(LINK_LV2_QT5_FLAGS) -o $@

%__lv2-qt5.o: %.cpp CarlaBridgeToolkitQt5.moc resources.qt5.cpp
$(CXX) $< $(BUILD_UI_LV2_QT5_FLAGS) -I../modules/theme -c -o $@
$(CXX) $< $(BUILD_LV2_QT5_FLAGS) -I../modules/theme -c -o $@

# --------------------------------------------------------------
# ui_lv2-cocoa
# ui_lv2-x11

# OBJS_UI_LV2_COCOA = CarlaBridgeUI-LV2__lv2-cocoa.o \
# CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
# CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-cocoa.o
#
# ../../bin/carla-bridge-lv2-cocoa: $(OBJS_UI_LV2_COCOA) $(OBJS_UI_LV2_LIBS)
# $(CXX) $^ $(LINK_UI_LV2_COCOA_FLAGS) -o $@
#
# %__lv2-cocoa.o: %.cpp
# $(CXX) $< $(BUILD_UI_LV2_COCOA_FLAGS) -c -o $@
OBJS_LV2_X11 = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitPlugin__lv2-x11.o \
CarlaBridgeUI-LV2__lv2-x11.o

# --------------------------------------------------------------
# ui_lv2-windows
../../bin/carla-bridge-lv2-x11: $(OBJS_LV2_X11) $(OBJS_LV2_LIBS)
$(CXX) $^ $(LINK_LV2_X11_FLAGS) -o $@

# OBJS_UI_LV2_WIN32 = CarlaBridgeUI-LV2__lv2-windows.o \
# CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
# CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-windows.o
#
# ../../bin/carla-bridge-lv2-windows.exe: $(OBJS_UI_LV2_WIN32) $(OBJS_UI_LV2_LIBS)
# $(CXX) $^ $(LINK_UI_LV2_WIN32_FLAGS) -o $@
#
# %__lv2-windows.o: %.cpp
# $(CXX) $< $(BUILD_UI_LV2_WIN32_FLAGS) -c -o $@
%__lv2-x11.o: %.cpp
$(CXX) $< $(BUILD_LV2_X11_FLAGS) -c -o $@

# --------------------------------------------------------------
# ui_lv2-x11
# ui_lv2-cocoa

# OBJS_UI_LV2_X11 = CarlaBridgeUI-LV2__lv2-x11.o \
# CarlaBridgeClient__lv2.o CarlaBridgeOsc__lv2.o \
# CarlaBridgeToolkit__lv2.o CarlaBridgeToolkitQt__lv2-x11.o
#
# ../../bin/carla-bridge-lv2-x11: $(OBJS_UI_LV2_X11) $(OBJS_UI_LV2_LIBS)
# $(CXX) $^ $(LINK_UI_LV2_X11_FLAGS) -o $@
#
# %__lv2-x11.o: %.cpp
# $(CXX) $< $(BUILD_UI_LV2_X11_FLAGS) -c -o $@
OBJS_LV2_COCOA = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitPlugin__lv2-cocoa.o \
CarlaBridgeUI-LV2__lv2-cocoa.o

# --------------------------------------------------------------
# ui_vst-mac
../../bin/carla-bridge-lv2-cocoa: $(OBJS_LV2_COCOA) $(OBJS_LV2_LIBS)
$(CXX) $^ $(LINK_LV2_COCOA_FLAGS) -o $@

# OBJS_UI_VST_MAC = CarlaBridgeUI-VST__vst-mac.o \
# CarlaBridgeClient__vst.o CarlaBridgeOsc__vst.o \
# CarlaBridgeToolkit__vst.o CarlaBridgeToolkitQt__vst-mac.o
#
# ../../bin/carla-bridge-vst-mac: $(OBJS_UI_VST_MAC) $(OBJS_UI_VST_LIBS) ../modules/theme.a
# $(CXX) $^ $(LINK_UI_VST_MAC_FLAGS) -o $@
#
# %__vst-mac.o: %.cpp
# $(CXX) $< $(BUILD_UI_VST_MAC_FLAGS) -c -o $@
%__lv2-cocoa.o: %.cpp
$(CXX) $< $(BUILD_LV2_COCOA_FLAGS) -c -o $@

# --------------------------------------------------------------
# ui_vst-hwnd
# ui_lv2-windows

# OBJS_UI_VST_HWND = CarlaBridgeUI-VST__vst-hwnd.o \
# CarlaBridgeClient__vst.o CarlaBridgeOsc__vst.o \
# CarlaBridgeToolkit__vst.o CarlaBridgeToolkitQt__vst-hwnd.o
#
# ../../bin/carla-bridge-vst-hwnd.exe: $(OBJS_UI_VST_HWND) $(OBJS_UI_VST_LIBS) ../modules/theme.a
# $(CXX) $^ $(LINK_UI_VST_HWND_FLAGS) -o $@
#
# %__vst-hwnd.o: %.cpp
# $(CXX) $< $(BUILD_UI_VST_HWND_FLAGS) -c -o $@
OBJS_LV2_WINDOWS = \
CarlaBridgeClient__lv2.o \
CarlaBridgeOsc__lv2.o \
CarlaBridgeToolkitPlugin__lv2-windows.o \
CarlaBridgeUI-LV2__lv2-windows.o

../../bin/carla-bridge-lv2-windows.exe: $(OBJS_LV2_WINDOWS) $(OBJS_LV2_LIBS)
$(CXX) $^ $(LINK_LV2_WINDOWS_FLAGS) -o $@

%__lv2-windows.o: %.cpp
$(CXX) $< $(BUILD_LV2_WINDOWS_FLAGS) -c -o $@

# --------------------------------------------------------------
# ui_vst-x11

# OBJS_UI_VST_X11 = CarlaBridgeUI-VST__vst-x11.o \
# CarlaBridgeClient__vst.o CarlaBridgeOsc__vst.o \
# CarlaBridgeToolkit__vst.o CarlaBridgeToolkitQt__vst-x11.o
#
# ../../bin/carla-bridge-vst-x11: $(OBJS_UI_VST_X11) $(OBJS_UI_VST_LIBS) ../modules/theme.a
# $(CXX) $^ $(LINK_UI_VST_X11_FLAGS) -o $@
#
# %__vst-x11.o: %.cpp
# $(CXX) $< $(BUILD_UI_VST_X11_FLAGS) -c -o $@
OBJS_VST_X11 = \
CarlaBridgeClient__vst.o \
CarlaBridgeOsc__vst.o \
CarlaBridgeToolkitPlugin__vst-x11.o \
CarlaBridgeUI-VST__vst-x11.o \

../../bin/carla-bridge-vst-x11: $(OBJS_VST_X11) $(OBJS_VST_LIBS) ../modules/theme.a
$(CXX) $^ $(LINK_VST_X11_FLAGS) -o $@

%__vst-x11.o: %.cpp
$(CXX) $< $(BUILD_VST_X11_FLAGS) -c -o $@

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

clean:
$(RM) *.moc *.o
$(RM) resources.*.cpp
$(RM) ../../bin/carla-bridge-*
$(RM) ../../bin/carla-bridge-lv2-* ../../bin/carla-bridge-vst-*

debug:
$(MAKE) DEBUG=true


Loading…
Cancel
Save