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