@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# Carla Backend code | # Carla Backend code | ||||
# Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or | # This program is free software; you can redistribute it and/or | ||||
# modify it under the terms of the GNU General Public License as | # modify it under the terms of the GNU General Public License as | ||||
@@ -120,28 +120,15 @@ c_intp_types = tuple(POINTER(i) for i in c_int_types) | |||||
c_floatp_types = tuple(POINTER(i) for i in c_float_types) | c_floatp_types = tuple(POINTER(i) for i in c_float_types) | ||||
def toPythonType(value, attr): | def toPythonType(value, attr): | ||||
#if value is None: | |||||
#return None | |||||
if isinstance(value, (bool, int, float)): | if isinstance(value, (bool, int, float)): | ||||
return value | return value | ||||
if isinstance(value, bytes): | if isinstance(value, bytes): | ||||
return charPtrToString(value) | return charPtrToString(value) | ||||
#if isinstance(value, c_bool): | |||||
#return bool(value) | |||||
#if isinstance(value, c_char_p): | |||||
#return charPtrToString(value) | |||||
#if isinstance(value, c_int_types): | |||||
#return int(value) | |||||
#if isinstance(value, c_float_types): | |||||
#return float(value) | |||||
if isinstance(value, c_intp_types) or isinstance(value, c_floatp_types): | if isinstance(value, c_intp_types) or isinstance(value, c_floatp_types): | ||||
return numPtrToList(value) | return numPtrToList(value) | ||||
if isinstance(value, POINTER(c_char_p)): | if isinstance(value, POINTER(c_char_p)): | ||||
return charPtrPtrToStringList(value) | return charPtrPtrToStringList(value) | ||||
print("..............", attr, ".....................", value, ":", type(value)) | print("..............", attr, ".....................", value, ":", type(value)) | ||||
#raise Exception("error here!!!") | |||||
#from sys import exit | |||||
#exit(1) | |||||
return value | return value | ||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
@@ -187,15 +187,15 @@ CARLA_KEY_MAIN_USE_PRO_THEME = "Main/UseProTheme" # bool | |||||
CARLA_KEY_MAIN_PRO_THEME_COLOR = "Main/ProThemeColor" # str | CARLA_KEY_MAIN_PRO_THEME_COLOR = "Main/ProThemeColor" # str | ||||
CARLA_KEY_MAIN_REFRESH_INTERVAL = "Main/RefreshInterval" # int | CARLA_KEY_MAIN_REFRESH_INTERVAL = "Main/RefreshInterval" # int | ||||
CARLA_KEY_CANVAS_THEME = "Canvas/Theme" # str | |||||
CARLA_KEY_CANVAS_SIZE = "Canvas/Size" # str "NxN" | |||||
CARLA_KEY_CANVAS_USE_BEZIER_LINES = "Canvas/UseBezierLines" # bool | |||||
CARLA_KEY_CANVAS_AUTO_HIDE_GROUPS = "Canvas/AutoHideGroups" # bool | |||||
CARLA_KEY_CANVAS_EYE_CANDY = "Canvas/EyeCandy" # enum | |||||
CARLA_KEY_CANVAS_USE_OPENGL = "Canvas/UseOpenGL" # bool | |||||
CARLA_KEY_CANVAS_ANTIALIASING = "Canvas/Antialiasing" # enum | |||||
CARLA_KEY_CANVAS_HQ_ANTIALIASING = "Canvas/HQAntialiasing" # bool | |||||
CARLA_KEY_CUSTOM_PAINTING = "UseCustomPainting" # bool | |||||
CARLA_KEY_CANVAS_THEME = "Canvas/Theme" # str | |||||
CARLA_KEY_CANVAS_SIZE = "Canvas/Size" # str "NxN" | |||||
CARLA_KEY_CANVAS_USE_BEZIER_LINES = "Canvas/UseBezierLines" # bool | |||||
CARLA_KEY_CANVAS_AUTO_HIDE_GROUPS = "Canvas/AutoHideGroups" # bool | |||||
CARLA_KEY_CANVAS_EYE_CANDY = "Canvas/EyeCandy" # enum | |||||
CARLA_KEY_CANVAS_USE_OPENGL = "Canvas/UseOpenGL" # bool | |||||
CARLA_KEY_CANVAS_ANTIALIASING = "Canvas/Antialiasing" # enum | |||||
CARLA_KEY_CANVAS_HQ_ANTIALIASING = "Canvas/HQAntialiasing" # bool | |||||
CARLA_KEY_CUSTOM_PAINTING = "UseCustomPainting" # bool | |||||
CARLA_KEY_ENGINE_DRIVER_PREFIX = "Engine/Driver-" | CARLA_KEY_ENGINE_DRIVER_PREFIX = "Engine/Driver-" | ||||
CARLA_KEY_ENGINE_AUDIO_DRIVER = "Engine/AudioDriver" # str | CARLA_KEY_ENGINE_AUDIO_DRIVER = "Engine/AudioDriver" # str | ||||
@@ -441,6 +441,7 @@ if readEnvVars: | |||||
gCarla.DEFAULT_GIG_PATH = os.getenv("GIG_PATH", DEFAULT_GIG_PATH).split(splitter) | gCarla.DEFAULT_GIG_PATH = os.getenv("GIG_PATH", DEFAULT_GIG_PATH).split(splitter) | ||||
gCarla.DEFAULT_SF2_PATH = os.getenv("SF2_PATH", DEFAULT_SF2_PATH).split(splitter) | gCarla.DEFAULT_SF2_PATH = os.getenv("SF2_PATH", DEFAULT_SF2_PATH).split(splitter) | ||||
gCarla.DEFAULT_SFZ_PATH = os.getenv("SFZ_PATH", DEFAULT_SFZ_PATH).split(splitter) | gCarla.DEFAULT_SFZ_PATH = os.getenv("SFZ_PATH", DEFAULT_SFZ_PATH).split(splitter) | ||||
else: | else: | ||||
gCarla.DEFAULT_LADSPA_PATH = DEFAULT_LADSPA_PATH.split(splitter) | gCarla.DEFAULT_LADSPA_PATH = DEFAULT_LADSPA_PATH.split(splitter) | ||||
gCarla.DEFAULT_DSSI_PATH = DEFAULT_DSSI_PATH.split(splitter) | gCarla.DEFAULT_DSSI_PATH = DEFAULT_DSSI_PATH.split(splitter) | ||||
@@ -461,7 +462,7 @@ CWD = sys.path[0] | |||||
# make it work with cxfreeze | # make it work with cxfreeze | ||||
if WINDOWS and CWD.endswith(".exe"): | if WINDOWS and CWD.endswith(".exe"): | ||||
CWD = CWD.rsplit("\\", 1)[0] | CWD = CWD.rsplit("\\", 1)[0] | ||||
elif CWD.endswith("/carla") or CWD.endswith("/carla-plugin") or CWD.endswith("/carla-patchbay") or CWD.endswith("/carla-rack"): | |||||
elif CWD.endswith(("/carla", "/carla-plugin", "/carla-patchbay", "/carla-rack")): | |||||
CWD = CWD.rsplit("/", 1)[0] | CWD = CWD.rsplit("/", 1)[0] | ||||
# find tool | # find tool | ||||
@@ -46,6 +46,7 @@ class CarlaApplication(object): | |||||
def __init__(self, appName = "Carla2"): | def __init__(self, appName = "Carla2"): | ||||
object.__init__(self) | object.__init__(self) | ||||
# try to find style dir | |||||
foundDir = False | foundDir = False | ||||
if os.path.exists(os.path.join(CWD, "modules", "theme", "styles")): | if os.path.exists(os.path.join(CWD, "modules", "theme", "styles")): | ||||
@@ -60,16 +61,32 @@ class CarlaApplication(object): | |||||
QApplication.addLibraryPath(os.path.join(CWD, "..")) | QApplication.addLibraryPath(os.path.join(CWD, "..")) | ||||
foundDir = True | foundDir = True | ||||
self.fApp = QApplication(sys.argv) | |||||
self.fApp.setApplicationName(appName) | |||||
self.fApp.setApplicationVersion(VERSION) | |||||
self.fApp.setOrganizationName("falkTX") | |||||
if not foundDir: | |||||
self._createApp(appName) | |||||
return | |||||
if appName.lower() == "carla-control": | |||||
self.fApp.setWindowIcon(QIcon(":/scalable/carla-control.svg")) | |||||
else: | |||||
self.fApp.setWindowIcon(QIcon(":/scalable/carla.svg")) | |||||
# base settings | |||||
settings = QSettings("falkTX", appName) | |||||
useProTheme = settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, True, type=bool) | |||||
if not useProTheme: | |||||
self._createApp(appName) | |||||
return | |||||
# set initial Qt stuff | |||||
customFont = QFont("DejaVu Sans [Book]", 12 if MACOS else 8, QFont.Normal) | |||||
#QApplication.setDesktopSettingsAware(False) | |||||
#QApplication.setFont(customFont) | |||||
QApplication.setStyle("carla") | |||||
# create app | |||||
self._createApp(appName) | |||||
#self.fApp.setFont(customFont) | |||||
self.fApp.setStyle("carla") | |||||
# create palettes | |||||
self.fPalSystem = self.fApp.palette() | self.fPalSystem = self.fApp.palette() | ||||
self.fPalBlack = QPalette() | self.fPalBlack = QPalette() | ||||
@@ -190,41 +207,33 @@ class CarlaApplication(object): | |||||
self.fPalBlue.setColor(QPalette.Active, QPalette.LinkVisited, QColor(64, 128, 255)) | self.fPalBlue.setColor(QPalette.Active, QPalette.LinkVisited, QColor(64, 128, 255)) | ||||
self.fPalBlue.setColor(QPalette.Inactive, QPalette.LinkVisited, QColor(64, 128, 255)) | self.fPalBlue.setColor(QPalette.Inactive, QPalette.LinkVisited, QColor(64, 128, 255)) | ||||
if foundDir: | |||||
self.loadSettings() | |||||
proThemeColor = settings.value(CARLA_KEY_MAIN_PRO_THEME_COLOR, "Black", type=str).lower() | |||||
def loadSettings(self): | |||||
settings = QSettings() | |||||
if proThemeColor == "black": | |||||
self.fApp.setPalette(self.fPalBlack) | |||||
useProTheme = settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, True, type=bool) | |||||
if useProTheme: | |||||
#font = QFont("DejaVu Sans [Book]", 12 if MACOS else 8, QFont.Normal) | |||||
#self.fApp.setFont(font) | |||||
#QApplication.setFont(font) | |||||
# TODO | |||||
if WINDOWS: return | |||||
self.fApp.setStyle("carla") | |||||
QApplication.setStyle("carla") | |||||
elif proThemeColor == "blue": | |||||
self.fApp.setPalette(self.fPalBlue) | |||||
proThemeColor = settings.value(CARLA_KEY_MAIN_PRO_THEME_COLOR, "Black", type=str).lower() | |||||
if proThemeColor == "black": | |||||
self.fApp.setPalette(self.fPalBlack) | |||||
print("Using \"%s\" theme" % self.fApp.style().objectName()) | |||||
elif proThemeColor == "blue": | |||||
self.fApp.setPalette(self.fPalBlue) | |||||
def _createApp(self, appName): | |||||
self.fApp = QApplication(sys.argv) | |||||
self.fApp.setApplicationName(appName) | |||||
self.fApp.setApplicationVersion(VERSION) | |||||
self.fApp.setOrganizationName("falkTX") | |||||
print("Using \"%s\" theme" % self.fApp.style().objectName()) | |||||
if appName.lower() == "carla-control": | |||||
self.fApp.setWindowIcon(QIcon(":/scalable/carla-control.svg")) | |||||
else: | |||||
self.fApp.setWindowIcon(QIcon(":/scalable/carla.svg")) | |||||
def addLibraryPath(self, libdir): | def addLibraryPath(self, libdir): | ||||
if not os.path.exists(libdir): | if not os.path.exists(libdir): | ||||
return | return | ||||
QApplication.addLibraryPath(libdir) | |||||
self.loadSettings() | |||||
#QApplication.addLibraryPath(libdir) | |||||
#self.loadSettings() | |||||
def arguments(self): | def arguments(self): | ||||
return self.fApp.arguments() | return self.fApp.arguments() | ||||