Signed-off-by: falkTX <falktx@falktx.com>pull/1996/head
| @@ -58,8 +58,8 @@ CarlaApplication::CarlaApplication(const QString appName, int& argc, char* argv[ | |||||
| QApplication.addLibraryPath(CWD) | QApplication.addLibraryPath(CWD) | ||||
| // Needed for local wine build | // Needed for local wine build | ||||
| if WINDOWS and CWD.endswith(("frontend", "resources")) and os.getenv("CXFREEZE") is None: | |||||
| if kIs64bit: | |||||
| if CARLA_OS_WIN and CWD.endswith(("frontend", "resources")) and os.getenv("CXFREEZE") is None: | |||||
| if CARLA_OS_64BIT: | |||||
| path = "H:\\builds\\msys2-x86_64\\mingw64\\share\\qt5\\plugins" | path = "H:\\builds\\msys2-x86_64\\mingw64\\share\\qt5\\plugins" | ||||
| else: | else: | ||||
| path = "H:\\builds\\msys2-i686\\mingw32\\share\\qt5\\plugins" | path = "H:\\builds\\msys2-i686\\mingw32\\share\\qt5\\plugins" | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -541,7 +541,7 @@ class CarlaEmbedW(QEmbedWidget): | |||||
| # set our gui as parent for all plugins UIs | # set our gui as parent for all plugins UIs | ||||
| if self.host.manageUIs: | if self.host.manageUIs: | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| nsViewPtr = int(self.fWinId) | nsViewPtr = int(self.fWinId) | ||||
| winIdStr = "%x" % gCarla.utils.cocoa_get_window(nsViewPtr) | winIdStr = "%x" % gCarla.utils.cocoa_get_window(nsViewPtr) | ||||
| else: | else: | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -18,6 +18,8 @@ from ctypes import CDLL, RTLD_GLOBAL | |||||
| from qt_compat import qt_config | from qt_compat import qt_config | ||||
| # pylint: disable=import-error | |||||
| if qt_config == 5: | if qt_config == 5: | ||||
| from PyQt5.QtCore import QT_VERSION, Qt, QCoreApplication, QLibraryInfo, QLocale, QTranslator | from PyQt5.QtCore import QT_VERSION, Qt, QCoreApplication, QLibraryInfo, QLocale, QTranslator | ||||
| from PyQt5.QtGui import QColor, QIcon, QPalette | from PyQt5.QtGui import QColor, QIcon, QPalette | ||||
| @@ -27,17 +29,26 @@ elif qt_config == 6: | |||||
| from PyQt6.QtGui import QColor, QIcon, QPalette | from PyQt6.QtGui import QColor, QIcon, QPalette | ||||
| from PyQt6.QtWidgets import QApplication | from PyQt6.QtWidgets import QApplication | ||||
| # pylint: enable=import-error | |||||
| # pylint: disable=possibly-used-before-assignment | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Custom) | # Imports (Custom) | ||||
| from carla_backend import kIs64bit, LINUX, MACOS, WINDOWS | |||||
| from carla_backend import ( | |||||
| CARLA_OS_64BIT, | |||||
| CARLA_OS_LINUX, | |||||
| CARLA_OS_MAC, | |||||
| CARLA_OS_WIN, | |||||
| CARLA_VERSION_STRING, | |||||
| ) | |||||
| from carla_shared import ( | from carla_shared import ( | ||||
| CARLA_KEY_MAIN_USE_PRO_THEME, | CARLA_KEY_MAIN_USE_PRO_THEME, | ||||
| CARLA_KEY_MAIN_PRO_THEME_COLOR, | CARLA_KEY_MAIN_PRO_THEME_COLOR, | ||||
| CARLA_DEFAULT_MAIN_USE_PRO_THEME, | CARLA_DEFAULT_MAIN_USE_PRO_THEME, | ||||
| CARLA_DEFAULT_MAIN_PRO_THEME_COLOR, | CARLA_DEFAULT_MAIN_PRO_THEME_COLOR, | ||||
| CWD, VERSION, | |||||
| CWD, | |||||
| getPaths, | getPaths, | ||||
| gCarla | gCarla | ||||
| ) | ) | ||||
| @@ -50,13 +61,13 @@ class CarlaApplication(): | |||||
| def __init__(self, appName = "Carla2", libPrefix = None): | def __init__(self, appName = "Carla2", libPrefix = None): | ||||
| pathBinaries, pathResources = getPaths(libPrefix) | pathBinaries, pathResources = getPaths(libPrefix) | ||||
| # Needed for MacOS and Windows | |||||
| if os.path.exists(CWD) and (MACOS or WINDOWS): | |||||
| # Needed for macOS and Windows | |||||
| if os.path.exists(CWD) and (CARLA_OS_MAC or CARLA_OS_WIN): | |||||
| QApplication.addLibraryPath(CWD) | QApplication.addLibraryPath(CWD) | ||||
| # Needed for local wine build | # Needed for local wine build | ||||
| if WINDOWS and CWD.endswith(("frontend", "resources")) and os.getenv("CXFREEZE") is None: | |||||
| if kIs64bit: | |||||
| if CARLA_OS_WIN and CWD.endswith(("frontend", "resources")) and os.getenv("CXFREEZE") is None: | |||||
| if CARLA_OS_64BIT: | |||||
| path = "H:\\PawPawBuilds\\targets\\win64\\lib\\qt5\\plugins" | path = "H:\\PawPawBuilds\\targets\\win64\\lib\\qt5\\plugins" | ||||
| else: | else: | ||||
| path = "H:\\PawPawBuilds\\targets\\win32\\lib\\qt5\\plugins" | path = "H:\\PawPawBuilds\\targets\\win32\\lib\\qt5\\plugins" | ||||
| @@ -94,7 +105,7 @@ class CarlaApplication(): | |||||
| # base settings | # base settings | ||||
| settings = QSafeSettings("falkTX", appName) | settings = QSafeSettings("falkTX", appName) | ||||
| useProTheme = MACOS or settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, CARLA_DEFAULT_MAIN_USE_PRO_THEME, bool) | |||||
| useProTheme = CARLA_OS_MAC or settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, CARLA_DEFAULT_MAIN_USE_PRO_THEME, bool) | |||||
| if not useProTheme: | if not useProTheme: | ||||
| self.createApp(appName) | self.createApp(appName) | ||||
| @@ -111,7 +122,7 @@ class CarlaApplication(): | |||||
| self.fApp.setStyle("carla" if stylesDir else "fusion") | self.fApp.setStyle("carla" if stylesDir else "fusion") | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| carlastyle1 = os.path.join(pathBinaries, "styles", "carlastyle.dll") | carlastyle1 = os.path.join(pathBinaries, "styles", "carlastyle.dll") | ||||
| carlastyle2 = os.path.join(pathResources, "styles", "carlastyle.dll") | carlastyle2 = os.path.join(pathResources, "styles", "carlastyle.dll") | ||||
| carlastyle = carlastyle2 if os.path.exists(carlastyle2) else carlastyle1 | carlastyle = carlastyle2 if os.path.exists(carlastyle2) else carlastyle1 | ||||
| @@ -123,14 +134,14 @@ class CarlaApplication(): | |||||
| # set palette | # set palette | ||||
| proThemeColor = settings.value(CARLA_KEY_MAIN_PRO_THEME_COLOR, CARLA_DEFAULT_MAIN_PRO_THEME_COLOR, str).lower() | proThemeColor = settings.value(CARLA_KEY_MAIN_PRO_THEME_COLOR, CARLA_DEFAULT_MAIN_PRO_THEME_COLOR, str).lower() | ||||
| if MACOS or proThemeColor == "black": | |||||
| if CARLA_OS_MAC or proThemeColor == "black": | |||||
| self.createPaletteBlack() | self.createPaletteBlack() | ||||
| elif proThemeColor == "blue": | elif proThemeColor == "blue": | ||||
| self.createPaletteBlue() | self.createPaletteBlue() | ||||
| def createApp(self, appName): | def createApp(self, appName): | ||||
| if qt_config == 5 and LINUX: | |||||
| if qt_config == 5 and CARLA_OS_LINUX: | |||||
| # AA_X11InitThreads is not available on old PyQt versions | # AA_X11InitThreads is not available on old PyQt versions | ||||
| try: | try: | ||||
| attr = Qt.AA_X11InitThreads | attr = Qt.AA_X11InitThreads | ||||
| @@ -142,17 +153,17 @@ class CarlaApplication(): | |||||
| QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) | QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) | ||||
| QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps) | QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| QApplication.setAttribute(Qt.AA_DontShowIconsInMenus) | QApplication.setAttribute(Qt.AA_DontShowIconsInMenus) | ||||
| args = sys.argv[:] | args = sys.argv[:] | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| args += ["-platform", "windows:fontengine=freetype"] | args += ["-platform", "windows:fontengine=freetype"] | ||||
| self.fApp = QCoreApplication(args) if gCarla.nogui else QApplication(args) | self.fApp = QCoreApplication(args) if gCarla.nogui else QApplication(args) | ||||
| self.fApp.setApplicationName(appName) | self.fApp.setApplicationName(appName) | ||||
| self.fApp.setApplicationVersion(VERSION) | |||||
| self.fApp.setApplicationVersion(CARLA_VERSION_STRING) | |||||
| self.fApp.setOrganizationName("falkTX") | self.fApp.setOrganizationName("falkTX") | ||||
| if self.fAppTranslator is not None: | if self.fAppTranslator is not None: | ||||
| @@ -306,3 +317,4 @@ class CarlaApplication(): | |||||
| self.fApp.quit() | self.fApp.quit() | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # pylint: enable=possibly-used-before-assignment | |||||
| @@ -1,20 +1,6 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | |||||
| # Carla Backend code | |||||
| # Copyright (C) 2011-2021 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. | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Imports (Global) | # Imports (Global) | ||||
| @@ -36,14 +22,27 @@ from ctypes import ( | |||||
| # Imports (Custom) | # Imports (Custom) | ||||
| from common import ( | from common import ( | ||||
| kIs64bit, HAIKU, LINUX, MACOS, WINDOWS, VERSION | |||||
| CARLA_OS_64BIT, | |||||
| CARLA_OS_BSD, | |||||
| CARLA_OS_GNU_HURD, | |||||
| CARLA_OS_HAIKU, | |||||
| CARLA_OS_LINUX, | |||||
| CARLA_OS_MAC, | |||||
| CARLA_OS_UNIX, | |||||
| CARLA_OS_WASM, | |||||
| CARLA_OS_WIN, | |||||
| CARLA_OS_WIN32, | |||||
| CARLA_OS_WIN64, | |||||
| CARLA_VERSION_HEX, | |||||
| CARLA_VERSION_STRING, | |||||
| CARLA_VERSION_STRMIN, | |||||
| ) | ) | ||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Define custom types | # Define custom types | ||||
| c_enum = c_int | c_enum = c_int | ||||
| c_uintptr = c_uint64 if kIs64bit else c_uint32 | |||||
| c_uintptr = c_uint64 if CARLA_OS_64BIT else c_uint32 | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Convert a ctypes c_char_p into a python string | # Convert a ctypes c_char_p into a python string | ||||
| @@ -1513,10 +1512,14 @@ PyCarlaRuntimeEngineDriverDeviceInfo = { | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Set BINARY_NATIVE | # Set BINARY_NATIVE | ||||
| if WINDOWS: | |||||
| BINARY_NATIVE = BINARY_WIN64 if kIs64bit else BINARY_WIN32 | |||||
| if CARLA_OS_WIN64: | |||||
| BINARY_NATIVE = BINARY_WIN64 | |||||
| elif CARLA_OS_WIN32: | |||||
| BINARY_NATIVE = BINARY_WIN32 | |||||
| elif CARLA_OS_64BIT: | |||||
| BINARY_NATIVE = BINARY_POSIX64 | |||||
| else: | else: | ||||
| BINARY_NATIVE = BINARY_POSIX64 if kIs64bit else BINARY_POSIX32 | |||||
| BINARY_NATIVE = BINARY_POSIX32 | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Carla Host object (Meta) | # Carla Host object (Meta) | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -218,7 +218,7 @@ class HostWindow(QMainWindow): | |||||
| self.fOscAddressTCP = "" | self.fOscAddressTCP = "" | ||||
| self.fOscAddressUDP = "" | self.fOscAddressUDP = "" | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.fMacClosingHelper = True | self.fMacClosingHelper = True | ||||
| # CancelableActionCallback Box | # CancelableActionCallback Box | ||||
| @@ -301,7 +301,7 @@ class HostWindow(QMainWindow): | |||||
| else: | else: | ||||
| self.ui.act_engine_start.setEnabled(True) | self.ui.act_engine_start.setEnabled(True) | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| self.ui.tabWidget.removeTab(2) | self.ui.tabWidget.removeTab(2) | ||||
| if self.host.isControl: | if self.host.isControl: | ||||
| @@ -352,7 +352,7 @@ class HostWindow(QMainWindow): | |||||
| self.ui.menu_Canvas.menuAction().setVisible(False) | self.ui.menu_Canvas.menuAction().setVisible(False) | ||||
| self.ui.tw_miniCanvas.hide() | self.ui.tw_miniCanvas.hide() | ||||
| self.ui.tabWidget.removeTab(1) | self.ui.tabWidget.removeTab(1) | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| self.ui.tabWidget.tabBar().hide() | self.ui.tabWidget.tabBar().hide() | ||||
| # ---------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------- | ||||
| @@ -467,7 +467,7 @@ class HostWindow(QMainWindow): | |||||
| # ---------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------- | ||||
| # Set up GUI (special stuff for Mac OS) | # Set up GUI (special stuff for Mac OS) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.ui.act_file_quit.setMenuRole(QAction.QuitRole) | self.ui.act_file_quit.setMenuRole(QAction.QuitRole) | ||||
| self.ui.act_settings_configure.setMenuRole(QAction.PreferencesRole) | self.ui.act_settings_configure.setMenuRole(QAction.PreferencesRole) | ||||
| self.ui.act_help_about.setMenuRole(QAction.AboutRole) | self.ui.act_help_about.setMenuRole(QAction.AboutRole) | ||||
| @@ -2029,7 +2029,7 @@ class HostWindow(QMainWindow): | |||||
| folder = diskFolders[i] | folder = diskFolders[i] | ||||
| self.ui.cb_disk.addItem(os.path.basename(folder), folder) | self.ui.cb_disk.addItem(os.path.basename(folder), folder) | ||||
| #if MACOS and not settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, True, bool): | |||||
| #if CARLA_OS_MAC and not settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, True, bool): | |||||
| # self.setUnifiedTitleAndToolBarOnMac(True) | # self.setUnifiedTitleAndToolBarOnMac(True) | ||||
| showMeters = settings.value("ShowMeters", True, bool) | showMeters = settings.value("ShowMeters", True, bool) | ||||
| @@ -2839,10 +2839,10 @@ class HostWindow(QMainWindow): | |||||
| # set our gui as parent for all plugins UIs | # set our gui as parent for all plugins UIs | ||||
| if self.host.manageUIs and not self.host.isControl: | if self.host.manageUIs and not self.host.isControl: | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| nsViewPtr = int(self.winId()) | nsViewPtr = int(self.winId()) | ||||
| winIdStr = "%x" % gCarla.utils.cocoa_get_window(nsViewPtr) | winIdStr = "%x" % gCarla.utils.cocoa_get_window(nsViewPtr) | ||||
| elif WINDOWS or QApplication.platformName() == "xcb": | |||||
| elif CARLA_OS_WIN or QApplication.platformName() == "xcb": | |||||
| winIdStr = "%x" % int(self.winId()) | winIdStr = "%x" % int(self.winId()) | ||||
| else: | else: | ||||
| winIdStr = "0" | winIdStr = "0" | ||||
| @@ -3004,7 +3004,7 @@ class HostWindow(QMainWindow): | |||||
| #def paintEvent(self, event): | #def paintEvent(self, event): | ||||
| #QMainWindow.paintEvent(self, event) | #QMainWindow.paintEvent(self, event) | ||||
| #if MACOS or not self.fSavedSettings[CARLA_KEY_CUSTOM_PAINTING]: | |||||
| #if CARLA_OS_MAC or not self.fSavedSettings[CARLA_KEY_CUSTOM_PAINTING]: | |||||
| #return | #return | ||||
| #painter = QPainter(self) | #painter = QPainter(self) | ||||
| @@ -3040,7 +3040,7 @@ class HostWindow(QMainWindow): | |||||
| patchcanvas.handleAllPluginsRemoved() | patchcanvas.handleAllPluginsRemoved() | ||||
| if MACOS and self.fMacClosingHelper and not (self.host.isControl or self.host.isPlugin): | |||||
| if CARLA_OS_MAC and self.fMacClosingHelper and not (self.host.isControl or self.host.isPlugin): | |||||
| self.fCustomStopAction = self.CUSTOM_ACTION_APP_CLOSE | self.fCustomStopAction = self.CUSTOM_ACTION_APP_CLOSE | ||||
| self.fMacClosingHelper = False | self.fMacClosingHelper = False | ||||
| event.ignore() | event.ignore() | ||||
| @@ -3350,7 +3350,7 @@ def initHost(initName, libPrefix, isControl, isPlugin, failError, HostClass = No | |||||
| # Print info | # Print info | ||||
| if not (gCarla.nogui and isinstance(gCarla.nogui, int)): | if not (gCarla.nogui and isinstance(gCarla.nogui, int)): | ||||
| print("Carla %s started, status:" % VERSION) | |||||
| print("Carla %s started, status:" % CARLA_VERSION_STRING) | |||||
| print(" Python version: %s" % sys.version.split(" ",1)[0]) | print(" Python version: %s" % sys.version.split(" ",1)[0]) | ||||
| print(" Qt version: %s" % QT_VERSION_STR) | print(" Qt version: %s" % QT_VERSION_STR) | ||||
| print(" PyQt version: %s" % PYQT_VERSION_STR) | print(" PyQt version: %s" % PYQT_VERSION_STR) | ||||
| @@ -3429,7 +3429,7 @@ def loadHostSettings(host): | |||||
| host.preferPluginBridges = settings.value(CARLA_KEY_ENGINE_PREFER_PLUGIN_BRIDGES, CARLA_DEFAULT_PREFER_PLUGIN_BRIDGES, bool) | host.preferPluginBridges = settings.value(CARLA_KEY_ENGINE_PREFER_PLUGIN_BRIDGES, CARLA_DEFAULT_PREFER_PLUGIN_BRIDGES, bool) | ||||
| host.preferUIBridges = settings.value(CARLA_KEY_ENGINE_PREFER_UI_BRIDGES, CARLA_DEFAULT_PREFER_UI_BRIDGES, bool) | host.preferUIBridges = settings.value(CARLA_KEY_ENGINE_PREFER_UI_BRIDGES, CARLA_DEFAULT_PREFER_UI_BRIDGES, bool) | ||||
| host.preventBadBehaviour = settings.value(CARLA_KEY_EXPERIMENTAL_PREVENT_BAD_BEHAVIOUR, CARLA_DEFAULT_EXPERIMENTAL_PREVENT_BAD_BEHAVIOUR, bool) | host.preventBadBehaviour = settings.value(CARLA_KEY_EXPERIMENTAL_PREVENT_BAD_BEHAVIOUR, CARLA_DEFAULT_EXPERIMENTAL_PREVENT_BAD_BEHAVIOUR, bool) | ||||
| host.showLogs = settings.value(CARLA_KEY_MAIN_SHOW_LOGS, CARLA_DEFAULT_MAIN_SHOW_LOGS, bool) and not WINDOWS | |||||
| host.showLogs = settings.value(CARLA_KEY_MAIN_SHOW_LOGS, CARLA_DEFAULT_MAIN_SHOW_LOGS, bool) and not CARLA_OS_WIN | |||||
| host.showPluginBridges = settings.value(CARLA_KEY_EXPERIMENTAL_PLUGIN_BRIDGES, CARLA_DEFAULT_EXPERIMENTAL_PLUGIN_BRIDGES, bool) | host.showPluginBridges = settings.value(CARLA_KEY_EXPERIMENTAL_PLUGIN_BRIDGES, CARLA_DEFAULT_EXPERIMENTAL_PLUGIN_BRIDGES, bool) | ||||
| host.showWineBridges = settings.value(CARLA_KEY_EXPERIMENTAL_WINE_BRIDGES, CARLA_DEFAULT_EXPERIMENTAL_WINE_BRIDGES, bool) | host.showWineBridges = settings.value(CARLA_KEY_EXPERIMENTAL_WINE_BRIDGES, CARLA_DEFAULT_EXPERIMENTAL_WINE_BRIDGES, bool) | ||||
| host.uiBridgesTimeout = settings.value(CARLA_KEY_ENGINE_UI_BRIDGES_TIMEOUT, CARLA_DEFAULT_UI_BRIDGES_TIMEOUT, int) | host.uiBridgesTimeout = settings.value(CARLA_KEY_ENGINE_UI_BRIDGES_TIMEOUT, CARLA_DEFAULT_UI_BRIDGES_TIMEOUT, int) | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -21,7 +21,9 @@ import ui_carla_settings | |||||
| import ui_carla_settings_driver | import ui_carla_settings_driver | ||||
| from carla_backend import ( | from carla_backend import ( | ||||
| LINUX, MACOS, WINDOWS, | |||||
| CARLA_OS_LINUX, | |||||
| CARLA_OS_MAC, | |||||
| CARLA_OS_WIN, | |||||
| ENGINE_DRIVER_DEVICE_HAS_CONTROL_PANEL, | ENGINE_DRIVER_DEVICE_HAS_CONTROL_PANEL, | ||||
| ENGINE_DRIVER_DEVICE_CAN_TRIPLE_BUFFER, | ENGINE_DRIVER_DEVICE_CAN_TRIPLE_BUFFER, | ||||
| ENGINE_DRIVER_DEVICE_VARIABLE_BUFFER_SIZE, | ENGINE_DRIVER_DEVICE_VARIABLE_BUFFER_SIZE, | ||||
| @@ -215,7 +217,7 @@ class DriverSettingsW(QDialog): | |||||
| self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) | self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.setWindowModality(Qt.WindowModal) | self.setWindowModality(Qt.WindowModal) | ||||
| # ------------------------------------------------------------------------------------------------------------- | # ------------------------------------------------------------------------------------------------------------- | ||||
| @@ -406,7 +408,7 @@ class RuntimeDriverSettingsW(QDialog): | |||||
| self.adjustSize() | self.adjustSize() | ||||
| self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) | self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.setWindowModality(Qt.WindowModal) | self.setWindowModality(Qt.WindowModal) | ||||
| # ------------------------------------------------------------------------------------------------------------- | # ------------------------------------------------------------------------------------------------------------- | ||||
| @@ -533,11 +535,11 @@ class CarlaSettingsW(QDialog): | |||||
| for i in range(Theme.THEME_MAX): | for i in range(Theme.THEME_MAX): | ||||
| self.ui.cb_canvas_theme.addItem(getThemeName(i)) | self.ui.cb_canvas_theme.addItem(getThemeName(i)) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.ui.group_main_theme.setEnabled(False) | self.ui.group_main_theme.setEnabled(False) | ||||
| self.ui.group_main_theme.setVisible(False) | self.ui.group_main_theme.setVisible(False) | ||||
| if WINDOWS or host.isControl: | |||||
| if CARLA_OS_WIN or host.isControl: | |||||
| self.ui.ch_main_show_logs.setEnabled(False) | self.ui.ch_main_show_logs.setEnabled(False) | ||||
| self.ui.ch_main_show_logs.setVisible(False) | self.ui.ch_main_show_logs.setVisible(False) | ||||
| @@ -576,15 +578,15 @@ class CarlaSettingsW(QDialog): | |||||
| self.ui.lw_page.hideRow(self.TAB_INDEX_OSC) | self.ui.lw_page.hideRow(self.TAB_INDEX_OSC) | ||||
| self.ui.lw_page.hideRow(self.TAB_INDEX_WINE) | self.ui.lw_page.hideRow(self.TAB_INDEX_WINE) | ||||
| if not LINUX: | |||||
| if not CARLA_OS_LINUX: | |||||
| self.ui.ch_exp_wine_bridges.setVisible(False) | self.ui.ch_exp_wine_bridges.setVisible(False) | ||||
| self.ui.ch_exp_prevent_bad_behaviour.setVisible(False) | self.ui.ch_exp_prevent_bad_behaviour.setVisible(False) | ||||
| self.ui.lw_page.hideRow(self.TAB_INDEX_WINE) | self.ui.lw_page.hideRow(self.TAB_INDEX_WINE) | ||||
| if not MACOS: | |||||
| if not CARLA_OS_MAC: | |||||
| self.ui.label_engine_ui_bridges_mac_note.setVisible(False) | self.ui.label_engine_ui_bridges_mac_note.setVisible(False) | ||||
| if not (LINUX or MACOS): | |||||
| if not (CARLA_OS_LINUX or CARLA_OS_MAC): | |||||
| self.ui.ch_exp_jack_apps.setVisible(False) | self.ui.ch_exp_jack_apps.setVisible(False) | ||||
| # FIXME, not implemented yet | # FIXME, not implemented yet | ||||
| @@ -599,7 +601,7 @@ class CarlaSettingsW(QDialog): | |||||
| self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) | self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.setWindowModality(Qt.WindowModal) | self.setWindowModality(Qt.WindowModal) | ||||
| # ------------------------------------------------------------------------------------------------------------- | # ------------------------------------------------------------------------------------------------------------- | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -26,6 +26,8 @@ except: | |||||
| from qt_compat import qt_config | from qt_compat import qt_config | ||||
| # pylint: disable=import-error | |||||
| if qt_config == 5: | if qt_config == 5: | ||||
| # import changed in PyQt 5.15.8, so try both | # import changed in PyQt 5.15.8, so try both | ||||
| try: | try: | ||||
| @@ -42,19 +44,25 @@ elif qt_config == 6: | |||||
| from PyQt6.QtGui import QIcon | from PyQt6.QtGui import QIcon | ||||
| from PyQt6.QtWidgets import QFileDialog, QMessageBox | from PyQt6.QtWidgets import QFileDialog, QMessageBox | ||||
| # pylint: enable=import-error | |||||
| # pylint: disable=possibly-used-before-assignment | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Custom) | # Imports (Custom) | ||||
| from carla_backend import ( | from carla_backend import ( | ||||
| CARLA_OS_64BIT, | |||||
| CARLA_OS_HAIKU, | |||||
| CARLA_OS_MAC, | |||||
| CARLA_OS_WIN, | |||||
| CARLA_VERSION_STRING, | |||||
| MAX_DEFAULT_PARAMETERS, | MAX_DEFAULT_PARAMETERS, | ||||
| ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS, | ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS, | ||||
| ENGINE_PROCESS_MODE_PATCHBAY, | ENGINE_PROCESS_MODE_PATCHBAY, | ||||
| ENGINE_TRANSPORT_MODE_INTERNAL, | ENGINE_TRANSPORT_MODE_INTERNAL, | ||||
| ENGINE_TRANSPORT_MODE_JACK | |||||
| ENGINE_TRANSPORT_MODE_JACK, | |||||
| ) | ) | ||||
| from common import kIs64bit, HAIKU, LINUX, MACOS, WINDOWS, VERSION | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Config | # Config | ||||
| @@ -65,7 +73,7 @@ X_DATADIR_X = None | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Platform specific stuff | # Platform specific stuff | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| WINDIR = os.getenv("WINDIR") | WINDIR = os.getenv("WINDIR") | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -74,7 +82,7 @@ if WINDOWS: | |||||
| envTMP = os.getenv("TMP") | envTMP = os.getenv("TMP") | ||||
| if envTMP is None: | if envTMP is None: | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| qWarning("TMP variable not set") | qWarning("TMP variable not set") | ||||
| TMP = QDir.tempPath() | TMP = QDir.tempPath() | ||||
| else: | else: | ||||
| @@ -92,7 +100,7 @@ del envTMP | |||||
| envHOME = os.getenv("HOME") | envHOME = os.getenv("HOME") | ||||
| if envHOME is None: | if envHOME is None: | ||||
| if not WINDOWS: | |||||
| if not CARLA_OS_WIN: | |||||
| qWarning("HOME variable not set") | qWarning("HOME variable not set") | ||||
| HOME = QDir.toNativeSeparators(QDir.homePath()) | HOME = QDir.toNativeSeparators(QDir.homePath()) | ||||
| else: | else: | ||||
| @@ -111,9 +119,9 @@ envPATH = os.getenv("PATH") | |||||
| if envPATH is None: | if envPATH is None: | ||||
| qWarning("PATH variable not set") | qWarning("PATH variable not set") | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| PATH = ("/opt/local/bin", "/usr/local/bin", "/usr/bin", "/bin") | PATH = ("/opt/local/bin", "/usr/local/bin", "/usr/bin", "/bin") | ||||
| elif WINDOWS: | |||||
| elif CARLA_OS_WIN: | |||||
| PATH = (os.path.join(WINDIR, "system32"), WINDIR) | PATH = (os.path.join(WINDIR, "system32"), WINDIR) | ||||
| else: | else: | ||||
| PATH = ("/usr/local/bin", "/usr/bin", "/bin") | PATH = ("/usr/local/bin", "/usr/bin", "/bin") | ||||
| @@ -262,7 +270,7 @@ CARLA_DEFAULT_MAIN_PRO_THEME_COLOR = "Black" | |||||
| CARLA_DEFAULT_MAIN_REFRESH_INTERVAL = 20 | CARLA_DEFAULT_MAIN_REFRESH_INTERVAL = 20 | ||||
| CARLA_DEFAULT_MAIN_CONFIRM_EXIT = True | CARLA_DEFAULT_MAIN_CONFIRM_EXIT = True | ||||
| CARLA_DEFAULT_MAIN_CLASSIC_SKIN = False | CARLA_DEFAULT_MAIN_CLASSIC_SKIN = False | ||||
| CARLA_DEFAULT_MAIN_SHOW_LOGS = bool(not WINDOWS) | |||||
| CARLA_DEFAULT_MAIN_SHOW_LOGS = bool(not CARLA_OS_WIN) | |||||
| CARLA_DEFAULT_MAIN_SYSTEM_ICONS = False | CARLA_DEFAULT_MAIN_SYSTEM_ICONS = False | ||||
| CARLA_DEFAULT_MAIN_EXPERIMENTAL = False | CARLA_DEFAULT_MAIN_EXPERIMENTAL = False | ||||
| @@ -296,11 +304,11 @@ CARLA_DEFAULT_AUDIO_BUFFER_SIZE = 512 | |||||
| CARLA_DEFAULT_AUDIO_SAMPLE_RATE = 44100 | CARLA_DEFAULT_AUDIO_SAMPLE_RATE = 44100 | ||||
| CARLA_DEFAULT_AUDIO_TRIPLE_BUFFER = False | CARLA_DEFAULT_AUDIO_TRIPLE_BUFFER = False | ||||
| if HAIKU: | |||||
| if CARLA_OS_HAIKU: | |||||
| CARLA_DEFAULT_AUDIO_DRIVER = "SDL" | CARLA_DEFAULT_AUDIO_DRIVER = "SDL" | ||||
| elif MACOS: | |||||
| elif CARLA_OS_MAC: | |||||
| CARLA_DEFAULT_AUDIO_DRIVER = "CoreAudio" | CARLA_DEFAULT_AUDIO_DRIVER = "CoreAudio" | ||||
| elif WINDOWS: | |||||
| elif CARLA_OS_WIN: | |||||
| CARLA_DEFAULT_AUDIO_DRIVER = "Windows Audio" | CARLA_DEFAULT_AUDIO_DRIVER = "Windows Audio" | ||||
| elif os.path.exists("/usr/bin/jackd") or os.path.exists("/usr/bin/jackdbus") or os.path.exists("/usr/bin/pw-jack"): | elif os.path.exists("/usr/bin/jackd") or os.path.exists("/usr/bin/jackdbus") or os.path.exists("/usr/bin/pw-jack"): | ||||
| CARLA_DEFAULT_AUDIO_DRIVER = "JACK" | CARLA_DEFAULT_AUDIO_DRIVER = "JACK" | ||||
| @@ -315,7 +323,7 @@ else: | |||||
| CARLA_DEFAULT_TRANSPORT_MODE = ENGINE_TRANSPORT_MODE_INTERNAL | CARLA_DEFAULT_TRANSPORT_MODE = ENGINE_TRANSPORT_MODE_INTERNAL | ||||
| # OSC | # OSC | ||||
| CARLA_DEFAULT_OSC_ENABLED = not (MACOS or WINDOWS) | |||||
| CARLA_DEFAULT_OSC_ENABLED = not (CARLA_OS_MAC or CARLA_OS_WIN) | |||||
| CARLA_DEFAULT_OSC_TCP_PORT_ENABLED = True | CARLA_DEFAULT_OSC_TCP_PORT_ENABLED = True | ||||
| CARLA_DEFAULT_OSC_TCP_PORT_NUMBER = 22752 | CARLA_DEFAULT_OSC_TCP_PORT_NUMBER = 22752 | ||||
| CARLA_DEFAULT_OSC_TCP_PORT_RANDOM = False | CARLA_DEFAULT_OSC_TCP_PORT_RANDOM = False | ||||
| @@ -358,7 +366,7 @@ DEFAULT_SF2_PATH = "" | |||||
| DEFAULT_SFZ_PATH = "" | DEFAULT_SFZ_PATH = "" | ||||
| DEFAULT_JSFX_PATH = "" | DEFAULT_JSFX_PATH = "" | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| splitter = ";" | splitter = ";" | ||||
| APPDATA = os.getenv("APPDATA") | APPDATA = os.getenv("APPDATA") | ||||
| @@ -396,7 +404,7 @@ if WINDOWS: | |||||
| DEFAULT_JSFX_PATH = APPDATA + "\\REAPER\\Effects" | DEFAULT_JSFX_PATH = APPDATA + "\\REAPER\\Effects" | ||||
| #DEFAULT_JSFX_PATH += ";" + PROGRAMFILES + "\\REAPER\\InstallData\\Effects" | #DEFAULT_JSFX_PATH += ";" + PROGRAMFILES + "\\REAPER\\InstallData\\Effects" | ||||
| if kIs64bit: | |||||
| if CARLA_OS_64BIT: | |||||
| DEFAULT_VST2_PATH += ";" + COMMONPROGRAMFILES + "\\VST2" | DEFAULT_VST2_PATH += ";" + COMMONPROGRAMFILES + "\\VST2" | ||||
| DEFAULT_VST3_PATH = COMMONPROGRAMFILES + "\\VST3" | DEFAULT_VST3_PATH = COMMONPROGRAMFILES + "\\VST3" | ||||
| @@ -419,7 +427,7 @@ if WINDOWS: | |||||
| DEFAULT_VST3_PATH += COMMONPROGRAMFILESx86 + "\\VST3" | DEFAULT_VST3_PATH += COMMONPROGRAMFILESx86 + "\\VST3" | ||||
| DEFAULT_CLAP_PATH += COMMONPROGRAMFILESx86 + "\\CLAP" | DEFAULT_CLAP_PATH += COMMONPROGRAMFILESx86 + "\\CLAP" | ||||
| elif HAIKU: | |||||
| elif CARLA_OS_HAIKU: | |||||
| splitter = ":" | splitter = ":" | ||||
| DEFAULT_LADSPA_PATH = HOME + "/.ladspa" | DEFAULT_LADSPA_PATH = HOME + "/.ladspa" | ||||
| @@ -442,7 +450,7 @@ elif HAIKU: | |||||
| DEFAULT_CLAP_PATH = HOME + "/.clap" | DEFAULT_CLAP_PATH = HOME + "/.clap" | ||||
| DEFAULT_CLAP_PATH += ":/system/add-ons/media/clapplugins" | DEFAULT_CLAP_PATH += ":/system/add-ons/media/clapplugins" | ||||
| elif MACOS: | |||||
| elif CARLA_OS_MAC: | |||||
| splitter = ":" | splitter = ":" | ||||
| DEFAULT_LADSPA_PATH = HOME + "/Library/Audio/Plug-Ins/LADSPA" | DEFAULT_LADSPA_PATH = HOME + "/Library/Audio/Plug-Ins/LADSPA" | ||||
| @@ -511,7 +519,7 @@ else: | |||||
| DEFAULT_JSFX_PATH = CONFIG_HOME + "/REAPER/Effects" | DEFAULT_JSFX_PATH = CONFIG_HOME + "/REAPER/Effects" | ||||
| #DEFAULT_JSFX_PATH += ":" + "/opt/REAPER/InstallData/Effects" | #DEFAULT_JSFX_PATH += ":" + "/opt/REAPER/InstallData/Effects" | ||||
| if not WINDOWS: | |||||
| if not CARLA_OS_WIN: | |||||
| winePrefix = os.getenv("WINEPREFIX") | winePrefix = os.getenv("WINEPREFIX") | ||||
| if not winePrefix: | if not winePrefix: | ||||
| @@ -525,7 +533,7 @@ if not WINDOWS: | |||||
| DEFAULT_VST3_PATH += ":" + winePrefix + "/drive_c/Program Files/Common Files/VST3" | DEFAULT_VST3_PATH += ":" + winePrefix + "/drive_c/Program Files/Common Files/VST3" | ||||
| DEFAULT_CLAP_PATH += ":" + winePrefix + "/drive_c/Program Files/Common Files/CLAP" | DEFAULT_CLAP_PATH += ":" + winePrefix + "/drive_c/Program Files/Common Files/CLAP" | ||||
| if kIs64bit: | |||||
| if CARLA_OS_64BIT: | |||||
| DEFAULT_VST2_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/VstPlugins" | DEFAULT_VST2_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/VstPlugins" | ||||
| DEFAULT_VST2_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/VSTPlugins" | DEFAULT_VST2_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/VSTPlugins" | ||||
| DEFAULT_VST2_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/Steinberg/VstPlugins" | DEFAULT_VST2_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/Steinberg/VstPlugins" | ||||
| @@ -540,7 +548,7 @@ if not WINDOWS: | |||||
| readEnvVars = True | readEnvVars = True | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| # Check if running Wine. If yes, ignore env vars | # Check if running Wine. If yes, ignore env vars | ||||
| # pylint: disable=import-error | # pylint: disable=import-error | ||||
| from winreg import ConnectRegistry, OpenKey, CloseKey, HKEY_CURRENT_USER | from winreg import ConnectRegistry, OpenKey, CloseKey, HKEY_CURRENT_USER | ||||
| @@ -620,7 +628,7 @@ if os.path.isfile(CWD): | |||||
| if CWD.endswith("/lib"): | if CWD.endswith("/lib"): | ||||
| CWD = CWD.rsplit("/lib",1)[0] | CWD = CWD.rsplit("/lib",1)[0] | ||||
| CXFREEZE = True | CXFREEZE = True | ||||
| if not WINDOWS: | |||||
| if not CARLA_OS_WIN: | |||||
| os.environ['CARLA_MAGIC_FILE'] = os.path.join(CWD, "magic.mgc") | os.environ['CARLA_MAGIC_FILE'] = os.path.join(CWD, "magic.mgc") | ||||
| else: | else: | ||||
| CXFREEZE = False | CXFREEZE = False | ||||
| @@ -628,9 +636,9 @@ else: | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Set DLL_EXTENSION | # Set DLL_EXTENSION | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| DLL_EXTENSION = "dll" | DLL_EXTENSION = "dll" | ||||
| elif MACOS: | |||||
| elif CARLA_OS_MAC: | |||||
| DLL_EXTENSION = "dylib" | DLL_EXTENSION = "dylib" | ||||
| else: | else: | ||||
| DLL_EXTENSION = "so" | DLL_EXTENSION = "so" | ||||
| @@ -708,7 +716,7 @@ def handleInitialCommandLineArguments(file): | |||||
| elif arg in ("-n", "--n", "-no-gui", "--no-gui", "-nogui", "--nogui"): | elif arg in ("-n", "--n", "-no-gui", "--no-gui", "-nogui", "--nogui"): | ||||
| gCarla.nogui = True | gCarla.nogui = True | ||||
| elif MACOS and arg.startswith("-psn_"): | |||||
| elif CARLA_OS_MAC and arg.startswith("-psn_"): | |||||
| pass | pass | ||||
| elif arg in ("-h", "--h", "-help", "--help"): | elif arg in ("-h", "--h", "-help", "--help"): | ||||
| @@ -737,7 +745,7 @@ def handleInitialCommandLineArguments(file): | |||||
| elif arg in ("-v", "--v", "-version", "--version"): | elif arg in ("-v", "--v", "-version", "--version"): | ||||
| pathBinaries, pathResources = getPaths(libPrefix) | pathBinaries, pathResources = getPaths(libPrefix) | ||||
| print("Using Carla version %s" % VERSION) | |||||
| print("Using Carla version %s" % CARLA_VERSION_STRING) | |||||
| print(" Python version: %s" % sys.version.split(" ",1)[0]) | print(" Python version: %s" % sys.version.split(" ",1)[0]) | ||||
| print(" Qt version: %s" % QT_VERSION_STR) | print(" Qt version: %s" % QT_VERSION_STR) | ||||
| print(" PyQt version: %s" % PYQT_VERSION_STR) | print(" PyQt version: %s" % PYQT_VERSION_STR) | ||||
| @@ -785,7 +793,7 @@ def getInitialProjectFile(skipExistCheck = False): | |||||
| continue | continue | ||||
| if arg in ("-n", "--n", "-no-gui", "--no-gui", "-nogui", "--nogui", "--gdb"): | if arg in ("-n", "--n", "-no-gui", "--no-gui", "-nogui", "--nogui", "--gdb"): | ||||
| continue | continue | ||||
| if MACOS and arg.startswith("-psn_"): | |||||
| if CARLA_OS_MAC and arg.startswith("-psn_"): | |||||
| continue | continue | ||||
| arg = os.path.expanduser(arg) | arg = os.path.expanduser(arg) | ||||
| if skipExistCheck or os.path.exists(arg): | if skipExistCheck or os.path.exists(arg): | ||||
| @@ -914,7 +922,10 @@ def CustomMessageBox(parent, icon, title, text, | |||||
| msgBox.setInformativeText(extraText) | msgBox.setInformativeText(extraText) | ||||
| msgBox.setStandardButtons(buttons) | msgBox.setStandardButtons(buttons) | ||||
| msgBox.setDefaultButton(defButton) | msgBox.setDefaultButton(defButton) | ||||
| # pylint: disable=no-value-for-parameter | |||||
| return msgBox.exec_() | return msgBox.exec_() | ||||
| # pylint: enable=no-value-for-parameter | |||||
| # pylint: enable=too-many-arguments | # pylint: enable=too-many-arguments | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # pylint: enable=possibly-used-before-assignment | |||||
| @@ -1,20 +1,6 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | |||||
| # Carla Backend utils | |||||
| # Copyright (C) 2011-2020 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. | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Global) | # Imports (Global) | ||||
| @@ -35,6 +21,7 @@ from ctypes import ( | |||||
| # Imports (Custom) | # Imports (Custom) | ||||
| from carla_backend import ( | from carla_backend import ( | ||||
| CARLA_OS_WIN, | |||||
| PLUGIN_NONE, | PLUGIN_NONE, | ||||
| PLUGIN_INTERNAL, | PLUGIN_INTERNAL, | ||||
| PLUGIN_LADSPA, | PLUGIN_LADSPA, | ||||
| @@ -60,7 +47,6 @@ from carla_backend import ( | |||||
| PLUGIN_CATEGORY_MODULATOR, | PLUGIN_CATEGORY_MODULATOR, | ||||
| PLUGIN_CATEGORY_UTILITY, | PLUGIN_CATEGORY_UTILITY, | ||||
| PLUGIN_CATEGORY_OTHER, | PLUGIN_CATEGORY_OTHER, | ||||
| WINDOWS, | |||||
| c_enum, c_uintptr, | c_enum, c_uintptr, | ||||
| charPtrToString, | charPtrToString, | ||||
| charPtrPtrToStringList, | charPtrPtrToStringList, | ||||
| @@ -347,7 +333,7 @@ class CarlaUtils(): | |||||
| self._pipeClientCallback = None | self._pipeClientCallback = None | ||||
| # use _putenv on windows | # use _putenv on windows | ||||
| if not WINDOWS: | |||||
| if not CARLA_OS_WIN: | |||||
| self.msvcrt = None | self.msvcrt = None | ||||
| return | return | ||||
| @@ -363,7 +349,7 @@ class CarlaUtils(): | |||||
| def setenv(self, key, value): | def setenv(self, key, value): | ||||
| environ[key] = value | environ[key] = value | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| keyvalue = "%s=%s" % (key, value) | keyvalue = "%s=%s" % (key, value) | ||||
| # pylint: disable=protected-access | # pylint: disable=protected-access | ||||
| self.msvcrt._putenv(keyvalue.encode("utf-8")) | self.msvcrt._putenv(keyvalue.encode("utf-8")) | ||||
| @@ -374,7 +360,7 @@ class CarlaUtils(): | |||||
| if environ.get(key) is not None: | if environ.get(key) is not None: | ||||
| environ.pop(key) | environ.pop(key) | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| keyrm = "%s=" % key | keyrm = "%s=" % key | ||||
| # pylint: disable=protected-access | # pylint: disable=protected-access | ||||
| self.msvcrt._putenv(keyrm.encode("utf-8")) | self.msvcrt._putenv(keyrm.encode("utf-8")) | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -47,8 +47,10 @@ import ui_carla_edit | |||||
| import ui_carla_parameter | import ui_carla_parameter | ||||
| from carla_backend import ( | from carla_backend import ( | ||||
| MACOS, WINDOWS, | |||||
| BINARY_NATIVE, | BINARY_NATIVE, | ||||
| CARLA_VERSION_STRING, | |||||
| CARLA_OS_MAC, | |||||
| CARLA_OS_WIN, | |||||
| PLUGIN_INTERNAL, | PLUGIN_INTERNAL, | ||||
| PLUGIN_DSSI, | PLUGIN_DSSI, | ||||
| PLUGIN_LV2, | PLUGIN_LV2, | ||||
| @@ -92,7 +94,6 @@ from carla_backend import ( | |||||
| from carla_shared import ( | from carla_shared import ( | ||||
| MIDI_CC_LIST, MAX_MIDI_CC_LIST_ITEM, | MIDI_CC_LIST, MAX_MIDI_CC_LIST_ITEM, | ||||
| VERSION, | |||||
| countDecimalPoints, | countDecimalPoints, | ||||
| fontMetricsHorizontalAdvance, | fontMetricsHorizontalAdvance, | ||||
| setUpSignals, | setUpSignals, | ||||
| @@ -100,7 +101,6 @@ from carla_shared import ( | |||||
| ) | ) | ||||
| from carla_utils import getPluginTypeAsString | from carla_utils import getPluginTypeAsString | ||||
| #) | |||||
| from widgets.collapsablewidget import CollapsibleBox | from widgets.collapsablewidget import CollapsibleBox | ||||
| from widgets.pixmapkeyboard import PixmapKeyboardHArea | from widgets.pixmapkeyboard import PixmapKeyboardHArea | ||||
| @@ -132,8 +132,8 @@ class CarlaAboutW(QDialog): | |||||
| self.ui.l_about.setText(self.tr("" | self.ui.l_about.setText(self.tr("" | ||||
| "<br>Version %s" | "<br>Version %s" | ||||
| "<br>Carla is a fully-featured audio plugin host%s.<br>" | "<br>Carla is a fully-featured audio plugin host%s.<br>" | ||||
| "<br>Copyright (C) 2011-2022 falkTX<br>" | |||||
| "" % (VERSION, extraInfo))) | |||||
| "<br>Copyright (C) 2011-2025 falkTX<br>" | |||||
| "" % (CARLA_VERSION_STRING, extraInfo))) | |||||
| if self.ui.about.palette().color(QPalette.Background).blackF() < 0.5: | if self.ui.about.palette().color(QPalette.Background).blackF() < 0.5: | ||||
| self.ui.l_icons.setPixmap(QPixmap(":/bitmaps/carla_about_black.png")) | self.ui.l_icons.setPixmap(QPixmap(":/bitmaps/carla_about_black.png")) | ||||
| @@ -216,7 +216,7 @@ class CarlaAboutW(QDialog): | |||||
| self.ui.l_vst2.setText(self.tr("About 85% complete (missing vst bank/presets and some minor stuff)")) | self.ui.l_vst2.setText(self.tr("About 85% complete (missing vst bank/presets and some minor stuff)")) | ||||
| self.ui.l_vst3.setText(self.tr("About 66% complete")) | self.ui.l_vst3.setText(self.tr("About 66% complete")) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.ui.l_au.setText(self.tr("About 20% complete")) | self.ui.l_au.setText(self.tr("About 20% complete")) | ||||
| else: | else: | ||||
| self.ui.line_vst3.hide() | self.ui.line_vst3.hide() | ||||
| @@ -234,12 +234,12 @@ class CarlaAboutW(QDialog): | |||||
| flags = self.windowFlags() | flags = self.windowFlags() | ||||
| flags &= ~Qt.WindowContextHelpButtonHint | flags &= ~Qt.WindowContextHelpButtonHint | ||||
| if WINDOWS: | |||||
| if CARLA_OS_WIN: | |||||
| flags |= Qt.MSWindowsFixedSizeDialogHint | flags |= Qt.MSWindowsFixedSizeDialogHint | ||||
| self.setWindowFlags(flags) | self.setWindowFlags(flags) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.setWindowModality(Qt.WindowModal) | self.setWindowModality(Qt.WindowModal) | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -1281,7 +1281,7 @@ class PluginEdit(QDialog): | |||||
| QDialog.setVisible(self, yesNo) | QDialog.setVisible(self, yesNo) | ||||
| if MACOS and yesNo: | |||||
| if CARLA_OS_MAC and yesNo: | |||||
| parent = self.parent() | parent = self.parent() | ||||
| if parent is None: | if parent is None: | ||||
| return | return | ||||
| @@ -1,20 +1,6 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | |||||
| # Common Carla code | |||||
| # Copyright (C) 2011-2022 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. | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Imports (Global) | # Imports (Global) | ||||
| @@ -25,40 +11,43 @@ from sys import platform, maxsize | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Set Version | # Set Version | ||||
| VERSION = "2.6.0-alpha1" | |||||
| CARLA_VERSION_HEX = 0x020591 | |||||
| CARLA_VERSION_STRING = "2.6.0-alpha1" | |||||
| CARLA_VERSION_STRMIN = "2.6" | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # 64bit check | |||||
| # Set Platform | |||||
| CARLA_OS_BSD = False | |||||
| CARLA_OS_GNU_HURD = False | |||||
| CARLA_OS_HAIKU = False | |||||
| CARLA_OS_LINUX = False | |||||
| CARLA_OS_MAC = False | |||||
| CARLA_OS_UNIX = False | |||||
| CARLA_OS_WASM = False | |||||
| CARLA_OS_WIN = False | |||||
| CARLA_OS_WIN32 = False | |||||
| CARLA_OS_WIN64 = False | |||||
| kIs64bit = bool(architecture()[0] == "64bit" and maxsize > 2**32) | |||||
| if platform == "darwin": | |||||
| CARLA_OS_MAC = True | |||||
| elif platform == "haiku": | |||||
| CARLA_OS_HAIKU = True | |||||
| elif platform == "linux": | |||||
| CARLA_OS_LINUX = True | |||||
| elif platform == "win32": | |||||
| CARLA_OS_WIN32 = True | |||||
| elif platform == "win64": | |||||
| CARLA_OS_WIN64 = True | |||||
| if CARLA_OS_WIN32 and CARLA_OS_WIN64: | |||||
| CARLA_OS_WIN = True | |||||
| elif CARLA_OS_BSD or CARLA_OS_GNU_HURD or CARLA_OS_LINUX or CARLA_OS_MAC: | |||||
| CARLA_OS_UNIX = True | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Set Platform | |||||
| # 64bit check | |||||
| if platform == "darwin": | |||||
| HAIKU = False | |||||
| LINUX = False | |||||
| MACOS = True | |||||
| WINDOWS = False | |||||
| elif "haiku" in platform: | |||||
| HAIKU = True | |||||
| LINUX = False | |||||
| MACOS = False | |||||
| WINDOWS = False | |||||
| elif "linux" in platform: | |||||
| HAIKU = False | |||||
| LINUX = True | |||||
| MACOS = False | |||||
| WINDOWS = False | |||||
| elif platform in ("win32", "win64", "cygwin"): | |||||
| HAIKU = False | |||||
| LINUX = False | |||||
| MACOS = False | |||||
| WINDOWS = True | |||||
| else: | |||||
| HAIKU = False | |||||
| LINUX = False | |||||
| MACOS = False | |||||
| WINDOWS = False | |||||
| CARLA_OS_64BIT = bool(architecture()[0] == "64bit" and maxsize > 2**32) | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -1,4 +1,4 @@ | |||||
| // SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| // SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| // SPDX-License-Identifier: GPL-2.0-or-later | // SPDX-License-Identifier: GPL-2.0-or-later | ||||
| #include "pluginlistdialog.hpp" | #include "pluginlistdialog.hpp" | ||||
| @@ -908,7 +908,7 @@ PluginListDialog::PluginListDialog(QWidget* const parent, const HostSettings* co | |||||
| #if 0 | #if 0 | ||||
| // NOTE: We Assume win32 carla build will not run win64 plugins | // NOTE: We Assume win32 carla build will not run win64 plugins | ||||
| if (WINDOWS and not kIs64bit) or not host.showPluginBridges: | |||||
| if (CARLA_OS_WIN and not CARLA_OS_64BIT) or not host.showPluginBridges: | |||||
| ui.ch_native.setChecked(True) | ui.ch_native.setChecked(True) | ||||
| ui.ch_native.setEnabled(False) | ui.ch_native.setEnabled(False) | ||||
| ui.ch_native.setVisible(True) | ui.ch_native.setVisible(True) | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -21,7 +21,8 @@ elif qt_config == 6: | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
| from carla_shared import MACOS, CustomMessageBox, gCarla | |||||
| from carla_backend import CARLA_OS_MAC | |||||
| from carla_shared import CustomMessageBox, gCarla | |||||
| # --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
| # Widget Class | # Widget Class | ||||
| @@ -47,7 +48,7 @@ class DraggableGraphicsView(QGraphicsView): | |||||
| if os.path.isdir(filename): | if os.path.isdir(filename): | ||||
| #if os.path.exists(os.path.join(filename, "manifest.ttl")): | #if os.path.exists(os.path.join(filename, "manifest.ttl")): | ||||
| #return True | #return True | ||||
| if MACOS and lfilename.endswith(".vst"): | |||||
| if CARLA_OS_MAC and lfilename.endswith(".vst"): | |||||
| return True | return True | ||||
| if lfilename.endswith(".vst3") and ".vst3" in self.fSupportedExtensions: | if lfilename.endswith(".vst3") and ".vst3" in self.fSupportedExtensions: | ||||
| return True | return True | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -24,7 +24,8 @@ elif qt_config == 6: | |||||
| import ui_inputdialog_value | import ui_inputdialog_value | ||||
| from carla_shared import countDecimalPoints, MACOS | |||||
| from carla_backend import CARLA_OS_MAC | |||||
| from carla_shared import countDecimalPoints | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Get a fixed value within min/max bounds | # Get a fixed value within min/max bounds | ||||
| @@ -59,7 +60,7 @@ class CustomInputDialog(QDialog): | |||||
| self.ui.doubleSpinBox.setPrefix(prefix) | self.ui.doubleSpinBox.setPrefix(prefix) | ||||
| self.ui.doubleSpinBox.setSuffix(suffix) | self.ui.doubleSpinBox.setSuffix(suffix) | ||||
| if MACOS: | |||||
| if CARLA_OS_MAC: | |||||
| self.setWindowModality(Qt.WindowModal) | self.setWindowModality(Qt.WindowModal) | ||||
| if not scalePoints: | if not scalePoints: | ||||
| @@ -1,5 +1,5 @@ | |||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
| # SPDX-FileCopyrightText: 2011-2024 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com> | |||||
| # SPDX-License-Identifier: GPL-2.0-or-later | # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -24,7 +24,7 @@ elif qt_config == 6: | |||||
| # ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
| # Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
| from carla_backend import CUSTOM_DATA_TYPE_PROPERTY, MACOS | |||||
| from carla_backend import CARLA_OS_MAC, CUSTOM_DATA_TYPE_PROPERTY | |||||
| from carla_shared import gCarla, CustomMessageBox | from carla_shared import gCarla, CustomMessageBox | ||||
| from carla_skin import createPluginSlot | from carla_skin import createPluginSlot | ||||
| @@ -259,7 +259,7 @@ class RackListWidget(QListWidget): | |||||
| if os.path.isdir(filename): | if os.path.isdir(filename): | ||||
| #if os.path.exists(os.path.join(filename, "manifest.ttl")): | #if os.path.exists(os.path.join(filename, "manifest.ttl")): | ||||
| #return True | #return True | ||||
| if MACOS and lfilename.endswith(".vst"): | |||||
| if CARLA_OS_MAC and lfilename.endswith(".vst"): | |||||
| return True | return True | ||||
| if lfilename.endswith(".vst3") and ".vst3" in self.fSupportedExtensions: | if lfilename.endswith(".vst3") and ".vst3" in self.fSupportedExtensions: | ||||
| return True | return True | ||||