diff --git a/doc/Carla-TODO b/doc/Carla-TODO
index 613676c..ebfe4d4 100644
--- a/doc/Carla-TODO
+++ b/doc/Carla-TODO
@@ -18,6 +18,7 @@ ENGINE:
- implement Haiku Media support (based from JACK?)
- implement latency in continuous-rack mode
- DSSI/LV2/VST version (needs add-new support on control side)
+ - Handle sample-rate changes in JACK (made possible by switch-master)
LADSPA:
diff --git a/doc/TODO b/doc/TODO
index 2f9903f..6350d5f 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -12,8 +12,12 @@ GUI:
-------------------
- APPS -
+Catia:
+ - Handle sample-rate changes in JACK (made possible by switch-master)
+
Claudia:
- Cleanup DB
+ - Handle sample-rate changes in JACK (made possible by switch-master)
-------------------
- MODULES -
diff --git a/resources/ui/cadence.ui b/resources/ui/cadence.ui
index 6af0a51..86c0eed 100644
--- a/resources/ui/cadence.ui
+++ b/resources/ui/cadence.ui
@@ -6,8 +6,8 @@
0
0
- 753
- 579
+ 739
+ 549
@@ -24,7 +24,7 @@
System
-
+
-
@@ -42,7 +42,21 @@
- -
+
-
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
-
@@ -183,7 +197,7 @@
- -
+
-
-
@@ -401,60 +415,66 @@
-
-
-
-
+
+
-
Start
- -
+
-
Stop
- -
+
-
Force Restart
- -
+
-
Configure
-
-
- -
-
-
-
+
-
+
+
+ Switch Master!
+
+
+
+ -
Qt::Horizontal
+
+ QSizePolicy::Preferred
+
- 40
+ 38
20
- -
+
-
Auto-start JACK or LADISH at login
- -
+
-
...
@@ -468,6 +488,12 @@
-
+
+
+ 0
+ 0
+
+
JACK Bridges
@@ -477,13 +503,19 @@
-
+
+
+ 0
+ 0
+
+
0
0
- 351
- 117
+ 366
+ 120
@@ -612,10 +644,13 @@
Qt::Vertical
+
+ QSizePolicy::Preferred
+
20
- 40
+ 20
@@ -627,8 +662,8 @@
0
0
- 290
- 77
+ 366
+ 117
@@ -750,10 +785,13 @@
Qt::Vertical
+
+ QSizePolicy::Preferred
+
20
- 40
+ 20
@@ -765,8 +803,8 @@
0
0
- 204
- 77
+ 366
+ 117
@@ -881,10 +919,13 @@
Qt::Vertical
+
+ QSizePolicy::Preferred
+
20
- 40
+ 20
@@ -914,20 +955,6 @@
- -
-
-
- Qt::Vertical
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
@@ -1484,7 +1511,7 @@
0
0
- 94
+ 76
76
@@ -1502,7 +1529,7 @@
0
0
- 94
+ 89
76
@@ -1520,7 +1547,7 @@
0
0
- 94
+ 89
76
@@ -1538,7 +1565,7 @@
0
0
- 94
+ 89
76
diff --git a/src/cadence.py b/src/cadence.py
index 029c71b..ec331d3 100755
--- a/src/cadence.py
+++ b/src/cadence.py
@@ -702,6 +702,9 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
self.m_lastAlsaIndexType = -2 # invalid
+ if not jacklib.JACK2:
+ self.b_jack_switchmaster.setEnabled(False)
+
# -------------------------------------------------------------
# Set-up GUI (System Information)
@@ -997,6 +1000,7 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
self.connect(self.b_jack_stop, SIGNAL("clicked()"), SLOT("slot_JackServerStop()"))
self.connect(self.b_jack_restart, SIGNAL("clicked()"), SLOT("slot_JackServerForceRestart()"))
self.connect(self.b_jack_configure, SIGNAL("clicked()"), SLOT("slot_JackServerConfigure()"))
+ self.connect(self.b_jack_switchmaster, SIGNAL("clicked()"), SLOT("slot_JackServerSwitchMaster()"))
self.connect(self.tb_jack_options, SIGNAL("clicked()"), SLOT("slot_JackOptions()"))
self.connect(self.b_alsa_start, SIGNAL("clicked()"), SLOT("slot_AlsaBridgeStart()"))
@@ -1127,6 +1131,7 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
self.b_jack_stop.setEnabled(False)
self.b_jack_restart.setEnabled(False)
self.b_jack_configure.setEnabled(False)
+ self.b_jack_switchmaster.setEnabled(False)
self.groupBox_bridges.setEnabled(False)
if DBus.a2j:
@@ -1182,6 +1187,7 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
self.b_jack_start.setEnabled(False)
self.b_jack_stop.setEnabled(True)
+ self.b_jack_switchmaster.setEnabled(True)
self.systray.setActionEnabled("jack_start", False)
self.systray.setActionEnabled("jack_stop", True)
@@ -1221,6 +1227,7 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
self.b_jack_start.setEnabled(True)
self.b_jack_stop.setEnabled(False)
+ self.b_jack_switchmaster.setEnabled(False)
if haveDBus:
self.systray.setActionEnabled("jack_start", True)
@@ -1468,6 +1475,16 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
jacksettingsW.exec_()
del jacksettingsW
+ @pyqtSlot()
+ def slot_JackServerSwitchMaster(self):
+ try:
+ DBus.jack.SwitchMaster()
+ except:
+ QMessageBox.warning(self, self.tr("Warning"), self.tr("Failed to switch JACK master, please check the logs for more information."))
+ return
+
+ self.jackStarted()
+
@pyqtSlot()
def slot_JackOptions(self):
ToolBarJackDialog(self).exec_()