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