|
|
@@ -1,153 +0,0 @@ |
|
|
|
/* |
|
|
|
* Carla Bridge Toolkit, Plugin version |
|
|
|
* Copyright (C) 2011-2013 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 |
|
|
|
* published by the Free Software Foundation; either version 2 of |
|
|
|
* the License, or any later version. |
|
|
|
* |
|
|
|
* This program is distributed in the hope that it will be useful, |
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
* GNU General Public License for more details. |
|
|
|
* |
|
|
|
* For a full copy of the GNU General Public License see the GPL.txt file |
|
|
|
*/ |
|
|
|
|
|
|
|
#include "CarlaBridgeClient.hpp" |
|
|
|
#include "CarlaBridgeToolkit.hpp" |
|
|
|
#include "CarlaPlugin.hpp" |
|
|
|
|
|
|
|
CARLA_BRIDGE_START_NAMESPACE |
|
|
|
|
|
|
|
static int qargc = 0; |
|
|
|
static char* qargv[0] = {}; |
|
|
|
|
|
|
|
// ------------------------------------------------------------------------- |
|
|
|
|
|
|
|
class CarlaBridgeToolkitPlugin : public CarlaBridgeToolkit/*, |
|
|
|
public CarlaBackend::CarlaPluginGUI::Callback*/ |
|
|
|
{ |
|
|
|
public: |
|
|
|
CarlaBridgeToolkitPlugin(CarlaBridgeClient* const client, const char* const uiTitle) |
|
|
|
: CarlaBridgeToolkit(client, uiTitle) |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::CarlaBridgeToolkitPlugin(%p, \"%s\")", client, uiTitle); |
|
|
|
|
|
|
|
app = nullptr; |
|
|
|
gui = nullptr; |
|
|
|
|
|
|
|
m_uiQuit = false; |
|
|
|
|
|
|
|
init(); |
|
|
|
} |
|
|
|
|
|
|
|
~CarlaBridgeToolkitPlugin() |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::~CarlaBridgeToolkitPlugin()"); |
|
|
|
CARLA_ASSERT(! app); |
|
|
|
CARLA_ASSERT(! gui); |
|
|
|
} |
|
|
|
|
|
|
|
void init() |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::init()"); |
|
|
|
CARLA_ASSERT(! app); |
|
|
|
CARLA_ASSERT(! gui); |
|
|
|
|
|
|
|
app = new QApplication(qargc, qargv); |
|
|
|
|
|
|
|
gui = new CarlaBackend::CarlaPluginGUI(nullptr, this); |
|
|
|
} |
|
|
|
|
|
|
|
void exec(const bool showGui) |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::exec(%s)", bool2str(showGui)); |
|
|
|
CARLA_ASSERT(app); |
|
|
|
CARLA_ASSERT(gui); |
|
|
|
CARLA_ASSERT(client); |
|
|
|
|
|
|
|
if (showGui) |
|
|
|
{ |
|
|
|
show(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
app->setQuitOnLastWindowClosed(false); |
|
|
|
client->sendOscUpdate(); |
|
|
|
client->sendOscBridgeUpdate(); |
|
|
|
} |
|
|
|
|
|
|
|
m_uiQuit = showGui; |
|
|
|
|
|
|
|
// Main loop |
|
|
|
app->exec(); |
|
|
|
} |
|
|
|
|
|
|
|
void quit() |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::quit()"); |
|
|
|
CARLA_ASSERT(app); |
|
|
|
|
|
|
|
if (gui) |
|
|
|
{ |
|
|
|
gui->close(); |
|
|
|
|
|
|
|
delete gui; |
|
|
|
gui = nullptr; |
|
|
|
} |
|
|
|
|
|
|
|
if (app) |
|
|
|
{ |
|
|
|
if (! app->closingDown()) |
|
|
|
app->quit(); |
|
|
|
|
|
|
|
delete app; |
|
|
|
app = nullptr; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void show() |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::show()"); |
|
|
|
CARLA_ASSERT(gui); |
|
|
|
|
|
|
|
if (gui && m_uiShow) |
|
|
|
gui->setVisible(true); |
|
|
|
} |
|
|
|
|
|
|
|
void hide() |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::hide()"); |
|
|
|
CARLA_ASSERT(gui); |
|
|
|
|
|
|
|
if (gui && m_uiShow) |
|
|
|
gui->setVisible(false); |
|
|
|
} |
|
|
|
|
|
|
|
void resize(const int width, const int height) |
|
|
|
{ |
|
|
|
carla_debug("CarlaBridgeToolkitPlugin::resize(%i, %i)", width, height); |
|
|
|
CARLA_ASSERT(gui); |
|
|
|
|
|
|
|
if (gui) |
|
|
|
gui->setNewSize(width, height); |
|
|
|
} |
|
|
|
|
|
|
|
private: |
|
|
|
QApplication* fApp; |
|
|
|
bool fQuit; |
|
|
|
//CarlaBackend::CarlaPluginGUI* gui; |
|
|
|
|
|
|
|
//void guiClosedCallback(); |
|
|
|
}; |
|
|
|
|
|
|
|
// ------------------------------------------------------------------------- |
|
|
|
|
|
|
|
CarlaBridgeToolkit* CarlaBridgeToolkit::createNew(CarlaBridgeClient* const client, const char* const uiTitle) |
|
|
|
{ |
|
|
|
return new CarlaBridgeToolkitPlugin(client, uiTitle); |
|
|
|
} |
|
|
|
|
|
|
|
CARLA_BRIDGE_END_NAMESPACE |