Changeset 2006
- Timestamp:
- 11/21/11 04:26:26 (9 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/rme/fireface_settings_ctrls.cpp
r2004 r2006 208 208 { 209 209 char buf[64]; 210 snprintf(buf, sizeof(buf), "RmeSettingsMatrixCtrl type %d, row %d", m_type, row); 210 if (m_parent.getRmeModel() == RME_MODEL_FIREFACE400) { 211 if (row >= 10) 212 snprintf(buf, sizeof(buf), "ADAT %d", row-9); 213 else 214 if (row >= 8) 215 snprintf(buf, sizeof(buf), "SPDIF %d", row-7); 216 else 217 snprintf(buf, sizeof(buf), "Ana %d", row+1); 218 } else { 219 snprintf(buf, sizeof(buf), "row %d", row); 220 } 211 221 return buf; 212 222 } … … 215 225 { 216 226 char buf[64]; 217 snprintf(buf, sizeof(buf), "RmeSettingsMatrixCtrl type %d, column %d", m_type, col); 227 if (m_parent.getRmeModel() == RME_MODEL_FIREFACE400) { 228 if (col >= 10) 229 snprintf(buf, sizeof(buf), "ADAT %d", col-9); 230 else 231 if (col >= 8) 232 snprintf(buf, sizeof(buf), "SPDIF %d", col-7); 233 else 234 snprintf(buf, sizeof(buf), "Ana %d", col+1); 235 } else { 236 snprintf(buf, sizeof(buf), "col %d", col); 237 } 218 238 return buf; 219 239 } … … 261 281 } 262 282 263 static signed int dB_to_mixerval(const double dB)264 {265 /* dB values less than -90 are taken as "mute" */266 if (dB < -90)267 return 0;268 return 32768 * exp10(dB/20.0);269 }270 271 283 double RmeSettingsMatrixCtrl::setValue(const int row, const int col, const double val) 272 284 { … … 283 295 break; 284 296 case RME_MATRIXCTRL_INPUT_FADER: 285 return m_parent.setMixerGain(RME_FF_MM_INPUT, col, row, 286 dB_to_mixerval(val)); 297 return m_parent.setMixerGain(RME_FF_MM_INPUT, col, row, val); 287 298 break; 288 299 case RME_MATRIXCTRL_PLAYBACK_FADER: 289 return m_parent.setMixerGain(RME_FF_MM_PLAYBACK, col, row, 290 dB_to_mixerval(val)); 300 return m_parent.setMixerGain(RME_FF_MM_PLAYBACK, col, row, val); 291 301 break; 292 302 case RME_MATRIXCTRL_OUTPUT_FADER: 293 return m_parent.setMixerGain(RME_FF_MM_OUTPUT, col, row, 294 dB_to_mixerval(val)); 303 return m_parent.setMixerGain(RME_FF_MM_OUTPUT, col, row, val); 295 304 break; 296 305 } 297 306 298 307 return ret; 299 }300 301 static double mixerval_to_dB(const signed int val)302 {303 /* Map "mute" to -91 dB */304 if (val == 0)305 return -91.0;306 return 20 * log10(val/32768.0);307 308 } 308 309 … … 315 316 break; 316 317 case RME_MATRIXCTRL_INPUT_FADER: 317 val = m ixerval_to_dB(m_parent.getMixerGain(RME_FF_MM_INPUT, col, row));318 val = m_parent.getMixerGain(RME_FF_MM_INPUT, col, row); 318 319 break; 319 320 case RME_MATRIXCTRL_PLAYBACK_FADER: 320 val = m ixerval_to_dB(m_parent.getMixerGain(RME_FF_MM_PLAYBACK, col, row));321 val = m_parent.getMixerGain(RME_FF_MM_PLAYBACK, col, row); 321 322 break; 322 323 case RME_MATRIXCTRL_OUTPUT_FADER: 323 val = m ixerval_to_dB(m_parent.getMixerGain(RME_FF_MM_OUTPUT, col, row));324 val = m_parent.getMixerGain(RME_FF_MM_OUTPUT, col, row); 324 325 break; 325 326 } trunk/libffado/support/mixer-qt4/ffado/mixer/rme.py
r2005 r2006 1 1 # 2 # Copyright (C) 2009 by Jonathan Woithe2 # Copyright (C) 2009, 2011 by Jonathan Woithe 3 3 # 4 4 # This file is part of FFADO … … 124 124 def initValues(self): 125 125 126 # Initial experiments with the MatrixMixer widget127 126 # print self.hw.servername 128 127 # print self.hw.basepath 129 # self.inputmatrix = MatrixMixer(self.hw.servername, self.hw.basepath+"/Mixer/InputFaders", self) 130 # self.mbox = QtGui.QVBoxLayout(self.mixer) 131 # self.mbox.addWidget(self.inputmatrix) 128 self.inputmatrix = MatrixMixer(self.hw.servername, self.hw.basepath+"/Mixer/InputFaders", self, 0x8000) 129 layout = QtGui.QVBoxLayout() 130 scrollarea = QtGui.QScrollArea() 131 scrollarea.setWidgetResizable(True) 132 scrollarea.setWidget(self.inputmatrix) 133 layout.addWidget(scrollarea) 134 self.mixer.setLayout(layout) 132 135 133 136 # Is the device streaming? trunk/libffado/support/mixer-qt4/ffado/mixer/rme.ui
r1640 r2006 1091 1091 <widget class="QWidget" name="mixer" > 1092 1092 <attribute name="title" > 1093 <string> Mixer</string>1093 <string>Input mixer</string> 1094 1094 </attribute> 1095 1095 </widget> trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py
r1934 r2006 55 55 56 56 class MixerNode(QtGui.QAbstractSlider): 57 def __init__(self, input, output, value, parent):57 def __init__(self, input, output, value, max, parent): 58 58 QtGui.QAbstractSlider.__init__(self, parent) 59 #log.debug("MixerNode.__init__( %i, %i, %i, % s )" % (input, output, value, str(parent)) )59 #log.debug("MixerNode.__init__( %i, %i, %i, %i, %s )" % (input, output, value, max, str(parent)) ) 60 60 61 61 self.pos = QtCore.QPointF(0, 0) … … 63 63 self.output = output 64 64 self.setOrientation(Qt.Qt.Vertical) 65 self.setRange(0, pow(2, 16)-1) 65 if max == -1: 66 max = pow(2, 16)-1 67 self.setRange(0, max) 66 68 self.setValue(value) 67 69 self.connect(self, QtCore.SIGNAL("valueChanged(int)"), self.internalValueChanged) … … 199 201 200 202 class MatrixMixer(QtGui.QWidget): 201 def __init__(self, servername, basepath, parent=None ):203 def __init__(self, servername, basepath, parent=None, sliderMaxValue=-1): 202 204 QtGui.QWidget.__init__(self, parent) 203 205 self.bus = dbus.SessionBus() … … 236 238 self.items.append([]) 237 239 for j in range(cols): 238 node = MixerNode(j, i, self.interface.getValue(i,j), s elf)240 node = MixerNode(j, i, self.interface.getValue(i,j), sliderMaxValue, self) 239 241 self.connect(node, QtCore.SIGNAL("valueChanged"), self.valueChanged) 240 242 layout.addWidget(node, i+1, j+1) … … 271 273 self.interface.setValue(n[1], n[0], n[2]) 272 274 273 274 275 # 275 276 # vim: et ts=4 sw=4 fileencoding=utf8