/* * Carla plugin database code * Copyright (C) 2011-2019 Filipe Coelho * * 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 doc/GPL.txt file. */ #ifndef CARLA_DATABASE_HPP_INCLUDED #define CARLA_DATABASE_HPP_INCLUDED //--------------------------------------------------------------------------------------------------------------------- // Imports (Global) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wconversion" # pragma GCC diagnostic ignored "-Weffc++" # pragma GCC diagnostic ignored "-Wsign-conversion" #endif #include #include #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) # pragma GCC diagnostic pop #endif //--------------------------------------------------------------------------------------------------------------------- // Imports (Custom) #include "CarlaJuceUtils.hpp" class CarlaHost; // -------------------------------------------------------------------------------------------------------------------- // Separate Thread for Plugin Search class SearchPluginsThread : public QThread { Q_OBJECT signals: void pluginLook(float percent, QString plugin); public: SearchPluginsThread(QObject* parent, QString pathBinaries); ~SearchPluginsThread() override; private: struct PrivateData; PrivateData* const self; protected: void run() override; CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SearchPluginsThread) }; // -------------------------------------------------------------------------------------------------------------------- // Plugin Refresh Dialog class PluginRefreshW : public QDialog { Q_OBJECT public: PluginRefreshW(QWidget* parent, const CarlaHost& host); ~PluginRefreshW() override; void getValues(QString& audioDevice, uint& bufferSize, double& sampleRate); private: struct PrivateData; PrivateData* const self; protected: void closeEvent(QCloseEvent* event) override; private slots: void slot_saveSettings(); void slot_start(); void slot_skip(); void slot_checkTools(); void slot_handlePluginLook(float percent, QString plugin); void slot_handlePluginThreadFinished(); private: CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginRefreshW) }; // -------------------------------------------------------------------------------------------------------------------- // Plugin Database Dialog class PluginDatabaseW : public QDialog { Q_OBJECT public: PluginDatabaseW(QWidget* parent, const CarlaHost& host, bool hasCanvas, bool hasCanvasGL); ~PluginDatabaseW() override; private: struct PrivateData; PrivateData* const self; protected: void showEvent(QShowEvent* event) override; private slots: void slot_cellClicked(int row, int column); void slot_cellDoubleClicked(int row, int column); void slot_addPlugin(); void slot_checkPlugin(int row); void slot_checkFilters(); void slot_refreshPlugins(); void slot_clearFilters(); void slot_saveSettings(); private: CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginDatabaseW) }; // -------------------------------------------------------------------------------------------------------------------- // Jack Application Dialog class JackApplicationW : public QDialog { Q_OBJECT public: JackApplicationW(QWidget* parent, const QString& projectFilename); ~JackApplicationW() override; void getCommandAndFlags(QString& command, QString& name, QString& labelSetup); private: struct PrivateData; PrivateData* const self; private slots: void slot_commandChanged(QString text); void slot_sessionManagerChanged(int index); void slot_saveSettings(); private: CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(JackApplicationW) }; //--------------------------------------------------------------------------------------------------------------------- #endif // CARLA_DATABASE_HPP_INCLUDED