| @@ -31,7 +31,7 @@ Optional but recommended: | |||||
| On Debian and Ubuntu, use these commands to install all dependencies: <br/> | On Debian and Ubuntu, use these commands to install all dependencies: <br/> | ||||
| `$ sudo apt-get install libjack-dev liblo-dev libgtk2.0-dev libqt4-dev libfluidsynth-dev` <br/> | `$ sudo apt-get install libjack-dev liblo-dev libgtk2.0-dev libqt4-dev libfluidsynth-dev` <br/> | ||||
| `$ sudo apt-get install qt4-dev-tools python-qt4-dev pyqt4-dev-tools` | |||||
| `$ sudo apt-get install qt4-dev-tools python-qt4-dev python3-pyqt4 pyqt4-dev-tools` | |||||
| NOTE: linuxsampler is not packaged in either Debian or Ubuntu, but it's available in KXStudio. <br/> | NOTE: linuxsampler is not packaged in either Debian or Ubuntu, but it's available in KXStudio. <br/> | ||||
| <br/> | <br/> | ||||
| @@ -624,7 +624,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW): | |||||
| patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
| patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
| patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.init("Catarina", self.scene, self.canvasCallback, DEBUG) | |||||
| self.connect(self.act_project_new, SIGNAL("triggered()"), SLOT("slot_projectNew()")) | self.connect(self.act_project_new, SIGNAL("triggered()"), SLOT("slot_projectNew()")) | ||||
| self.connect(self.act_project_open, SIGNAL("triggered()"), SLOT("slot_projectOpen()")) | self.connect(self.act_project_open, SIGNAL("triggered()"), SLOT("slot_projectOpen()")) | ||||
| @@ -1199,7 +1199,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW): | |||||
| p_options.eyecandy = self.m_savedSettings["Canvas/EyeCandy"] | p_options.eyecandy = self.m_savedSettings["Canvas/EyeCandy"] | ||||
| patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
| patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.init("Catarina", self.scene, self.canvasCallback, DEBUG) | |||||
| self.init_ports() | self.init_ports() | ||||
| @@ -137,7 +137,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
| patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
| patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
| patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.init("Catia", self.scene, self.canvasCallback, DEBUG) | |||||
| # Try to connect to jack | # Try to connect to jack | ||||
| self.jackStarted() | self.jackStarted() | ||||
| @@ -1222,7 +1222,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
| patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
| patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
| patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.init("Catia", self.scene, self.canvasCallback, DEBUG) | |||||
| self.init_ports() | self.init_ports() | ||||
| @@ -22,8 +22,8 @@ from PyQt4.QtCore import QPointF, QSettings | |||||
| from PyQt4.QtGui import QAction, QApplication, QMainWindow, QVBoxLayout, QTableWidgetItem, QTreeWidgetItem | from PyQt4.QtGui import QAction, QApplication, QMainWindow, QVBoxLayout, QTableWidgetItem, QTreeWidgetItem | ||||
| # Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
| import systray | |||||
| import claudia_launcher | import claudia_launcher | ||||
| import systray | |||||
| import ui_claudia | import ui_claudia | ||||
| import ui_claudia_studioname, ui_claudia_studiolist | import ui_claudia_studioname, ui_claudia_studiolist | ||||
| import ui_claudia_createroom, ui_claudia_projectname, ui_claudia_projectproperties | import ui_claudia_createroom, ui_claudia_projectname, ui_claudia_projectproperties | ||||
| @@ -695,7 +695,7 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): | |||||
| patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
| patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
| patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.init("Claudia", self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.setInitialPos(DEFAULT_CANVAS_WIDTH / 2, DEFAULT_CANVAS_HEIGHT / 2) | patchcanvas.setInitialPos(DEFAULT_CANVAS_WIDTH / 2, DEFAULT_CANVAS_HEIGHT / 2) | ||||
| patchcanvas.setCanvasSize(0, 0, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT) | patchcanvas.setCanvasSize(0, 0, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT) | ||||
| @@ -2395,7 +2395,7 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): | |||||
| patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
| patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
| patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
| patchcanvas.init("Claudia", self.scene, self.canvasCallback, DEBUG) | |||||
| if DBus.ladish_control.IsStudioLoaded() and DBus.ladish_studio and DBus.ladish_studio.IsStarted(): | if DBus.ladish_control.IsStudioLoaded() and DBus.ladish_studio and DBus.ladish_studio.IsStarted(): | ||||
| self.init_ports() | self.init_ports() | ||||
| @@ -57,7 +57,7 @@ class XIcon(object): | |||||
| icon = QIcon(os.path.join(iEXTRA_PATH, name + ".xpm")) | icon = QIcon(os.path.join(iEXTRA_PATH, name + ".xpm")) | ||||
| break | break | ||||
| else: | else: | ||||
| print("XIcon::Failed to find icon for %s" % name) | |||||
| print("XIcon::getIcon(%s) - Failed to find icon" % name) | |||||
| return icon | return icon | ||||
| @@ -171,7 +171,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): | |||||
| if appname == AppName: | if appname == AppName: | ||||
| return Binary | return Binary | ||||
| print("Failed to find binary from App name") | |||||
| print("ClaudiaLauncher::getBinaryFromAppName(%s) - Failed to find binary from App name" % appname) | |||||
| return "" | return "" | ||||
| def startApp(self, app=None): | def startApp(self, app=None): | ||||
| @@ -261,7 +261,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): | |||||
| else: | else: | ||||
| app = None | app = None | ||||
| tmplte_cmd = binary | tmplte_cmd = binary | ||||
| print("Failed to find template dir") | |||||
| print("ClaudiaLauncher::createAppTemplate() - Failed to find template dir") | |||||
| if not os.path.exists(proj_folder): | if not os.path.exists(proj_folder): | ||||
| os.mkdir(proj_folder) | os.mkdir(proj_folder) | ||||
| @@ -360,14 +360,16 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
| # ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
| # Driver calls | # Driver calls | ||||
| # resetIfNeeded: fix alsa parameter re-order bug in JACK 1.9.8 (reset/remove non-used values) | |||||
| def saveDriverSettings(self, resetIfNeeded): | def saveDriverSettings(self, resetIfNeeded): | ||||
| if self.obj_driver_device.isEnabled(): | if self.obj_driver_device.isEnabled(): | ||||
| value = dbus.String(self.obj_driver_device.currentText().split(" [")[0]) | value = dbus.String(self.obj_driver_device.currentText().split(" [")[0]) | ||||
| if value != jackctl.GetParameterValue(["driver", "device"])[2]: | if value != jackctl.GetParameterValue(["driver", "device"])[2]: | ||||
| jackctl.SetParameterValue(["driver", "device"], value) | jackctl.SetParameterValue(["driver", "device"], value) | ||||
| #elif resetIfNeeded: | |||||
| #jackctl.ResetParameterValue(["driver", "device"]) | |||||
| elif resetIfNeeded: | |||||
| jackctl.ResetParameterValue(["driver", "device"]) | |||||
| if self.obj_driver_capture.isEnabled(): | if self.obj_driver_capture.isEnabled(): | ||||
| if self.m_driver == "alsa": | if self.m_driver == "alsa": | ||||
| @@ -383,8 +385,8 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
| if value != None: | if value != None: | ||||
| setDriverParameter("capture", value, True) | setDriverParameter("capture", value, True) | ||||
| #elif resetIfNeeded: | |||||
| #jackctl.ResetParameterValue(["driver", "capture"]) | |||||
| elif resetIfNeeded: | |||||
| jackctl.ResetParameterValue(["driver", "capture"]) | |||||
| if self.obj_driver_playback.isEnabled(): | if self.obj_driver_playback.isEnabled(): | ||||
| if self.m_driver == "alsa": | if self.m_driver == "alsa": | ||||
| @@ -400,8 +402,8 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
| if value != None: | if value != None: | ||||
| setDriverParameter("playback", value, True) | setDriverParameter("playback", value, True) | ||||
| #elif resetIfNeeded: | |||||
| #jackctl.ResetParameterValue(["driver", "playback"]) | |||||
| elif resetIfNeeded: | |||||
| jackctl.ResetParameterValue(["driver", "playback"]) | |||||
| if self.obj_driver_rate.isEnabled(): | if self.obj_driver_rate.isEnabled(): | ||||
| value = dbus.UInt32(int(self.obj_driver_rate.currentText())) | value = dbus.UInt32(int(self.obj_driver_rate.currentText())) | ||||
| @@ -16,7 +16,7 @@ | |||||
| # | # | ||||
| # For a full copy of the GNU General Public License see the COPYING file | # For a full copy of the GNU General Public License see the COPYING file | ||||
| # TODO - apply last changes to c++ (2 commits) | |||||
| # TODO - apply last changes to c++ (2 commits + theme changes) | |||||
| # Imports (Global) | # Imports (Global) | ||||
| from PyQt4.QtCore import pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject, SIGNAL, SLOT | from PyQt4.QtCore import pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject, SIGNAL, SLOT | ||||
| @@ -30,8 +30,6 @@ from PyQt4.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||||
| # Imports (Theme) | # Imports (Theme) | ||||
| from patchcanvas_theme import * | from patchcanvas_theme import * | ||||
| PATCHCANVAS_ORGANISATION_NAME = "PatchCanvas" | |||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||
| # patchcanvas-api.h | # patchcanvas-api.h | ||||
| @@ -296,7 +294,7 @@ def setFeatures(new_features): | |||||
| features.port_rename = new_features.port_rename | features.port_rename = new_features.port_rename | ||||
| features.handle_group_pos = new_features.handle_group_pos | features.handle_group_pos = new_features.handle_group_pos | ||||
| def init(scene, callback, debug=False): | |||||
| def init(appName, scene, callback, debug=False): | |||||
| if debug: | if debug: | ||||
| qDebug("PatchCanvas::init(%s, %s, %s)" % (scene, callback, bool2str(debug))) | qDebug("PatchCanvas::init(%s, %s, %s)" % (scene, callback, bool2str(debug))) | ||||
| @@ -308,9 +306,9 @@ def init(scene, callback, debug=False): | |||||
| qFatal("PatchCanvas::init() - fatal error: callback not set") | qFatal("PatchCanvas::init() - fatal error: callback not set") | ||||
| return | return | ||||
| canvas.scene = scene | |||||
| canvas.scene = scene | |||||
| canvas.callback = callback | canvas.callback = callback | ||||
| canvas.debug = debug | |||||
| canvas.debug = debug | |||||
| canvas.last_z_value = 0 | canvas.last_z_value = 0 | ||||
| canvas.last_connection_id = 0 | canvas.last_connection_id = 0 | ||||
| @@ -318,7 +316,7 @@ def init(scene, callback, debug=False): | |||||
| canvas.size_rect = QRectF() | canvas.size_rect = QRectF() | ||||
| if not canvas.qobject: canvas.qobject = CanvasObject() | if not canvas.qobject: canvas.qobject = CanvasObject() | ||||
| if not canvas.settings: canvas.settings = QSettings(PATCHCANVAS_ORGANISATION_NAME, "PatchCanvas") | |||||
| if not canvas.settings: canvas.settings = QSettings("Cadence", appName) | |||||
| if canvas.theme: | if canvas.theme: | ||||
| del canvas.theme | del canvas.theme | ||||
| @@ -74,6 +74,7 @@ BINARY_UNIX32 = 1 | |||||
| BINARY_UNIX64 = 2 | BINARY_UNIX64 = 2 | ||||
| BINARY_WIN32 = 3 | BINARY_WIN32 = 3 | ||||
| BINARY_WIN64 = 4 | BINARY_WIN64 = 4 | ||||
| # TODO - use POSIX instead | |||||
| # enum PluginType | # enum PluginType | ||||
| PLUGIN_NONE = 0 | PLUGIN_NONE = 0 | ||||
| @@ -101,6 +102,7 @@ PARAMETER_UNKNOWN = 0 | |||||
| PARAMETER_INPUT = 1 | PARAMETER_INPUT = 1 | ||||
| PARAMETER_OUTPUT = 2 | PARAMETER_OUTPUT = 2 | ||||
| PARAMETER_LATENCY = 3 | PARAMETER_LATENCY = 3 | ||||
| # TODO - add PARAMETER_SAMPLE_RATE | |||||
| # enum InternalParametersIndex | # enum InternalParametersIndex | ||||
| PARAMETER_ACTIVE = -1 | PARAMETER_ACTIVE = -1 | ||||
| @@ -409,8 +411,7 @@ class PluginParameter(QWidget, ui_carla_parameter.Ui_PluginParameter): | |||||
| self.m_midiChannel = 1 | self.m_midiChannel = 1 | ||||
| self.m_pluginId = pluginId | self.m_pluginId = pluginId | ||||
| self.m_parameterId = pInfo['index'] | self.m_parameterId = pInfo['index'] | ||||
| self.m_tabIndex = tabIndex | |||||
| self.m_tabIndex = tabIndex | |||||
| self.add_MIDI_CCs_to_ComboBox() | self.add_MIDI_CCs_to_ComboBox() | ||||
| @@ -225,7 +225,7 @@ def refreshTransport(self_): | |||||
| tick = 0 | tick = 0 | ||||
| self_.label_time.setText("%03i|%02i|%04i" % (bar, beat, tick)) | self_.label_time.setText("%03i|%02i|%04i" % (bar, beat, tick)) | ||||
| else: | else: | ||||
| self_.label_time.setText("000|00|0000") | |||||
| self_.label_time.setText("%03i|%02i|%04i" % (0, 0, 0)) | |||||
| elif self_.m_selected_transport_view == TRANSPORT_VIEW_FRAMES: | elif self_.m_selected_transport_view == TRANSPORT_VIEW_FRAMES: | ||||
| frame1 = pos.frame % 1000 | frame1 = pos.frame % 1000 | ||||
| @@ -6,8 +6,8 @@ | |||||
| <rect> | <rect> | ||||
| <x>0</x> | <x>0</x> | ||||
| <y>0</y> | <y>0</y> | ||||
| <width>585</width> | |||||
| <height>332</height> | |||||
| <width>513</width> | |||||
| <height>336</height> | |||||
| </rect> | </rect> | ||||
| </property> | </property> | ||||
| <property name="windowTitle"> | <property name="windowTitle"> | ||||