Index: /trunk/libffado/src/rme/rme_avdevice.h
===================================================================
--- /trunk/libffado/src/rme/rme_avdevice.h (revision 2038)
+++ /trunk/libffado/src/rme/rme_avdevice.h (revision 2040)
@@ -139,4 +139,6 @@
signed int getClockMode(void);
signed int setClockMode(signed int mode);
+ signed int getSyncRef(void);
+ signed int setSyncRef(signed int ref);
/* General information functions */
Index: /trunk/libffado/src/rme/rme_avdevice.cpp
===================================================================
--- /trunk/libffado/src/rme/rme_avdevice.cpp (revision 2038)
+++ /trunk/libffado/src/rme/rme_avdevice.cpp (revision 2040)
@@ -200,4 +200,7 @@
new RmeSettingsCtrl(*this, RME_CTRL_CLOCK_MODE, 0,
"Clock_mode", "Clock mode", ""));
+ result &= m_ControlContainer->addElement(
+ new RmeSettingsCtrl(*this, RME_CTRL_SYNC_REF, 0,
+ "Sync_ref", "Preferred sync ref", ""));
if (m_rme_model == RME_MODEL_FIREFACE400) {
Index: /trunk/libffado/src/rme/rme_avdevice_settings.cpp
===================================================================
--- /trunk/libffado/src/rme/rme_avdevice_settings.cpp (revision 2037)
+++ /trunk/libffado/src/rme/rme_avdevice_settings.cpp (revision 2040)
@@ -365,3 +365,14 @@
}
-}
+signed int
+Device::getSyncRef(void) {
+ return settings->sync_ref;
+}
+signed int
+Device::setSyncRef(signed int ref) {
+ settings->sync_ref = ref;
+ set_hardware_params();
+ return 0;
+}
+
+}
Index: /trunk/libffado/src/rme/fireface_settings_ctrls.cpp
===================================================================
--- /trunk/libffado/src/rme/fireface_settings_ctrls.cpp (revision 2039)
+++ /trunk/libffado/src/rme/fireface_settings_ctrls.cpp (revision 2040)
@@ -151,4 +151,20 @@
}
break;
+ case RME_CTRL_SYNC_REF: {
+ signed int val;
+ switch (v) {
+ case 0: val = FF_SWPARAM_SYNCREF_WORDCLOCK; break;
+ case 1: val = FF_SWPARAM_SYNCREF_ADAT1; break;
+ case 2: val = FF_SWPARAM_SYNCREF_ADAT2; break;
+ case 3: val = FF_SWPARAM_SYNCREF_SPDIF; break;
+ case 4: val = FF_SWPARAM_SYNCREC_TCO; break;
+ default:
+ val = FF_SWPARAM_SYNCREF_WORDCLOCK;
+ }
+ if (m_parent.setSyncRef(val) == 0) {
+ m_value = v;
+ }
+ break;
+ }
// All RME_CTRL_INFO_* controls are read-only. Warn on attempts to
@@ -225,5 +241,17 @@
return m_parent.getClockMode()==FF_SWPARAM_CLOCK_MODE_AUTOSYNC?1:0;
break;
-
+ case RME_CTRL_SYNC_REF: {
+ signed int val = m_parent.getSyncRef();
+ switch (val) {
+ case FF_SWPARAM_SYNCREF_WORDCLOCK: return 0;
+ case FF_SWPARAM_SYNCREF_ADAT1: return 1;
+ case FF_SWPARAM_SYNCREF_ADAT2: return 2;
+ case FF_SWPARAM_SYNCREF_SPDIF: return 3;
+ case FF_SWPARAM_SYNCREC_TCO: return 4;
+ default:
+ return 0;
+ }
+ break;
+ }
case RME_CTRL_INFO_MODEL:
return m_parent.getRmeModel();
Index: /trunk/libffado/support/mixer-qt4/ffado/mixer/rme.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/ffado/mixer/rme.ui (revision 2038)
+++ /trunk/libffado/support/mixer-qt4/ffado/mixer/rme.ui (revision 2040)
@@ -734,4 +734,11 @@
-
+
+
+ TCO
+
+
+
+ -
Index: /trunk/libffado/support/mixer-qt4/ffado/mixer/rme.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/ffado/mixer/rme.py (revision 2038)
+++ /trunk/libffado/support/mixer-qt4/ffado/mixer/rme.py (revision 2040)
@@ -83,4 +83,10 @@
self.clock_mode_autosync: ['/Control/Clock_mode', 1],
self.clock_mode_master: ['/Control/Clock_mode', 0],
+
+ self.sync_ref_wordclk: ['/Control/Sync_ref', 0],
+ self.sync_ref_adat1: ['/Control/Sync_ref', 1],
+ self.sync_ref_adat2: ['/Control/Sync_ref', 2],
+ self.sync_ref_spdif: ['/Control/Sync_ref', 3],
+ self.sync_ref_tco: ['/Control/Sync_ref', 4],
}
@@ -219,4 +225,5 @@
self.sync_check_tco_label.setEnabled(False)
self.sync_check_tco_status.setEnabled(False)
+ self.sync_ref_tco.setEnabled(False)
# Only the FF400 has specific channel 3/4 options, input gain