|
- /*
- * Common Carla code
- * 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
- * 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 FRONTEND_CARLA_SHARED_HPP_INCLUDED
- #define FRONTEND_CARLA_SHARED_HPP_INCLUDED
-
- // ------------------------------------------------------------------------------------------------------------
- // Imports (Global)
-
- #include <QtGui/QIcon>
- #include <QtWidgets/QMessageBox>
-
- class QLineEdit;
-
- // ------------------------------------------------------------------------------------------------------------
- // Imports (Custom)
-
- #include "CarlaBackendUtils.hpp"
-
- // ------------------------------------------------------------------------------------------------------------
- // Set Version
-
- #define VERSION "1.9.5 (2.0-beta3)"
-
- // ------------------------------------------------------------------------------------------------------------
- // Set TMP
-
- extern QString TMP;
-
- // ------------------------------------------------------------------------------------------------------------
- // Set HOME
-
- extern QString HOME;
-
- // ------------------------------------------------------------------------------------------------------------
- // Set PATH
-
- extern QStringList PATH;
-
- // ------------------------------------------------------------------------------------------------------------
- // Static MIDI CC list
-
- extern QStringList MIDI_CC_LIST;
-
- // ------------------------------------------------------------------------------------------------------------
- // Carla Settings keys
-
- #define CARLA_KEY_MAIN_PROJECT_FOLDER "Main/ProjectFolder" // str
- #define CARLA_KEY_MAIN_USE_PRO_THEME "Main/UseProTheme" // bool
- #define CARLA_KEY_MAIN_PRO_THEME_COLOR "Main/ProThemeColor" // str
- #define CARLA_KEY_MAIN_REFRESH_INTERVAL "Main/RefreshInterval" // int
-
- #define CARLA_KEY_CANVAS_THEME "Canvas/Theme" // str
- #define CARLA_KEY_CANVAS_SIZE "Canvas/Size" // str "NxN"
- #define CARLA_KEY_CANVAS_USE_BEZIER_LINES "Canvas/UseBezierLines" // bool
- #define CARLA_KEY_CANVAS_AUTO_HIDE_GROUPS "Canvas/AutoHideGroups" // bool
- #define CARLA_KEY_CANVAS_EYE_CANDY "Canvas/EyeCandy" // enum
- #define CARLA_KEY_CANVAS_USE_OPENGL "Canvas/UseOpenGL" // bool
- #define CARLA_KEY_CANVAS_ANTIALIASING "Canvas/Antialiasing" // enum
- #define CARLA_KEY_CANVAS_HQ_ANTIALIASING "Canvas/HQAntialiasing" // bool
- #define CARLA_KEY_CUSTOM_PAINTING "UseCustomPainting" // bool
-
- #define CARLA_KEY_ENGINE_DRIVER_PREFIX "Engine/Driver-"
- #define CARLA_KEY_ENGINE_AUDIO_DRIVER "Engine/AudioDriver" // str
- #define CARLA_KEY_ENGINE_PROCESS_MODE "Engine/ProcessMode" // enum
- #define CARLA_KEY_ENGINE_TRANSPORT_MODE "Engine/TransportMode" // enum
- #define CARLA_KEY_ENGINE_FORCE_STEREO "Engine/ForceStereo" // bool
- #define CARLA_KEY_ENGINE_PREFER_PLUGIN_BRIDGES "Engine/PreferPluginBridges" // bool
- #define CARLA_KEY_ENGINE_PREFER_UI_BRIDGES "Engine/PreferUiBridges" // bool
- #define CARLA_KEY_ENGINE_UIS_ALWAYS_ON_TOP "Engine/UIsAlwaysOnTop" // bool
- #define CARLA_KEY_ENGINE_MAX_PARAMETERS "Engine/MaxParameters" // int
- #define CARLA_KEY_ENGINE_UI_BRIDGES_TIMEOUT "Engine/UiBridgesTimeout" // int
-
- #define CARLA_KEY_PATHS_LADSPA "Paths/LADSPA"
- #define CARLA_KEY_PATHS_DSSI "Paths/DSSI"
- #define CARLA_KEY_PATHS_LV2 "Paths/LV2"
- #define CARLA_KEY_PATHS_VST "Paths/VST"
- #define CARLA_KEY_PATHS_VST3 "Paths/VST3"
- #define CARLA_KEY_PATHS_AU "Paths/AU"
- #define CARLA_KEY_PATHS_GIG "Paths/GIG"
- #define CARLA_KEY_PATHS_SF2 "Paths/SF2"
- #define CARLA_KEY_PATHS_SFZ "Paths/SFZ"
-
- // ------------------------------------------------------------------------------------------------------------
- // Global Carla object
-
- struct CarlaObject {
- // Host library object
- void* host;
- // Host Window
- void* gui;
- // is controller
- bool isControl;
- // is running local
- bool isLocal;
- // is plugin
- bool isPlugin;
- // current buffer size
- uint32_t bufferSize;
- // current sample rate
- double sampleRate;
- // current process mode
- EngineProcessMode processMode;
- // check if process mode is forced (rack/patchbay)
- bool processModeForced;
- // current transport mode
- EngineTransportMode transportMode;
- // current max parameters
- uint maxParameters;
- // binary dir
- QString pathBinaries;
- // resources dir
- QString pathResources;
- // default paths
- QStringList DEFAULT_LADSPA_PATH;
- QStringList DEFAULT_DSSI_PATH;
- QStringList DEFAULT_LV2_PATH;
- QStringList DEFAULT_VST_PATH;
- QStringList DEFAULT_VST3_PATH;
- QStringList DEFAULT_AU_PATH;
- QStringList DEFAULT_GIG_PATH;
- QStringList DEFAULT_SF2_PATH;
- QStringList DEFAULT_SFZ_PATH;
- };
-
- extern CarlaObject gCarla;
-
- // ------------------------------------------------------------------------------------------------------------
- // find tool
-
- QString findTool(const QString& toolName);
-
- // ------------------------------------------------------------------------------------------------------------
- // Init host
-
- void initHost(const char* const initName, const char* const libPrefix = nullptr, bool failError = true);
-
- // ------------------------------------------------------------------------------------------------------------
- // Get Icon from user theme, using our own as backup (Oxygen)
-
- QIcon getIcon(const QString& icon, const int size = 16);
-
- // ------------------------------------------------------------------------------------------------------------
- // Signal handler
-
- void setUpSignals();
-
- // ------------------------------------------------------------------------------------------------------------
- // QLineEdit and QPushButton combo
-
- QString getAndSetPath(QWidget* const parent, const QString& currentPath, QLineEdit* const lineEdit);
-
- // ------------------------------------------------------------------------------------------------------------
- // Custom MessageBox
-
- int CustomMessageBox(QWidget* const parent, const QMessageBox::Icon icon, const QString& title, const QString& text, const QString& extraText = "",
- const QMessageBox::StandardButtons buttons = QMessageBox::Yes|QMessageBox::No,
- const QMessageBox::StandardButton defButton = QMessageBox::No);
-
- // ------------------------------------------------------------------------------------------------------------
-
- #endif // FRONTEND_CARLA_SHARED_HPP_INCLUDED
|