Signed-off-by: falkTX <falktx@falktx.com>tags/v2.1-rc1
@@ -29,6 +29,7 @@ | |||
*.vst3 | |||
# Binary dir | |||
bin/carla | |||
bin/carla.lv2/carla-bridge-* | |||
bin/jack/ | |||
bin/styles/ | |||
@@ -48,7 +49,11 @@ qrc_resources.cpp | |||
# Python files | |||
*.pyc | |||
# Qt files | |||
*_rc.hpp | |||
*_rc.py | |||
ui_*.hpp | |||
ui_*.py | |||
# Misc files | |||
@@ -71,80 +71,6 @@ RES = \ | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
LIBS = $(MODULEDIR)/carla_engine.a | |||
LIBS += $(MODULEDIR)/carla_plugin.a | |||
LIBS += $(MODULEDIR)/jackbridge.a | |||
LIBS += $(MODULEDIR)/audio_decoder.a | |||
LIBS += $(MODULEDIR)/lilv.a | |||
LIBS += $(MODULEDIR)/native-plugins.a | |||
LIBS += $(MODULEDIR)/rtmempool.a | |||
LIBS += $(MODULEDIR)/sfzero.a | |||
LIBS += $(MODULEDIR)/water.a | |||
ifeq ($(HAVE_DGL),true) | |||
LIBS += $(MODULEDIR)/dgl.a | |||
endif | |||
ifeq ($(HAVE_HYLIA),true) | |||
LIBS += $(MODULEDIR)/hylia.a | |||
endif | |||
ifeq ($(USING_JUCE),true) | |||
LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
LIBS += $(MODULEDIR)/juce_audio_devices.a | |||
LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
LIBS += $(MODULEDIR)/juce_core.a | |||
LIBS += $(MODULEDIR)/juce_data_structures.a | |||
LIBS += $(MODULEDIR)/juce_events.a | |||
LIBS += $(MODULEDIR)/juce_graphics.a | |||
LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
ifeq ($(MACOS),true) | |||
LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
else | |||
LIBS += $(MODULEDIR)/rtaudio.a | |||
LIBS += $(MODULEDIR)/rtmidi.a | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
LINK_FLAGS += $(QT5_LIBS) | |||
LINK_FLAGS += $(HYLIA_LIBS) | |||
LINK_FLAGS += $(JACKBRIDGE_LIBS) | |||
LINK_FLAGS += $(LILV_LIBS) | |||
LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||
LINK_FLAGS += $(WATER_LIBS) | |||
LINK_FLAGS += $(LIBLO_LIBS) | |||
LINK_FLAGS += $(MAGIC_LIBS) | |||
LINK_FLAGS += $(FLUIDSYNTH_LIBS) | |||
LINK_FLAGS += $(X11_LIBS) | |||
ifeq ($(USING_JUCE),true) | |||
LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
LINK_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
ifeq ($(MACOS),true) | |||
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
endif | |||
else | |||
LINK_FLAGS += $(RTAUDIO_LIBS) | |||
LINK_FLAGS += $(RTMIDI_LIBS) | |||
endif | |||
ifeq ($(JACKBRIDGE_DIRECT),true) | |||
LINK_FLAGS += $(JACK_LIBS) | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
all: $(TARGETS) $(UIs) $(RES) | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
@@ -20,33 +20,59 @@ OBJDIR := $(CWD)/../build/frontend/Release | |||
MODULEDIR := $(CWD)/../build/modules/Release | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
BUILD_CXX_FLAGS += -I. -I$(CWD) -I$(CWD)/backend -I$(CWD)/includes -I$(CWD)/modules -I$(CWD)/utils | |||
BUILD_CXX_FLAGS += -DCARLA_SKIP_HOST_COMMON | |||
BUILD_CXX_FLAGS += $(FLUIDSYNTH_FLAGS) | |||
BUILD_CXX_FLAGS += $(QT5_FLAGS) | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# UI code | |||
UIs = \ | |||
ui_carla_about.hpp \ | |||
ui_carla_about.py \ | |||
ui_carla_about_juce.hpp \ | |||
ui_carla_about_juce.py \ | |||
ui_carla_add_jack.hpp \ | |||
ui_carla_add_jack.py \ | |||
ui_carla_database.hpp \ | |||
ui_carla_database.py \ | |||
ui_carla_edit.hpp \ | |||
ui_carla_edit.py \ | |||
ui_carla_host.hpp \ | |||
ui_carla_host.py \ | |||
ui_carla_osc_connect.py \ | |||
ui_carla_osc_connect.hpp \ | |||
ui_carla_parameter.hpp \ | |||
ui_carla_parameter.py \ | |||
ui_carla_plugin_calf.hpp \ | |||
ui_carla_plugin_calf.py \ | |||
ui_carla_plugin_classic.hpp \ | |||
ui_carla_plugin_classic.py \ | |||
ui_carla_plugin_compact.hpp \ | |||
ui_carla_plugin_compact.py \ | |||
ui_carla_plugin_default.hpp \ | |||
ui_carla_plugin_default.py \ | |||
ui_carla_plugin_presets.hpp \ | |||
ui_carla_plugin_presets.py \ | |||
ui_carla_refresh.hpp \ | |||
ui_carla_refresh.py \ | |||
ui_carla_settings.hpp \ | |||
ui_carla_settings.py \ | |||
ui_carla_settings_driver.hpp \ | |||
ui_carla_settings_driver.py \ | |||
ui_inputdialog_value.hpp \ | |||
ui_inputdialog_value.py \ | |||
ui_midipattern.hpp \ | |||
ui_midipattern.py | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Resources | |||
RES = \ | |||
resources_rc.hpp \ | |||
resources_rc.py \ | |||
$(BINDIR)/resources/patchcanvas \ | |||
$(BINDIR)/resources/widgets \ | |||
@@ -85,13 +111,114 @@ RES = \ | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
LIBS = $(MODULEDIR)/carla_engine.a | |||
LIBS += $(MODULEDIR)/carla_plugin.a | |||
LIBS += $(MODULEDIR)/jackbridge.a | |||
LIBS += $(MODULEDIR)/audio_decoder.a | |||
LIBS += $(MODULEDIR)/lilv.a | |||
LIBS += $(MODULEDIR)/native-plugins.a | |||
LIBS += $(MODULEDIR)/rtmempool.a | |||
LIBS += $(MODULEDIR)/sfzero.a | |||
LIBS += $(MODULEDIR)/water.a | |||
ifeq ($(HAVE_DGL),true) | |||
LIBS += $(MODULEDIR)/dgl.a | |||
endif | |||
ifeq ($(HAVE_HYLIA),true) | |||
LIBS += $(MODULEDIR)/hylia.a | |||
endif | |||
ifeq ($(USING_JUCE),true) | |||
LIBS += $(MODULEDIR)/juce_audio_basics.a | |||
LIBS += $(MODULEDIR)/juce_audio_devices.a | |||
LIBS += $(MODULEDIR)/juce_audio_processors.a | |||
LIBS += $(MODULEDIR)/juce_core.a | |||
LIBS += $(MODULEDIR)/juce_data_structures.a | |||
LIBS += $(MODULEDIR)/juce_events.a | |||
LIBS += $(MODULEDIR)/juce_graphics.a | |||
LIBS += $(MODULEDIR)/juce_gui_basics.a | |||
ifeq ($(MACOS),true) | |||
LIBS += $(MODULEDIR)/juce_gui_extra.a | |||
endif | |||
else | |||
LIBS += $(MODULEDIR)/rtaudio.a | |||
LIBS += $(MODULEDIR)/rtmidi.a | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
LINK_FLAGS += $(QT5_LIBS) | |||
LINK_FLAGS += $(HYLIA_LIBS) | |||
LINK_FLAGS += $(JACKBRIDGE_LIBS) | |||
LINK_FLAGS += $(LILV_LIBS) | |||
LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | |||
LINK_FLAGS += $(RTMEMPOOL_LIBS) | |||
LINK_FLAGS += $(WATER_LIBS) | |||
LINK_FLAGS += $(LIBLO_LIBS) | |||
LINK_FLAGS += $(MAGIC_LIBS) | |||
LINK_FLAGS += $(FLUIDSYNTH_LIBS) | |||
LINK_FLAGS += $(X11_LIBS) | |||
ifeq ($(USING_JUCE),true) | |||
LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | |||
LINK_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS) | |||
LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS) | |||
LINK_FLAGS += $(JUCE_CORE_LIBS) | |||
LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) | |||
LINK_FLAGS += $(JUCE_EVENTS_LIBS) | |||
LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) | |||
LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
ifeq ($(MACOS),true) | |||
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
endif | |||
else | |||
LINK_FLAGS += $(RTAUDIO_LIBS) | |||
LINK_FLAGS += $(RTMIDI_LIBS) | |||
endif | |||
ifeq ($(JACKBRIDGE_DIRECT),true) | |||
LINK_FLAGS += $(JACK_LIBS) | |||
endif | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
TARGETS = $(BINDIR)/carla | |||
TARGETS = carla | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
all: $(UIs) $(RES) | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# $(BINDIR)/ | |||
carla: $(OBJS) | |||
-@mkdir -p $(BINDIR) | |||
@echo "Linking carla" | |||
$(CXX) $(OBJS) $(LIBS_START) $(LIBS) $(LIBS_END) $(LINK_FLAGS) -o $@ | |||
carla_settings: $(OBJDIR)/carla_settings.cpp.o $(OBJDIR)/carla_app.cpp.o $(OBJDIR)/carla_shared.cpp.o | |||
-@mkdir -p $(BINDIR) | |||
@echo "Linking carla" | |||
$(CXX) $^ $(LIBS_START) $(LIBS) $(LIBS_END) $(LINK_FLAGS) -o $@ | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
moc_%.cpp: %.hpp | |||
$(MOC_QT5) $< -o $@ | |||
ui_%.hpp: $(RESDIR)/ui/%.ui | |||
$(UIC_QT5) $< -o $@ | |||
ui_%.py: $(RESDIR)/ui/%.ui | |||
$(PYUIC) $< -o $@ | |||
resources_rc.hpp: $(RESDIR)/resources.qrc $(RESDIR)/*/*.png $(RESDIR)/*/*.svg | |||
$(RCC_QT5) $< -o $@ | |||
resources_rc.py: $(RESDIR)/resources.qrc $(RESDIR)/*/*.png $(RESDIR)/*/*.svg | |||
$(PYRCC) $< -o $@ | |||
@@ -100,6 +227,28 @@ $(BINDIR)/resources/%: % | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
$(OBJDIR)/%.cpp.o: %.cpp $(UIs) $(RES) | |||
-@mkdir -p $(OBJDIR) | |||
@echo "Compiling $<" | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
$(OBJDIR)/Information.cpp.o: $(CWD)/backend/utils/Information.cpp | |||
-@mkdir -p $(OBJDIR) | |||
@echo "Compiling $<" | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
$(OBJDIR)/CarlaStandalone.cpp.o: $(CWD)/backend/CarlaStandalone.cpp | |||
-@mkdir -p $(OBJDIR) | |||
@echo "Compiling $<" | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
$(OBJDIR)/CarlaStandaloneNSM.cpp.o: $(CWD)/backend/CarlaStandaloneNSM.cpp | |||
-@mkdir -p $(OBJDIR) | |||
@echo "Compiling $<" | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
clean: | |||
rm -rf $(UIs) $(RES) __pycache__ *.pyc | |||
@@ -107,3 +256,7 @@ debug: | |||
$(MAKE) DEBUG=true | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
-include $(OBJS:%.o=%.d) | |||
# --------------------------------------------------------------------------------------------------------------------- |
@@ -29,8 +29,8 @@ | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Custom) | |||
#include "app.hpp" | |||
#include "shared.hpp" | |||
#include "carla_app.hpp" | |||
#include "carla_shared.hpp" | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
@@ -29,7 +29,7 @@ class QApplication; | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Custom) | |||
#include "../../utils/CarlaJuceUtils.hpp" | |||
#include "../utils/CarlaJuceUtils.hpp" | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
@@ -42,10 +42,6 @@ | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
CarlaObject gCarla; | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
Host::Host() | |||
: isControl(false), | |||
isPlugin(false), |
@@ -0,0 +1,83 @@ | |||
/* | |||
* Carla settings code | |||
* Copyright (C) 2011-2019 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. | |||
*/ | |||
#include "carla_settings.hpp" | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Global) | |||
#include <QtWidgets/QDialog> | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Custom) | |||
#include "carla_app.hpp" | |||
#include "carla_shared.hpp" | |||
#include "resources_rc.hpp" | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
// Driver Settings | |||
class DriverSettingsW : public QDialog | |||
{ | |||
// static const char* const AUTOMATIC_OPTION = "(Auto)"; | |||
public: | |||
DriverSettingsW(QWidget* const parent = nullptr) | |||
: QDialog(parent) | |||
{ | |||
} | |||
}; | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
// Main | |||
int main(int argc, char* argv[]) | |||
{ | |||
// ---------------------------------------------------------------------------------------------------------------- | |||
// Read CLI args | |||
const QString initName(handleInitialCommandLineArguments(argc, argv)); | |||
// ---------------------------------------------------------------------------------------------------------------- | |||
// App initialization | |||
const CarlaApplication app("Carla2-Settings", argc, argv); | |||
// ---------------------------------------------------------------------------------------------------------------- | |||
// Init host backend | |||
/* | |||
Host& host = initHost(initName, false, false, true); | |||
loadHostSettings(host); | |||
*/ | |||
// ---------------------------------------------------------------------------------------------------------------- | |||
// Create GUI | |||
DriverSettingsW gui; | |||
// ---------------------------------------------------------------------------------------------------------------- | |||
// Show GUI | |||
gui.show(); | |||
// ---------------------------------------------------------------------------------------------------------------- | |||
// App-Loop | |||
return app.exec(); | |||
} |
@@ -0,0 +1,31 @@ | |||
/* | |||
* Carla settings code | |||
* Copyright (C) 2011-2019 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 CARLA_SETTINGS_HPP_INCLUDED | |||
#define CARLA_SETTINGS_HPP_INCLUDED | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Global) | |||
// from PyQt5.QtCore import pyqtSlot, QByteArray, QDir | |||
// from PyQt5.QtGui import QColor, QCursor, QPainter, QPainterPath | |||
// from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFrame, QInputDialog, QLineEdit, QMenu, QVBoxLayout, QWidget | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Custom) | |||
#endif // CARLA_SETTINGS_HPP_INCLUDED |
@@ -0,0 +1,24 @@ | |||
/* | |||
* Common Carla code | |||
* Copyright (C) 2011-2019 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. | |||
*/ | |||
#include "carla_shared.hpp" | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
CarlaObject gCarla; | |||
//--------------------------------------------------------------------------------------------------------------------- |
@@ -18,7 +18,7 @@ | |||
#ifndef CARLA_SHARED_HPP_INCLUDED | |||
#define CARLA_SHARED_HPP_INCLUDED | |||
#include "../../utils/CarlaUtils.hpp" | |||
#include "../utils/CarlaUtils.hpp" | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
@@ -32,6 +32,7 @@ class QMainWindow; | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Static MIDI CC list | |||
/* | |||
static const char* const* const MIDI_CC_LIST = { | |||
"0x01 Modulation", | |||
"0x02 Breath", | |||
@@ -85,6 +86,7 @@ static const char* const* const MIDI_CC_LIST = { | |||
"0x5F FX 5 Depth [Phaser]", | |||
nullptr | |||
}; | |||
*/ | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Carla Settings keys |
@@ -0,0 +1 @@ | |||
@@ -0,0 +1 @@ | |||
@@ -0,0 +1,581 @@ | |||
/* | |||
* PatchBay Canvas Themes | |||
* Copyright (C) 2010-2019 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. | |||
*/ | |||
#include "theme.hpp" | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Global) | |||
#include <QtGui/QColor> | |||
#include <QtGui/QFont> | |||
#include <QtGui/QPen> | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
struct Theme::PrivateData { | |||
const Theme::List idx; | |||
// Canvas | |||
QColor canvas_bg; | |||
// Boxes | |||
QPen box_pen; | |||
QPen box_pen_sel; | |||
QColor box_bg_1; | |||
QColor box_bg_2; | |||
QColor box_shadow; | |||
// box_header_pixmap | |||
int box_header_height; | |||
int box_header_spacing; | |||
QPen box_text; | |||
QPen box_text_sel; | |||
int box_text_ypos; | |||
QString box_font_name; | |||
int box_font_size; | |||
QFont::Weight box_font_state; | |||
BackgroundType box_bg_type; | |||
bool box_use_icon; | |||
// Ports | |||
QPen port_text; | |||
int port_text_ypos = 12; | |||
// port_bg_pixmap = None; | |||
QString port_font_name; | |||
int port_font_size; | |||
QFont::Weight port_font_state; | |||
PortType port_mode; | |||
QPen port_audio_jack_pen; | |||
QPen port_audio_jack_pen_sel; | |||
QPen port_midi_jack_pen; | |||
QPen port_midi_jack_pen_sel; | |||
QPen port_midi_alsa_pen; | |||
QPen port_midi_alsa_pen_sel; | |||
QPen port_parameter_pen; | |||
QPen port_parameter_pen_sel; | |||
QColor port_audio_jack_bg; | |||
QColor port_audio_jack_bg_sel; | |||
QColor port_midi_jack_bg; | |||
QColor port_midi_jack_bg_sel; | |||
QColor port_midi_alsa_bg; | |||
QColor port_midi_alsa_bg_sel; | |||
QColor port_parameter_bg; | |||
QColor port_parameter_bg_sel; | |||
QColor port_audio_jack_text; | |||
QColor port_audio_jack_text_sel; | |||
QColor port_midi_jack_text; | |||
QColor port_midi_jack_text_sel; | |||
QColor port_midi_alsa_text; | |||
QColor port_midi_alsa_text_sel; | |||
QColor port_parameter_text; | |||
QColor port_parameter_text_sel; | |||
int port_height; | |||
int port_offset; | |||
int port_spacing; | |||
int port_spacingT; | |||
// Lines | |||
QColor line_audio_jack; | |||
QColor line_audio_jack_sel; | |||
QColor line_audio_jack_glow; | |||
QColor line_midi_jack; | |||
QColor line_midi_jack_sel; | |||
QColor line_midi_jack_glow; | |||
QColor line_midi_alsa; | |||
QColor line_midi_alsa_sel; | |||
QColor line_midi_alsa_glow; | |||
QColor line_parameter; | |||
QColor line_parameter_sel; | |||
QColor line_parameter_glow; | |||
QPen rubberband_pen; | |||
QColor rubberband_brush; | |||
//----------------------------------------------------------------------------------------------------------------- | |||
PrivateData(const Theme::List id) | |||
: idx(id) | |||
{ | |||
switch (idx) | |||
{ | |||
case THEME_MODERN_DARK: | |||
// Canvas | |||
canvas_bg = QColor(0, 0, 0); | |||
// Boxes | |||
box_pen = QPen(QColor(76, 77, 78), 1, Qt::SolidLine); | |||
box_pen_sel = QPen(QColor(206, 207, 208), 1, Qt::DashLine); | |||
box_bg_1 = QColor(32, 34, 35); | |||
box_bg_2 = QColor(43, 47, 48); | |||
box_shadow = QColor(89, 89, 89, 180); | |||
// box_header_pixmap = None; | |||
box_header_height = 24; | |||
box_header_spacing = 0; | |||
box_text = QPen(QColor(240, 240, 240), 0); | |||
box_text_sel = box_text; | |||
box_text_ypos = 16; | |||
box_font_name = "Deja Vu Sans"; | |||
box_font_size = 11; | |||
box_font_state = QFont::Bold; | |||
box_bg_type = THEME_BG_GRADIENT; | |||
box_use_icon = true; | |||
// Ports | |||
port_text = QPen(QColor(250, 250, 250), 0); | |||
port_text_ypos = 12; | |||
// port_bg_pixmap = None; | |||
port_font_name = "Deja Vu Sans"; | |||
port_font_size = 11; | |||
port_font_state = QFont::Normal; | |||
port_mode = THEME_PORT_POLYGON; | |||
port_audio_jack_pen = QPen(QColor(63, 90, 126), 1); | |||
port_audio_jack_pen_sel = QPen(QColor(63 + 30, 90 + 30, 126 + 30), 1); | |||
port_midi_jack_pen = QPen(QColor(159, 44, 42), 1); | |||
port_midi_jack_pen_sel = QPen(QColor(159 + 30, 44 + 30, 42 + 30), 1); | |||
port_midi_alsa_pen = QPen(QColor(93, 141, 46), 1); | |||
port_midi_alsa_pen_sel = QPen(QColor(93 + 30, 141 + 30, 46 + 30), 1); | |||
port_parameter_pen = QPen(QColor(137, 76, 43), 1); | |||
port_parameter_pen_sel = QPen(QColor(137 + 30, 76 + 30, 43 + 30), 1); | |||
port_audio_jack_bg = QColor(35, 61, 99); | |||
port_audio_jack_bg_sel = QColor(35 + 50, 61 + 50, 99 + 50); | |||
port_midi_jack_bg = QColor(120, 15, 16); | |||
port_midi_jack_bg_sel = QColor(120 + 50, 15 + 50, 16 + 50); | |||
port_midi_alsa_bg = QColor(64, 112, 18); | |||
port_midi_alsa_bg_sel = QColor(64 + 50, 112 + 50, 18 + 50); | |||
port_parameter_bg = QColor(101, 47, 16); | |||
port_parameter_bg_sel = QColor(101 + 50, 47 + 50, 16 + 50); | |||
/* | |||
port_audio_jack_text = port_text; | |||
port_audio_jack_text_sel = port_text; | |||
port_midi_jack_text = port_text; | |||
port_midi_jack_text_sel = port_text; | |||
port_midi_alsa_text = port_text; | |||
port_midi_alsa_text_sel = port_text; | |||
port_parameter_text = port_text; | |||
port_parameter_text_sel = port_text; | |||
*/ | |||
port_height = 16; | |||
port_offset = 0; | |||
port_spacing = 2; | |||
port_spacingT = 2; | |||
// Lines | |||
line_audio_jack = QColor(63, 90, 126); | |||
line_audio_jack_sel = QColor(63 + 90, 90 + 90, 126 + 90); | |||
line_audio_jack_glow = QColor(100, 100, 200); | |||
line_midi_jack = QColor(159, 44, 42); | |||
line_midi_jack_sel = QColor(159 + 90, 44 + 90, 42 + 90); | |||
line_midi_jack_glow = QColor(200, 100, 100); | |||
line_midi_alsa = QColor(93, 141, 46); | |||
line_midi_alsa_sel = QColor(93 + 90, 141 + 90, 46 + 90); | |||
line_midi_alsa_glow = QColor(100, 200, 100); | |||
line_parameter = QColor(137, 76, 43); | |||
line_parameter_sel = QColor(137 + 90, 76 + 90, 43 + 90); | |||
line_parameter_glow = QColor(166, 133, 133); | |||
rubberband_pen = QPen(QColor(206, 207, 208), 1, Qt::SolidLine); | |||
rubberband_brush = QColor(76, 77, 78, 100); | |||
break; | |||
#if 0 | |||
elif idx == THEME_MODERN_DARK_TINY: | |||
# Canvas | |||
canvas_bg = QColor(0, 0, 0) | |||
# Boxes | |||
box_pen = QPen(QColor(76, 77, 78), 1, Qt::SolidLine) | |||
box_pen_sel = QPen(QColor(206, 207, 208), 1, Qt::DashLine) | |||
box_bg_1 = QColor(32, 34, 35) | |||
box_bg_2 = QColor(43, 47, 48) | |||
box_shadow = QColor(89, 89, 89, 180) | |||
box_header_pixmap = None | |||
box_header_height = 14 | |||
box_header_spacing = 0 | |||
box_text = QPen(QColor(240, 240, 240), 0) | |||
box_text_sel = ox_text | |||
box_text_ypos = 10 | |||
box_font_name = "Deja Vu Sans" | |||
box_font_size = 10 | |||
box_font_state = QFont::Bold | |||
box_bg_type = THEME_BG_GRADIENT | |||
box_use_icon = false | |||
# Ports | |||
port_text = QPen(QColor(250, 250, 250), 0) | |||
port_text_ypos = 9 | |||
port_bg_pixmap = None | |||
port_font_name = "Deja Vu Sans" | |||
port_font_size = 9 | |||
port_font_state = QFont::Normal | |||
port_mode = THEME_PORT_POLYGON | |||
port_audio_jack_pen = QPen(QColor(63, 90, 126), 1) | |||
port_audio_jack_pen_sel = QPen(QColor(63 + 30, 90 + 30, 126 + 30), 1) | |||
port_midi_jack_pen = QPen(QColor(159, 44, 42), 1) | |||
port_midi_jack_pen_sel = QPen(QColor(159 + 30, 44 + 30, 42 + 30), 1) | |||
port_midi_alsa_pen = QPen(QColor(93, 141, 46), 1) | |||
port_midi_alsa_pen_sel = QPen(QColor(93 + 30, 141 + 30, 46 + 30), 1) | |||
port_parameter_pen = QPen(QColor(137, 76, 43), 1) | |||
port_parameter_pen_sel = QPen(QColor(137 + 30, 76 + 30, 43 + 30), 1) | |||
port_audio_jack_bg = QColor(35, 61, 99) | |||
port_audio_jack_bg_sel = QColor(35 + 50, 61 + 50, 99 + 50) | |||
port_midi_jack_bg = QColor(120, 15, 16) | |||
port_midi_jack_bg_sel = QColor(120 + 50, 15 + 50, 16 + 50) | |||
port_midi_alsa_bg = QColor(64, 112, 18) | |||
port_midi_alsa_bg_sel = QColor(64 + 50, 112 + 50, 18 + 50) | |||
port_parameter_bg = QColor(101, 47, 16) | |||
port_parameter_bg_sel = QColor(101 + 50, 47 + 50, 16 + 50) | |||
port_audio_jack_text = port_text | |||
port_audio_jack_text_sel = port_text | |||
port_midi_jack_text = port_text | |||
port_midi_jack_text_sel = port_text | |||
port_midi_alsa_text = port_text | |||
port_midi_alsa_text_sel = port_text | |||
port_parameter_text = port_text | |||
port_parameter_text_sel = port_text | |||
port_height = 12 | |||
port_offset = 0 | |||
port_spacing = 1 | |||
port_spacingT = 1 | |||
# Lines | |||
line_audio_jack = QColor(63, 90, 126) | |||
line_audio_jack_sel = QColor(63 + 90, 90 + 90, 126 + 90) | |||
line_audio_jack_glow = QColor(100, 100, 200) | |||
line_midi_jack = QColor(159, 44, 42) | |||
line_midi_jack_sel = QColor(159 + 90, 44 + 90, 42 + 90) | |||
line_midi_jack_glow = QColor(200, 100, 100) | |||
line_midi_alsa = QColor(93, 141, 46) | |||
line_midi_alsa_sel = QColor(93 + 90, 141 + 90, 46 + 90) | |||
line_midi_alsa_glow = QColor(100, 200, 100) | |||
line_parameter = QColor(137, 76, 43) | |||
line_parameter_sel = QColor(137 + 90, 76 + 90, 43 + 90) | |||
line_parameter_glow = QColor(166, 133, 133) | |||
rubberband_pen = QPen(QColor(206, 207, 208), 1, Qt::SolidLine) | |||
rubberband_brush = QColor(76, 77, 78, 100) | |||
elif idx == THEME_MODERN_LIGHT: | |||
# Canvas | |||
canvas_bg = QColor(248, 249, 250) | |||
# Boxes | |||
box_pen = QPen(QColor(176, 177, 178), 1, Qt::SolidLine) | |||
box_pen_sel = QPen(QColor(1, 2, 3), 2, Qt::DashLine) | |||
box_bg_1 = QColor(250, 250, 250) | |||
box_bg_2 = QColor(200, 200, 200) | |||
box_shadow = QColor(1, 1, 1, 100) | |||
box_header_pixmap = None | |||
box_header_height = 24 | |||
box_header_spacing = 0 | |||
box_text = QPen(QColor(1, 1, 1), 0) | |||
box_text_sel = ox_text | |||
box_text_ypos = 16 | |||
box_font_name = "Ubuntu" | |||
box_font_size = 11 | |||
box_font_state = QFont::Bold | |||
box_bg_type = THEME_BG_GRADIENT | |||
box_use_icon = True | |||
# Ports | |||
port_text = QPen(QColor(255, 255, 255), 1) | |||
port_text_ypos = 12 | |||
port_bg_pixmap = None | |||
port_font_name = "Ubuntu" | |||
port_font_size = 11 | |||
port_font_state = QFont::Bold | |||
port_mode = THEME_PORT_POLYGON | |||
port_audio_jack_pen = QPen(QColor(103, 130, 166), 2) | |||
port_audio_jack_pen_sel = QPen(QColor(103 + 136, 190 + 130, 226 + 130), 1) | |||
port_midi_jack_pen = QPen(QColor(159, 44, 42), 1) | |||
port_midi_jack_pen_sel = QPen(QColor(90 + 30, 44 + 30, 42 + 30), 1) | |||
port_midi_alsa_pen = QPen(QColor(93, 141, 46), 1) | |||
port_midi_alsa_pen_sel = QPen(QColor(93 + 30, 141 + 30, 46 + 30), 1) | |||
port_parameter_pen = QPen(QColor(137, 76, 43), 1) | |||
port_parameter_pen_sel = QPen(QColor(137 + 30, 76 + 30, 43 + 30), 1) | |||
port_audio_jack_bg = QColor(0, 0, 180) | |||
port_audio_jack_bg_sel = QColor(135 + 150, 161 + 150, 199 + 150) | |||
port_midi_jack_bg = QColor(130, 15, 16) | |||
port_midi_jack_bg_sel = QColor(90 + 30, 15 + 50, 16 + 50) | |||
port_midi_alsa_bg = QColor(64, 112, 18) | |||
port_midi_alsa_bg_sel = QColor(64 + 50, 112 + 50, 18 + 50) | |||
port_parameter_bg = QColor(101, 47, 16) | |||
port_parameter_bg_sel = QColor(101 + 50, 47 + 50, 16 + 50) | |||
port_audio_jack_text = port_text | |||
port_audio_jack_text_sel = port_text | |||
port_midi_jack_text = port_text | |||
port_midi_jack_text_sel = port_text | |||
port_midi_alsa_text = port_text | |||
port_midi_alsa_text_sel = port_text | |||
port_parameter_text = port_text | |||
port_parameter_text_sel = port_text | |||
port_height = 16 | |||
port_offset = 0 | |||
port_spacing = 2 | |||
port_spacingT = 2 | |||
# Lines | |||
line_audio_jack = QColor(63, 90, 126) | |||
line_audio_jack_sel = QColor(63 + 63, 90 + 90, 126 + 90) | |||
line_audio_jack_glow = QColor(100, 100, 200) | |||
line_midi_jack = QColor(159, 44, 42) | |||
line_midi_jack_sel = QColor(159 + 44, 44 + 90, 42 + 90) | |||
line_midi_jack_glow = QColor(200, 100, 100) | |||
line_midi_alsa = QColor(93, 141, 46) | |||
line_midi_alsa_sel = QColor(93 + 90, 141 + 90, 46 + 90) | |||
line_midi_alsa_glow = QColor(100, 200, 100) | |||
line_parameter = QColor(137, 43, 43) | |||
line_parameter_sel = QColor(137 + 90, 76 + 90, 43 + 90) | |||
line_parameter_glow = QColor(166, 133, 133) | |||
rubberband_pen = QPen(QColor(206, 207, 208), 1, Qt::SolidLine) | |||
rubberband_brush = QColor(76, 77, 78, 100) | |||
elif idx == THEME_CLASSIC_DARK: | |||
# Canvas | |||
canvas_bg = QColor(0, 0, 0) | |||
# Boxes | |||
box_pen = QPen(QColor(147 - 70, 151 - 70, 143 - 70), 2, Qt::SolidLine) | |||
box_pen_sel = QPen(QColor(147, 151, 143), 2, Qt::DashLine) | |||
box_bg_1 = QColor(30, 34, 36) | |||
box_bg_2 = QColor(30, 34, 36) | |||
box_shadow = QColor(89, 89, 89, 180) | |||
box_header_pixmap = None | |||
box_header_height = 19 | |||
box_header_spacing = 0 | |||
box_text = QPen(QColor(255, 255, 255), 0) | |||
box_text_sel = ox_text | |||
box_text_ypos = 12 | |||
box_font_name = "Sans" | |||
box_font_size = 12 | |||
box_font_state = QFont::Normal | |||
box_bg_type = THEME_BG_GRADIENT | |||
box_use_icon = false | |||
# Ports | |||
port_text = QPen(QColor(250, 250, 250), 0) | |||
port_text_ypos = 11 | |||
port_bg_pixmap = None | |||
port_font_name = "Sans" | |||
port_font_size = 11 | |||
port_font_state = QFont::Normal | |||
port_mode = THEME_PORT_SQUARE | |||
port_audio_jack_pen = QPen(QColor(35, 61, 99), Qt::NoPen, 0) | |||
port_audio_jack_pen_sel = QPen(QColor(255, 0, 0), Qt::NoPen, 0) | |||
port_midi_jack_pen = QPen(QColor(120, 15, 16), Qt::NoPen, 0) | |||
port_midi_jack_pen_sel = QPen(QColor(255, 0, 0), Qt::NoPen, 0) | |||
port_midi_alsa_pen = QPen(QColor(63, 112, 19), Qt::NoPen, 0) | |||
port_midi_alsa_pen_sel = QPen(QColor(255, 0, 0), Qt::NoPen, 0) | |||
port_parameter_pen = QPen(QColor(101, 47, 17), Qt::NoPen, 0) | |||
port_parameter_pen_sel = QPen(QColor(255, 0, 0), Qt::NoPen, 0) | |||
port_audio_jack_bg = QColor(35, 61, 99) | |||
port_audio_jack_bg_sel = QColor(255, 0, 0) | |||
port_midi_jack_bg = QColor(120, 15, 16) | |||
port_midi_jack_bg_sel = QColor(255, 0, 0) | |||
port_midi_alsa_bg = QColor(63, 112, 19) | |||
port_midi_alsa_bg_sel = QColor(255, 0, 0) | |||
port_parameter_bg = QColor(101, 47, 17) | |||
port_parameter_bg_sel = QColor(255, 0, 0) | |||
port_audio_jack_text = port_text | |||
port_audio_jack_text_sel = port_text | |||
port_midi_jack_text = port_text | |||
port_midi_jack_text_sel = port_text | |||
port_midi_alsa_text = port_text | |||
port_midi_alsa_text_sel = port_text | |||
port_parameter_text = port_text | |||
port_parameter_text_sel = port_text | |||
port_height = 14 | |||
port_offset = 0 | |||
port_spacing = 1 | |||
port_spacingT = 0 | |||
# Lines | |||
line_audio_jack = QColor(53, 78, 116) | |||
line_audio_jack_sel = QColor(255, 0, 0) | |||
line_audio_jack_glow = QColor(255, 0, 0) | |||
line_midi_jack = QColor(139, 32, 32) | |||
line_midi_jack_sel = QColor(255, 0, 0) | |||
line_midi_jack_glow = QColor(255, 0, 0) | |||
line_midi_alsa = QColor(81, 130, 36) | |||
line_midi_alsa_sel = QColor(255, 0, 0) | |||
line_midi_alsa_glow = QColor(255, 0, 0) | |||
line_parameter = QColor(120, 65, 33) | |||
line_parameter_sel = QColor(255, 0, 0) | |||
line_parameter_glow = QColor(255, 0, 0) | |||
rubberband_pen = QPen(QColor(147, 151, 143), 2, Qt::SolidLine) | |||
rubberband_brush = QColor(35, 61, 99, 100) | |||
elif idx == THEME_OOSTUDIO: | |||
# Canvas | |||
canvas_bg = QColor(11, 11, 11) | |||
# Boxes | |||
box_pen = QPen(QColor(76, 77, 78), 1, Qt::SolidLine) | |||
box_pen_sel = QPen(QColor(189, 122, 214), 1, Qt::DashLine) | |||
box_bg_1 = QColor(46, 46, 46) | |||
box_bg_2 = QColor(23, 23, 23) | |||
box_shadow = QColor(89, 89, 89, 180) | |||
box_header_pixmap = QPixmap(":/bitmaps/canvas/frame_node_header.png") | |||
box_header_height = 22 | |||
box_header_spacing = 6 | |||
box_text = QPen(QColor(144, 144, 144), 0) | |||
box_text_sel = QPen(QColor(189, 122, 214), 0) | |||
box_text_ypos = 16 | |||
box_font_name = "Deja Vu Sans" | |||
box_font_size = 11 | |||
box_font_state = QFont::Bold | |||
box_bg_type = THEME_BG_SOLID | |||
box_use_icon = false | |||
# Ports | |||
normalPortBG = QColor(46, 46, 46) | |||
selPortBG = QColor(23, 23, 23) | |||
port_text = QPen(QColor(155, 155, 155), 0) | |||
port_text_ypos = 14 | |||
port_bg_pixmap = QPixmap(":/bitmaps/canvas/frame_port_bg.png") | |||
port_font_name = "Deja Vu Sans" | |||
port_font_size = 11 | |||
port_font_state = QFont::Normal | |||
port_mode = THEME_PORT_SQUARE | |||
port_audio_jack_pen = QPen(selPortBG, 2) | |||
port_audio_jack_pen_sel = QPen(QColor(1, 230, 238), 1) | |||
port_midi_jack_pen = QPen(selPortBG, 2) | |||
port_midi_jack_pen_sel = QPen(QColor(252, 118, 118), 1) | |||
port_midi_alsa_pen = QPen(selPortBG, 2) | |||
port_midi_alsa_pen_sel = QPen(QColor(129, 244, 118), 0) | |||
port_parameter_pen = QPen(selPortBG, 2) | |||
port_parameter_pen_sel = QPen(QColor(137, 76, 43), 1) | |||
port_audio_jack_bg = normalPortBG | |||
port_audio_jack_bg_sel = selPortBG | |||
port_midi_jack_bg = normalPortBG | |||
port_midi_jack_bg_sel = selPortBG | |||
port_midi_alsa_bg = normalPortBG | |||
port_midi_alsa_bg_sel = selPortBG | |||
port_parameter_bg = normalPortBG | |||
port_parameter_bg_sel = selPortBG | |||
port_audio_jack_text = port_text | |||
port_audio_jack_text_sel = port_audio_jack_pen_sel | |||
port_midi_jack_text = port_text | |||
port_midi_jack_text_sel = port_midi_jack_pen_sel | |||
port_midi_alsa_text = port_text | |||
port_midi_alsa_text_sel = port_midi_alsa_pen_sel | |||
port_parameter_text = port_text | |||
port_parameter_text_sel = port_parameter_pen_sel | |||
# missing, ports 2 | |||
port_height = 21 | |||
port_offset = 1 | |||
port_spacing = 3 | |||
port_spacingT = 0 | |||
# Lines | |||
line_audio_jack = QColor(64, 64, 64) | |||
line_audio_jack_sel = QColor(1, 230, 238) | |||
line_audio_jack_glow = QColor(100, 200, 100) | |||
line_midi_jack = QColor(64, 64, 64) | |||
line_midi_jack_sel = QColor(252, 118, 118) | |||
line_midi_jack_glow = QColor(200, 100, 100) | |||
line_midi_alsa = QColor(64, 64, 64) | |||
line_midi_alsa_sel = QColor(129, 244, 118) | |||
line_midi_alsa_glow = QColor(100, 200, 100) | |||
line_parameter = QColor(64, 64, 64) | |||
line_parameter_sel = QColor(137+90, 76+90, 43+90) | |||
line_parameter_glow = QColor(166, 133, 133) | |||
rubberband_pen = QPen(QColor(1, 230, 238), 2, Qt::SolidLine) | |||
rubberband_brush = QColor(90, 90, 90, 100) | |||
#endif | |||
default: | |||
break; | |||
} | |||
} | |||
}; | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
Theme::Theme(const Theme::List idx) | |||
: self(new PrivateData(idx)) {} | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
Theme::List getDefaultTheme() | |||
{ | |||
return Theme::THEME_MODERN_DARK; | |||
} | |||
const char* getThemeName(const Theme::List idx) | |||
{ | |||
switch (idx) | |||
{ | |||
case Theme::THEME_MODERN_DARK: | |||
return "Modern Dark"; | |||
case Theme::THEME_MODERN_DARK_TINY: | |||
return "Modern Dark (Tiny)"; | |||
case Theme::THEME_MODERN_LIGHT: | |||
return "Modern Light"; | |||
case Theme::THEME_CLASSIC_DARK: | |||
return "Classic Dark"; | |||
case Theme::THEME_OOSTUDIO: | |||
return "OpenOctave Studio"; | |||
default: | |||
return ""; | |||
} | |||
} | |||
const char* getDefaultThemeName() | |||
{ | |||
return "Modern Dark"; | |||
} | |||
//--------------------------------------------------------------------------------------------------------------------- |
@@ -0,0 +1,64 @@ | |||
/* | |||
* PatchBay Canvas Themes | |||
* Copyright (C) 2010-2019 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 CARLA_PATCHBAY_THEME_HPP_INCLUDED | |||
#define CARLA_PATCHBAY_THEME_HPP_INCLUDED | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
// Imports (Global) | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
class Theme | |||
{ | |||
public: | |||
enum PortType { | |||
THEME_PORT_SQUARE, | |||
THEME_PORT_POLYGON | |||
}; | |||
enum List { | |||
THEME_MODERN_DARK, | |||
THEME_MODERN_DARK_TINY, | |||
THEME_MODERN_LIGHT, | |||
THEME_CLASSIC_DARK, | |||
THEME_OOSTUDIO, | |||
THEME_MAX | |||
}; | |||
enum BackgroundType { | |||
THEME_BG_SOLID, | |||
THEME_BG_GRADIENT | |||
}; | |||
Theme(Theme::List idx); | |||
~Theme(); | |||
private: | |||
struct PrivateData; | |||
PrivateData* const self; | |||
}; | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
Theme::List getDefaultTheme(); | |||
const char* getThemeName(Theme::List idx); | |||
const char* getDefaultThemeName(); | |||
//--------------------------------------------------------------------------------------------------------------------- | |||
#endif // CARLA_PATCHBAY_THEME_HPP_INCLUDED |