@@ -31,7 +31,7 @@ except: | |||
from carla_host import * | |||
from carla_rack import CarlaRackW | |||
#from carla_patchbay import CarlaPatchbayW | |||
from carla_patchbay import CarlaPatchbayW | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Main Window | |||
@@ -40,8 +40,8 @@ class CarlaMiniW(HostWindow): | |||
def __init__(self, parent=None): | |||
HostWindow.__init__(self, parent) | |||
self.fContainer = CarlaRackW(self) | |||
#self.fContainer = CarlaPatchbayW(self) | |||
#self.fContainer = CarlaRackW(self) | |||
self.fContainer = CarlaPatchbayW(self) | |||
self.setCentralWidget(self.fContainer) | |||
Carla.host.engine_init("JACK", "Carla") | |||
@@ -55,7 +55,7 @@ class CarlaMiniW(HostWindow): | |||
HostWindow.closeEvent(self, event) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# --------------- main ------------------ | |||
# Main | |||
if __name__ == '__main__': | |||
# App initialization | |||
@@ -65,15 +65,9 @@ if __name__ == '__main__': | |||
app.setOrganizationName("falkTX") | |||
app.setWindowIcon(QIcon(":/scalable/carla.svg")) | |||
libName = carla_library_filename | |||
libPath = os.path.join(carla_library_filename.replace(carla_libname, ""), "..", "modules", "carla_native", "resources") | |||
# Init backend | |||
print("libName:", libName, ":", carla_libname) | |||
Carla.host = Host(libName) | |||
initHost() | |||
Carla.host.set_engine_option(OPTION_PROCESS_NAME, 0, "carla") | |||
Carla.host.set_engine_option(OPTION_PATH_RESOURCES, 0, libPath) | |||
# Create GUI and start engine | |||
Carla.gui = CarlaMiniW() | |||
@@ -350,7 +350,7 @@ class SearchPluginsThread(QThread): | |||
self.fCheckSF2 = False | |||
self.fCheckSFZ = False | |||
self.fToolNative = carla_discovery_native | |||
self.fToolNative = Carla.discovery_native | |||
self.fCurCount = 0 | |||
self.fCurPercentValue = 0 | |||
@@ -365,6 +365,8 @@ class SearchPluginsThread(QThread): | |||
self.fCsoundPlugins = [] | |||
self.fKitPlugins = [] | |||
print(Carla.discovery_native) | |||
# ------------------------------------------------------------- | |||
def hasSomethingChanged(self): | |||
@@ -466,25 +468,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkLADSPA(OS, carla_discovery_posix32) | |||
self._checkLADSPA(OS, Carla.discovery_posix32) | |||
settingsDB.setValue("Plugins/LADSPA_posix32", self.fLadspaPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkLADSPA(OS, carla_discovery_posix64) | |||
self._checkLADSPA(OS, Carla.discovery_posix64) | |||
settingsDB.setValue("Plugins/LADSPA_posix64", self.fLadspaPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkLADSPA("WINDOWS", carla_discovery_win32, not WINDOWS) | |||
self._checkLADSPA("WINDOWS", Carla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/LADSPA_win32", self.fLadspaPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkLADSPA("WINDOWS", carla_discovery_win64, not WINDOWS) | |||
self._checkLADSPA("WINDOWS", Carla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/LADSPA_win64", self.fLadspaPlugins) | |||
settingsDB.sync() | |||
@@ -512,25 +514,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkDSSI(OS, carla_discovery_posix32) | |||
self._checkDSSI(OS, Carla.discovery_posix32) | |||
settingsDB.setValue("Plugins/DSSI_posix32", self.fDssiPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkDSSI(OS, carla_discovery_posix64) | |||
self._checkDSSI(OS, Carla.discovery_posix64) | |||
settingsDB.setValue("Plugins/DSSI_posix64", self.fDssiPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkDSSI("WINDOWS", carla_discovery_win32, not WINDOWS) | |||
self._checkDSSI("WINDOWS", Carla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/DSSI_win32", self.fDssiPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkDSSI("WINDOWS", carla_discovery_win64, not WINDOWS) | |||
self._checkDSSI("WINDOWS", Carla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/DSSI_win64", self.fDssiPlugins) | |||
settingsDB.sync() | |||
@@ -545,25 +547,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkLV2(carla_discovery_posix32) | |||
self._checkLV2(Carla.discovery_posix32) | |||
settingsDB.setValue("Plugins/LV2_posix32", self.fLv2Plugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkLV2(carla_discovery_posix64) | |||
self._checkLV2(Carla.discovery_posix64) | |||
settingsDB.setValue("Plugins/LV2_posix64", self.fLv2Plugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkLV2(carla_discovery_win32, not WINDOWS) | |||
self._checkLV2(Carla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/LV2_win32", self.fLv2Plugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkLV2(carla_discovery_win64, not WINDOWS) | |||
self._checkLV2(Carla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/LV2_win64", self.fLv2Plugins) | |||
settingsDB.sync() | |||
@@ -578,25 +580,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkVST(OS, carla_discovery_posix32) | |||
self._checkVST(OS, Carla.discovery_posix32) | |||
settingsDB.setValue("Plugins/VST_posix32", self.fVstPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkVST(OS, carla_discovery_posix64) | |||
self._checkVST(OS, Carla.discovery_posix64) | |||
settingsDB.setValue("Plugins/VST_posix64", self.fVstPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkVST("WINDOWS", carla_discovery_win32, not WINDOWS) | |||
self._checkVST("WINDOWS", Carla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/VST_win32", self.fVstPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkVST("WINDOWS", carla_discovery_win64, not WINDOWS) | |||
self._checkVST("WINDOWS", Carla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/VST_win64", self.fVstPlugins) | |||
settingsDB.sync() | |||
@@ -611,13 +613,13 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkAU(carla_discovery_posix32) | |||
self._checkAU(Carla.discovery_posix32) | |||
settingsDB.setValue("Plugins/AU_posix32", self.fAuPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkAU(carla_discovery_posix64) | |||
self._checkAU(Carla.discovery_posix64) | |||
settingsDB.setValue("Plugins/AU_posix64", self.fAuPlugins) | |||
settingsDB.sync() | |||
@@ -939,28 +941,28 @@ class PluginRefreshW(QDialog): | |||
self.ui.ch_posix32.setText("MacOS 32bit") | |||
self.ui.ch_posix64.setText("MacOS 64bit") | |||
if carla_discovery_posix32 and not WINDOWS: | |||
if Carla.discovery_posix32 and not WINDOWS: | |||
self.ui.ico_posix32.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_posix32.setPixmap(self.fIconNo) | |||
self.ui.ch_posix32.setChecked(False) | |||
self.ui.ch_posix32.setEnabled(False) | |||
if carla_discovery_posix64 and not WINDOWS: | |||
if Carla.discovery_posix64 and not WINDOWS: | |||
self.ui.ico_posix64.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_posix64.setPixmap(self.fIconNo) | |||
self.ui.ch_posix64.setChecked(False) | |||
self.ui.ch_posix64.setEnabled(False) | |||
if carla_discovery_win32: | |||
if Carla.discovery_win32: | |||
self.ui.ico_win32.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_win32.setPixmap(self.fIconNo) | |||
self.ui.ch_win32.setChecked(False) | |||
self.ui.ch_win32.setEnabled(False) | |||
if carla_discovery_win64: | |||
if Carla.discovery_win64: | |||
self.ui.ico_win64.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_win64.setPixmap(self.fIconNo) | |||
@@ -972,35 +974,35 @@ class PluginRefreshW(QDialog): | |||
else: | |||
self.ui.ico_rdflib.setPixmap(self.fIconNo) | |||
hasNative = bool(carla_discovery_native) | |||
hasNative = bool(Carla.discovery_native) | |||
hasNonNative = False | |||
if WINDOWS: | |||
if kIs64bit: | |||
hasNative = bool(carla_discovery_win64) | |||
hasNonNative = bool(carla_discovery_win32) | |||
self.fThread.setSearchToolNative(carla_discovery_win64) | |||
hasNative = bool(Carla.discovery_win64) | |||
hasNonNative = bool(Carla.discovery_win32) | |||
self.fThread.setSearchToolNative(Carla.discovery_win64) | |||
self.ui.ch_win64.setChecked(False) | |||
self.ui.ch_win64.setVisible(False) | |||
self.ui.ico_win64.setVisible(False) | |||
self.ui.label_win64.setVisible(False) | |||
else: | |||
hasNative = bool(carla_discovery_win32) | |||
hasNonNative = bool(carla_discovery_win64) | |||
self.fThread.setSearchToolNative(carla_discovery_win32) | |||
hasNative = bool(Carla.discovery_win32) | |||
hasNonNative = bool(Carla.discovery_win64) | |||
self.fThread.setSearchToolNative(Carla.discovery_win32) | |||
self.ui.ch_win32.setChecked(False) | |||
self.ui.ch_win32.setVisible(False) | |||
self.ui.ico_win32.setVisible(False) | |||
self.ui.label_win32.setVisible(False) | |||
elif LINUX or MACOS: | |||
if kIs64bit: | |||
hasNonNative = bool(carla_discovery_posix32 or carla_discovery_win32 or carla_discovery_win64) | |||
hasNonNative = bool(Carla.discovery_posix32 or Carla.discovery_win32 or Carla.discovery_win64) | |||
self.ui.ch_posix64.setChecked(False) | |||
self.ui.ch_posix64.setVisible(False) | |||
self.ui.ico_posix64.setVisible(False) | |||
self.ui.label_posix64.setVisible(False) | |||
else: | |||
hasNonNative = bool(carla_discovery_posix64 or carla_discovery_win32 or carla_discovery_win64) | |||
hasNonNative = bool(Carla.discovery_posix64 or Carla.discovery_win32 or Carla.discovery_win64) | |||
self.ui.ch_posix32.setChecked(False) | |||
self.ui.ch_posix32.setVisible(False) | |||
self.ui.ico_posix32.setVisible(False) | |||
@@ -1662,10 +1664,23 @@ class PluginDatabaseW(QDialog): | |||
self.close() | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# TESTING | |||
# Main | |||
if __name__ == '__main__': | |||
try: | |||
from PyQt5.QtWidgets import QApplication | |||
except: | |||
from PyQt4.QtGui import QApplication | |||
app = QApplication(sys.argv) | |||
app.setApplicationName("Carla") | |||
app.setApplicationVersion(VERSION) | |||
app.setOrganizationName("falkTX") | |||
app.setWindowIcon(QIcon(":/scalable/carla.svg")) | |||
initHost(False) | |||
gui = PluginDatabaseW(None) | |||
gui.show() | |||
#from PyQt5.QtWidgets import QApplication | |||
#app = QApplication(sys.argv) | |||
#gui = PluginDatabaseW(None) | |||
#gui.show() | |||
#app.exec_() | |||
sys.exit(app.exec_()) |
@@ -198,70 +198,15 @@ class HostWindow(QMainWindow): | |||
self.ui = ui_carla_host.Ui_CarlaHostW() | |||
self.ui.setupUi(self) | |||
# ------------------------------------------------------------- | |||
# Set bridge paths | |||
if carla_bridge_native: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_NATIVE, 0, carla_bridge_native) | |||
if carla_bridge_posix32: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_POSIX32, 0, carla_bridge_posix32) | |||
if carla_bridge_posix64: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_POSIX64, 0, carla_bridge_posix64) | |||
if carla_bridge_win32: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_WIN32, 0, carla_bridge_win32) | |||
if carla_bridge_win64: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_WIN64, 0, carla_bridge_win64) | |||
if carla_bridge_lv2_external: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_EXTERNAL, 0, carla_bridge_lv2_external) | |||
if WINDOWS: | |||
if carla_bridge_lv2_windows: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_WINDOWS, 0, carla_bridge_lv2_windows) | |||
if carla_bridge_vst_hwnd: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_HWND, 0, carla_bridge_vst_hwnd) | |||
elif MACOS: | |||
if carla_bridge_lv2_cocoa: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_COCOA, 0, carla_bridge_lv2_cocoa) | |||
if carla_bridge_vst_mac: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_MAC, 0, carla_bridge_vst_mac) | |||
else: | |||
if carla_bridge_lv2_gtk2: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_GTK2, 0, carla_bridge_lv2_gtk2) | |||
if carla_bridge_lv2_gtk3: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_GTK3, 0, carla_bridge_lv2_gtk3) | |||
if carla_bridge_lv2_qt4: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_QT4, 0, carla_bridge_lv2_qt4) | |||
if carla_bridge_lv2_qt5: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_QT5, 0, carla_bridge_lv2_qt5) | |||
if carla_bridge_lv2_x11: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_X11, 0, carla_bridge_lv2_x11) | |||
if carla_bridge_vst_x11: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_X11, 0, carla_bridge_vst_x11) | |||
if False: | |||
Carla.gui = self | |||
self.fContainer = CarlaDummyW(self) | |||
# ------------------------------------------------------------- | |||
# Set callback | |||
Carla.host.set_engine_callback(EngineCallback) | |||
# ------------------------------------------------------------- | |||
# Set custom signal handling | |||
setUpSignals() | |||
# ------------------------------------------------------------- | |||
# Internal stuff | |||
@@ -272,8 +217,6 @@ class HostWindow(QMainWindow): | |||
self.fLadspaRdfNeedsUpdate = True | |||
self.fLadspaRdfList = [] | |||
self.fContainer = CarlaDummyW(self) | |||
# ------------------------------------------------------------- | |||
# Connect actions to functions | |||
@@ -31,11 +31,11 @@ except: | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Custom) | |||
#import patchcanvas | |||
import ui_carla_settings | |||
import ui_carla_settings_driver | |||
from carla_shared import * | |||
from patchcanvas_theme import * | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Carla defaults | |||
@@ -70,6 +70,12 @@ else: | |||
CARLA_DEFAULT_PROCESS_MODE = PROCESS_MODE_CONTINUOUS_RACK | |||
CARLA_DEFAULT_TRANSPORT_MODE = TRANSPORT_MODE_INTERNAL | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# PatchCanvas defines | |||
CANVAS_ANTIALIASING_SMALL = 1 | |||
CANVAS_EYECANDY_SMALL = 1 | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# ... | |||
@@ -177,7 +183,7 @@ class CarlaSettingsW(QDialog): | |||
# so add +2 pos padding if driverName != "JACK". | |||
PROCESS_MODE_NON_JACK_PADDING = 2 | |||
def __init__(self, parent, hasGL): | |||
def __init__(self, parent, hasCanvas, hasGL): | |||
QDialog.__init__(self, parent) | |||
self.ui = ui_carla_settings.Ui_CarlaSettingsW() | |||
self.ui.setupUi(self) | |||
@@ -256,20 +262,20 @@ class CarlaSettingsW(QDialog): | |||
# --------------------------------------- | |||
#self.ui.cb_canvas_hide_groups.setChecked(settings.value("Canvas/AutoHideGroups", False, type=bool)) | |||
#self.ui.cb_canvas_bezier_lines.setChecked(settings.value("Canvas/UseBezierLines", True, type=bool)) | |||
#self.ui.cb_canvas_eyecandy.setCheckState(settings.value("Canvas/EyeCandy", patchcanvas.EYECANDY_SMALL, type=int)) | |||
#self.ui.cb_canvas_use_opengl.setChecked(settings.value("Canvas/UseOpenGL", False, type=bool)) | |||
#self.ui.cb_canvas_render_aa.setCheckState(settings.value("Canvas/Antialiasing", patchcanvas.ANTIALIASING_SMALL, type=int)) | |||
#self.ui.cb_canvas_render_hq_aa.setChecked(settings.value("Canvas/HighQualityAntialiasing", False, type=bool)) | |||
self.ui.cb_canvas_hide_groups.setChecked(settings.value("Canvas/AutoHideGroups", False, type=bool)) | |||
self.ui.cb_canvas_bezier_lines.setChecked(settings.value("Canvas/UseBezierLines", True, type=bool)) | |||
self.ui.cb_canvas_eyecandy.setCheckState(settings.value("Canvas/EyeCandy", CANVAS_EYECANDY_SMALL, type=int)) | |||
self.ui.cb_canvas_use_opengl.setChecked(settings.value("Canvas/UseOpenGL", False, type=bool)) | |||
self.ui.cb_canvas_render_aa.setCheckState(settings.value("Canvas/Antialiasing", CANVAS_ANTIALIASING_SMALL, type=int)) | |||
self.ui.cb_canvas_render_hq_aa.setChecked(settings.value("Canvas/HighQualityAntialiasing", False, type=bool)) | |||
#canvasThemeName = settings.value("Canvas/Theme", patchcanvas.getDefaultThemeName(), type=str) | |||
canvasThemeName = settings.value("Canvas/Theme", getDefaultThemeName(), type=str) | |||
#for i in range(patchcanvas.Theme.THEME_MAX): | |||
#thisThemeName = patchcanvas.getThemeName(i) | |||
#self.ui.cb_canvas_theme.addItem(thisThemeName) | |||
#if thisThemeName == canvasThemeName: | |||
#self.ui.cb_canvas_theme.setCurrentIndex(i) | |||
for i in range(Theme.THEME_MAX): | |||
thisThemeName = getThemeName(i) | |||
self.ui.cb_canvas_theme.addItem(thisThemeName) | |||
if thisThemeName == canvasThemeName: | |||
self.ui.cb_canvas_theme.setCurrentIndex(i) | |||
# -------------------------------------------- | |||
@@ -637,10 +643,23 @@ class CarlaSettingsW(QDialog): | |||
self.close() | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# TESTING | |||
# Main | |||
if __name__ == '__main__': | |||
try: | |||
from PyQt5.QtWidgets import QApplication | |||
except: | |||
from PyQt4.QtGui import QApplication | |||
app = QApplication(sys.argv) | |||
app.setApplicationName("Carla") | |||
app.setApplicationVersion(VERSION) | |||
app.setOrganizationName("falkTX") | |||
app.setWindowIcon(QIcon(":/scalable/carla.svg")) | |||
initHost(False) | |||
gui = CarlaSettingsW(None, True, True) | |||
gui.show() | |||
#from PyQt5.QtWidgets import QApplication | |||
#app = QApplication(sys.argv) | |||
#gui = CarlaSettingsW(None, True) | |||
#gui.show() | |||
#app.exec_() | |||
sys.exit(app.exec_()) |
@@ -305,12 +305,25 @@ else: | |||
class CarlaObject(object): | |||
__slots__ = [ | |||
# Host library object | |||
'host', | |||
# Host Window | |||
'gui', | |||
# bool, is controller | |||
'isControl', | |||
# bool, is controller local | |||
'isLocal', | |||
# current process mode | |||
'processMode', | |||
# current max parameters | |||
'maxParameters', | |||
# discovery tools | |||
'discovery_native', | |||
'discovery_posix32', | |||
'discovery_posix64', | |||
'discovery_win32', | |||
'discovery_win64', | |||
# default paths | |||
'DEFAULT_LADSPA_PATH', | |||
'DEFAULT_DSSI_PATH', | |||
'DEFAULT_LV2_PATH', | |||
@@ -330,6 +343,12 @@ Carla.isLocal = True | |||
Carla.processMode = PROCESS_MODE_MULTIPLE_CLIENTS if LINUX else PROCESS_MODE_CONTINUOUS_RACK | |||
Carla.maxParameters = MAX_DEFAULT_PARAMETERS | |||
Carla.discovery_native = "" | |||
Carla.discovery_posix32 = "" | |||
Carla.discovery_posix64 = "" | |||
Carla.discovery_win32 = "" | |||
Carla.discovery_win64 = "" | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Default Plugin Folders (set) | |||
@@ -373,43 +392,7 @@ else: | |||
Carla.DEFAULT_SFZ_PATH = DEFAULT_SFZ_PATH.split(splitter) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Search for Carla library and tools | |||
carla_library_filename = "" | |||
carla_discovery_native = "" | |||
carla_discovery_posix32 = "" | |||
carla_discovery_posix64 = "" | |||
carla_discovery_win32 = "" | |||
carla_discovery_win64 = "" | |||
carla_bridge_native = "" | |||
carla_bridge_posix32 = "" | |||
carla_bridge_posix64 = "" | |||
carla_bridge_win32 = "" | |||
carla_bridge_win64 = "" | |||
carla_bridge_lv2_external = "" | |||
carla_bridge_lv2_gtk2 = "" | |||
carla_bridge_lv2_gtk3 = "" | |||
carla_bridge_lv2_qt4 = "" | |||
carla_bridge_lv2_qt5 = "" | |||
carla_bridge_lv2_cocoa = "" | |||
carla_bridge_lv2_windows = "" | |||
carla_bridge_lv2_x11 = "" | |||
carla_bridge_vst_mac = "" | |||
carla_bridge_vst_hwnd = "" | |||
carla_bridge_vst_x11 = "" | |||
carla_libname = "libcarla_%s" % ("control" if Carla.isControl else "standalone") | |||
if WINDOWS: | |||
carla_libname += ".dll" | |||
elif MACOS: | |||
carla_libname += ".dylib" | |||
else: | |||
carla_libname += ".so" | |||
# Search for Carla tools | |||
CWD = sys.path[0] | |||
@@ -419,24 +402,6 @@ if CWD.endswith("/carla"): | |||
elif CWD.endswith("\\carla.exe"): | |||
CWD = CWD.rsplit("\\carla.exe", 1)[0] | |||
# find carla_library_filename | |||
if os.path.exists(os.path.join(CWD, "backend", carla_libname)): | |||
carla_library_filename = os.path.join(CWD, "backend", carla_libname) | |||
else: | |||
if WINDOWS: | |||
CARLA_PATH = (os.path.join(PROGRAMFILES, "Carla"),) | |||
elif MACOS: | |||
CARLA_PATH = ("/opt/local/lib", "/usr/local/lib/", "/usr/lib") | |||
else: | |||
CARLA_PATH = ("/usr/local/lib/", "/usr/lib") | |||
for path in CARLA_PATH: | |||
if os.path.exists(os.path.join(path, "carla", carla_libname)): | |||
carla_library_filename = os.path.join(path, "carla", carla_libname) | |||
break | |||
del CARLA_PATH | |||
# find tool | |||
def findTool(toolDir, toolName): | |||
if os.path.exists(os.path.join(CWD, toolDir, toolName)): | |||
@@ -448,42 +413,194 @@ def findTool(toolDir, toolName): | |||
return "" | |||
# find windows tools | |||
carla_discovery_win32 = findTool("discovery", "carla-discovery-win32.exe") | |||
carla_discovery_win64 = findTool("discovery", "carla-discovery-win64.exe") | |||
carla_bridge_win32 = findTool("bridges", "carla-bridge-win32.exe") | |||
carla_bridge_win64 = findTool("bridges", "carla-bridge-win64.exe") | |||
# find native and posix tools | |||
if not WINDOWS: | |||
carla_discovery_native = findTool("discovery", "carla-discovery-native") | |||
carla_discovery_posix32 = findTool("discovery", "carla-discovery-posix32") | |||
carla_discovery_posix64 = findTool("discovery", "carla-discovery-posix64") | |||
carla_bridge_native = findTool("bridges", "carla-bridge-native") | |||
carla_bridge_posix32 = findTool("bridges", "carla-bridge-posix32") | |||
carla_bridge_posix64 = findTool("bridges", "carla-bridge-posix64") | |||
# find generic tools | |||
carla_bridge_lv2_external = findTool("bridges", "carla-bridge-lv2-external") | |||
# find windows only tools | |||
if WINDOWS: | |||
carla_bridge_lv2_windows = findTool("bridges", "carla-bridge-lv2-windows.exe") | |||
carla_bridge_vst_hwnd = findTool("bridges", "carla-bridge-vst-hwnd.exe") | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Init host | |||
# find mac os only tools | |||
elif MACOS: | |||
carla_bridge_lv2_cocoa = findTool("bridges", "carla-bridge-lv2-cocoa") | |||
carla_bridge_vst_mac = findTool("bridges", "carla-bridge-vst-mac") | |||
def initHost(failError = True): | |||
# ------------------------------------------------------------- | |||
# Search for Carla library | |||
# find other tools | |||
else: | |||
carla_bridge_lv2_gtk2 = findTool("bridges", "carla-bridge-lv2-gtk2") | |||
carla_bridge_lv2_gtk3 = findTool("bridges", "carla-bridge-lv2-gtk3") | |||
carla_bridge_lv2_qt4 = findTool("bridges", "carla-bridge-lv2-qt4") | |||
carla_bridge_lv2_qt5 = findTool("bridges", "carla-bridge-lv2-qt5") | |||
carla_bridge_lv2_x11 = findTool("bridges", "carla-bridge-lv2-x11") | |||
carla_bridge_vst_x11 = findTool("bridges", "carla-bridge-vst-x11") | |||
libname = "libcarla_" | |||
if Carla.isControl: | |||
libname += "control" | |||
else: | |||
libname += "standalone" | |||
if WINDOWS: | |||
libname += ".dll" | |||
elif MACOS: | |||
libname += ".dylib" | |||
else: | |||
libname += ".so" | |||
libfilename = "" | |||
if os.path.exists(os.path.join(CWD, "backend", libname)): | |||
libfilename = os.path.join(CWD, "backend", libname) | |||
#else: | |||
#CARLA_LIB_PATH = os.getenv("CARLA_LIB_PATH") | |||
#if CARLA_LIB_PATH and os.path.exists(CARLA_LIB_PATH): | |||
#CARLA_LIB_PATH = os.path.join(CARLA_LIB_PATH, "..") | |||
#elif WINDOWS: | |||
#CARLA_LIB_PATH = (os.path.join(PROGRAMFILES, "Carla"),) | |||
#elif MACOS: | |||
#CARLA_LIB_PATH = ("/opt/local/lib", "/usr/local/lib/", "/usr/lib") | |||
#else: | |||
#CARLA_LIB_PATH = ("/usr/local/lib/", "/usr/lib") | |||
#for path in CARLA_LIB_PATH: | |||
#if os.path.exists(os.path.join(path, "carla", libname)): | |||
#libfilename = os.path.join(path, "carla", libname) | |||
#break | |||
# ------------------------------------------------------------- | |||
# Search for Carla tools | |||
carla_bridge_native = "" | |||
carla_bridge_posix32 = "" | |||
carla_bridge_posix64 = "" | |||
carla_bridge_win32 = "" | |||
carla_bridge_win64 = "" | |||
carla_bridge_lv2_external = "" | |||
carla_bridge_lv2_gtk2 = "" | |||
carla_bridge_lv2_gtk3 = "" | |||
carla_bridge_lv2_qt4 = "" | |||
carla_bridge_lv2_qt5 = "" | |||
carla_bridge_lv2_cocoa = "" | |||
carla_bridge_lv2_windows = "" | |||
carla_bridge_lv2_x11 = "" | |||
carla_bridge_vst_mac = "" | |||
carla_bridge_vst_hwnd = "" | |||
carla_bridge_vst_x11 = "" | |||
# ------------------------------------------------------------- | |||
# find windows tools | |||
Carla.discovery_win32 = findTool("discovery", "carla-discovery-win32.exe") | |||
Carla.discovery_win64 = findTool("discovery", "carla-discovery-win64.exe") | |||
carla_bridge_win32 = findTool("bridges", "carla-bridge-win32.exe") | |||
carla_bridge_win64 = findTool("bridges", "carla-bridge-win64.exe") | |||
# ------------------------------------------------------------- | |||
# find native and posix tools | |||
if not WINDOWS: | |||
Carla.discovery_native = findTool("discovery", "carla-discovery-native") | |||
Carla.discovery_posix32 = findTool("discovery", "carla-discovery-posix32") | |||
Carla.discovery_posix64 = findTool("discovery", "carla-discovery-posix64") | |||
carla_bridge_native = findTool("bridges", "carla-bridge-native") | |||
carla_bridge_posix32 = findTool("bridges", "carla-bridge-posix32") | |||
carla_bridge_posix64 = findTool("bridges", "carla-bridge-posix64") | |||
# ------------------------------------------------------------- | |||
# find generic tools | |||
carla_bridge_lv2_external = findTool("bridges", "carla-bridge-lv2-external") | |||
# ------------------------------------------------------------- | |||
# find windows only tools | |||
if WINDOWS: | |||
carla_bridge_lv2_windows = findTool("bridges", "carla-bridge-lv2-windows.exe") | |||
carla_bridge_vst_hwnd = findTool("bridges", "carla-bridge-vst-hwnd.exe") | |||
# ------------------------------------------------------------- | |||
# find mac os only tools | |||
elif MACOS: | |||
carla_bridge_lv2_cocoa = findTool("bridges", "carla-bridge-lv2-cocoa") | |||
carla_bridge_vst_mac = findTool("bridges", "carla-bridge-vst-mac") | |||
# ------------------------------------------------------------- | |||
# find other tools | |||
else: | |||
carla_bridge_lv2_gtk2 = findTool("bridges", "carla-bridge-lv2-gtk2") | |||
carla_bridge_lv2_gtk3 = findTool("bridges", "carla-bridge-lv2-gtk3") | |||
carla_bridge_lv2_qt4 = findTool("bridges", "carla-bridge-lv2-qt4") | |||
carla_bridge_lv2_qt5 = findTool("bridges", "carla-bridge-lv2-qt5") | |||
carla_bridge_lv2_x11 = findTool("bridges", "carla-bridge-lv2-x11") | |||
carla_bridge_vst_x11 = findTool("bridges", "carla-bridge-vst-x11") | |||
if not libfilename: | |||
if failError: | |||
QMessageBox.critical(None, "Error", "Failed to find the carla library, cannot continue") | |||
sys.exit(1) | |||
return | |||
# ------------------------------------------------------------- | |||
# Init now | |||
Carla.host = Host(libfilename) | |||
# ------------------------------------------------------------- | |||
# Set resource path | |||
localResources = os.path.join(libfilename.replace(libname, ""), "..", "modules", "carla_native", "resources") | |||
systemResources = os.path.join(libfilename.replace(libname, ""), "resources") | |||
if os.path.exists(localResources): | |||
Carla.host.set_engine_option(OPTION_PATH_RESOURCES, 0, localResources) | |||
elif os.path.exists(systemResources): | |||
Carla.host.set_engine_option(OPTION_PATH_RESOURCES, 0, systemResources) | |||
# ------------------------------------------------------------- | |||
# Set bridge paths | |||
if carla_bridge_native: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_NATIVE, 0, carla_bridge_native) | |||
if carla_bridge_posix32: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_POSIX32, 0, carla_bridge_posix32) | |||
if carla_bridge_posix64: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_POSIX64, 0, carla_bridge_posix64) | |||
if carla_bridge_win32: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_WIN32, 0, carla_bridge_win32) | |||
if carla_bridge_win64: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_WIN64, 0, carla_bridge_win64) | |||
if carla_bridge_lv2_external: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_EXTERNAL, 0, carla_bridge_lv2_external) | |||
if WINDOWS: | |||
if carla_bridge_lv2_windows: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_WINDOWS, 0, carla_bridge_lv2_windows) | |||
if carla_bridge_vst_hwnd: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_HWND, 0, carla_bridge_vst_hwnd) | |||
elif MACOS: | |||
if carla_bridge_lv2_cocoa: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_COCOA, 0, carla_bridge_lv2_cocoa) | |||
if carla_bridge_vst_mac: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_MAC, 0, carla_bridge_vst_mac) | |||
else: | |||
if carla_bridge_lv2_gtk2: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_GTK2, 0, carla_bridge_lv2_gtk2) | |||
if carla_bridge_lv2_gtk3: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_GTK3, 0, carla_bridge_lv2_gtk3) | |||
if carla_bridge_lv2_qt4: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_QT4, 0, carla_bridge_lv2_qt4) | |||
if carla_bridge_lv2_qt5: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_QT5, 0, carla_bridge_lv2_qt5) | |||
if carla_bridge_lv2_x11: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_LV2_X11, 0, carla_bridge_lv2_x11) | |||
if carla_bridge_vst_x11: | |||
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_X11, 0, carla_bridge_vst_x11) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Convert a ctypes c_char_p into a python string | |||
@@ -1645,14 +1645,23 @@ class PluginWidget(QFrame): | |||
QFrame.paintEvent(self, event) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# TESTING | |||
#hasGL = True | |||
#from PyQt5.QtWidgets import QApplication | |||
#app = QApplication(sys.argv) | |||
#gui = PluginParameter(None, pInfo, 0, 0) | |||
#gui = PluginEdit(None, 0) | |||
#gui = PluginWidget(None, 0) | |||
#gui.show() | |||
#app.exec_() | |||
# Main | |||
if __name__ == '__main__': | |||
try: | |||
from PyQt5.QtWidgets import QApplication | |||
except: | |||
from PyQt4.QtGui import QApplication | |||
app = QApplication(sys.argv) | |||
app.setApplicationName("Carla") | |||
app.setApplicationVersion(VERSION) | |||
app.setOrganizationName("falkTX") | |||
app.setWindowIcon(QIcon(":/scalable/carla.svg")) | |||
#gui = PluginParameter(None, gFakeParamInfo, 0, 0) | |||
#gui = PluginEdit(None, 0) | |||
gui = PluginWidget(None, 0) | |||
gui.show() | |||
sys.exit(app.exec_()) |