Index: /trunk/libffado/support/mixer-qt4/mixer_mackie_onyxmixer.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_mackie_onyxmixer.ui (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_mackie_onyxmixer.ui (revision 1435)
@@ -0,0 +1,52 @@
+
+ Copyright (C) 2005-2008 by Pieter Palmers
+
+ This file is part of FFADO
+ FFADO = Free Firewire (pro-)audio drivers for linux
+
+ FFADO is based upon FreeBoB.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) version 3 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ MackieOnyxMixerUI
+
+
+
+ 0
+ 0
+ 166
+ 238
+
+
+
+ Mackie Onyx Mixer Control
+
+
+ -
+
+
+ No additional controls are available for the Mackie Onyx Mixer
+
+
+ Qt::AlignVCenter
+
+
+ true
+
+
+
+
+
+
+ qPixmapFromMimeSource
+
+
+
Index: /trunk/libffado/support/mixer-qt4/mixer_edirolfa66.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_edirolfa66.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_edirolfa66.py (revision 1435)
@@ -0,0 +1,109 @@
+#
+# Copyright (C) 2005-2008 by Daniel Wagner
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject
+from PyQt4.QtGui import QWidget
+from mixer_edirolfa66ui import *
+
+import logging
+log = logging.getLogger('edirolfa66')
+
+class EdirolFa66Control(QWidget, Ui_EdirolFa66ControlUI):
+ def __init__(self, parent = None):
+ QWidget.__init__(self, parent)
+ self.setupUi(self)
+
+ self.VolumeControls = {
+ # feature name, channel, qt slider
+ 'vol1' : ['/Mixer/Feature_Volume_1', 1, self.sldInput1],
+ 'vol2' : ['/Mixer/Feature_Volume_1', 2, self.sldInput2],
+ 'vol3' : ['/Mixer/Feature_Volume_2', 1, self.sldInput3],
+ 'vol4' : ['/Mixer/Feature_Volume_2', 2, self.sldInput4],
+ 'vol5' : ['/Mixer/Feature_Volume_3', 1, self.sldInput5],
+ 'vol6' : ['/Mixer/Feature_Volume_3', 2, self.sldInput6],
+
+ 'bal1' : ['/Mixer/Feature_LRBalance_1', 1, self.sldBal1],
+ 'bal2' : ['/Mixer/Feature_LRBalance_1', 2, self.sldBal2],
+ 'bal3' : ['/Mixer/Feature_LRBalance_2', 1, self.sldBal3],
+ 'bal4' : ['/Mixer/Feature_LRBalance_2', 2, self.sldBal4],
+ 'bal5' : ['/Mixer/Feature_LRBalance_3', 1, self.sldBal5],
+ 'bal6' : ['/Mixer/Feature_LRBalance_3', 2, self.sldBal6],
+ }
+
+ def setVolumeIn1(self, vol):
+ self.setValue('vol1', vol)
+
+ def setVolumeIn2(self, vol):
+ self.setValue('vol2', vol)
+
+ def setVolumeIn3(self, vol):
+ self.setValue('vol3', vol)
+
+ def setVolumeIn4(self, vol):
+ self.setValue('vol4', vol)
+
+ def setVolumeIn5(self, vol):
+ self.setValue('vol5', vol)
+
+ def setVolumeIn6(self, vol):
+ self.setValue('vol6', vol)
+
+ def setBalanceIn1(self, bal):
+ self.setValue('bal1', bal)
+
+ def setBalanceIn2(self, bal):
+ self.setValue('bal2', bal)
+
+ def setBalanceIn3(self, bal):
+ self.setValue('bal3', bal)
+
+ def setBalanceIn4(self, bal):
+ self.setValue('bal4', bal)
+
+ def setBalanceIn5(self, bal):
+ self.setValue('bal5', bal)
+
+ def setBalanceIn6(self, bal):
+ self.setValue('bal6', bal)
+
+ def setValue(self, name, val):
+ val = -val
+ ctrl = self.VolumeControls[name]
+ log.debug("setting %s to %d" % (name, val))
+ self.hw.setContignuous(ctrl[0], val, idx = ctrl[1])
+
+ def initValues(self):
+ for name, ctrl in self.VolumeControls.iteritems():
+ val = self.hw.getContignuous(ctrl[0], idx = ctrl[1])
+ log.debug("%s value is %d" % (name , val))
+
+ # Workaround: The current value is not properly initialized
+ # on the device and returns after bootup always 0.
+ # Though we happen to know what the correct value should
+ # be therefore we overwrite the 0
+ if name[0:3] == 'bal' and val == 0:
+ if ctrl[1] == 1:
+ val = 32512
+ else:
+ val = -32768
+
+ ctrl[2].setValue(-val)
Index: /trunk/libffado/support/mixer-qt4/ffado_configuration.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/ffado_configuration.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/ffado_configuration.py (revision 1435)
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+#
+# Copyright (C) 2008 by Arnold Krille
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+import re, os
+
+class DeviceList:
+ def __init__( self, filename="" ):
+ self.devices = list()
+ if not filename == "":
+ self.updateFromFile( filename )
+
+ def updateFromFile( self, filename ):
+ if not os.path.exists( filename ):
+ return
+ f = open( filename, "r" )
+ stream = f.read()
+ stream = re.sub( "#[^#\n]*\n", "\n", stream ) # remove the comments
+ stream = re.sub( "\s", "", stream ) # remove all white-spaces and line-breaks
+ stream = stream.replace( "device_definitions=({", "" ).replace( "});", "" ) # remove the trail and end
+ stream = stream.replace( "\"", "" ) # remove the "'s around
+
+ dev_strings = stream.split( "},{" )
+ for s in dev_strings:
+ item = dict()
+ pairs = s.split(";")
+ for p in pairs:
+ if not p == "":
+ key = p[0:p.find("=")]
+ value = p[p.find("=")+1:]
+ if re.search( "^0x[0-9a-fA-F]*", value ) != None: # convert hex-numbers to int
+ value = int( value, 16 ) # or should it be long?
+ item[ key ] = value
+ self.addDevice( item )
+
+ def getDeviceById( self, vendor, model ):
+ #print "DeviceList::getDeviceById( %s, %s )" % (vendor, model )
+ for dev in self.devices:
+ if dev['vendorid'] == vendor and dev['modelid'] == model:
+ return dev
+ tmp = dict()
+ self.devices.append( tmp )
+ return tmp
+
+ def addDevice( self, device_dict ):
+ #print "DeviceList::addDevice()"
+ dev = self.getDeviceById( device_dict['vendorid'], device_dict['modelid'] )
+ dev.update( device_dict )
+
+
+#
+# Have kind of a test directly included...
+#
+if __name__ == "__main__":
+
+ import sys
+
+ file = sys.argv[1]
+
+ devs = DeviceList( file )
+
+ print devs.devices
+
Index: /trunk/libffado/support/mixer-qt4/mixer_phase88.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_phase88.ui (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_phase88.ui (revision 1435)
@@ -0,0 +1,666 @@
+
+ Copyright (C) 2005-2008 by Pieter Palmers
+
+ This file is part of FFADO
+ FFADO = Free Firewire (pro-)audio drivers for linux
+
+ FFADO is based upon FreeBoB.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) version 3 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ Phase88ControlUI
+
+
+
+ 0
+ 0
+ 502
+ 439
+
+
+
+ Terratec Phase 88 Control
+
+
+ -
+
+
+ Mixer bus output:
+
+
+ false
+
+
+
+ -
+
+
-
+
+ S/PDIF Out
+
+
+ -
+
+ Line Out 1/2
+
+
+ -
+
+ Line Out 3/4
+
+
+ -
+
+ Line Out 5/6
+
+
+ -
+
+ Line Out 7/8
+
+
+ -
+
+ None
+
+
+
+
+ -
+
+
+ Hardware Mixer
+
+
+
-
+
+
-
+
+
+ 1/2
+
+
+ false
+
+
+
+ -
+
+
+ 3/4
+
+
+ false
+
+
+
+ -
+
+
+ 5/6
+
+
+ false
+
+
+
+ -
+
+
+ 7/8
+
+
+ false
+
+
+
+ -
+
+
+ S/PDIF
+
+
+ false
+
+
+
+ -
+
+
+ WavePlay
+
+
+ false
+
+
+
+ -
+
+
+ Master
+
+
+ false
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+
+
+
+
+
+ -
+
+
+ Waveplay Channel Source
+
+
+ false
+
+
+
+ -
+
+
-
+
+ S/PDIF
+
+
+ -
+
+ CH 1/2
+
+
+ -
+
+ CH 3/4
+
+
+ -
+
+ CH5/6
+
+
+ -
+
+ CH7/8
+
+
+
+
+ -
+
+
+ In 7/8 Input Select
+
+
+ false
+
+
+
+ -
+
+
-
+
+ Front
+
+
+ -
+
+ Back
+
+
+
+
+ -
+
+
+ Sync Source
+
+
+ false
+
+
+
+ -
+
+
-
+
+ Internal
+
+
+ -
+
+ External
+
+
+
+
+ -
+
+
+ External Sync Source
+
+
+ false
+
+
+
+ -
+
+
-
+
+ S/PDIF
+
+
+ -
+
+ WordClock
+
+
+
+
+
+
+
+ qPixmapFromMimeSource
+
+
+
+ comboOutAssign
+ activated(int)
+ Phase88ControlUI
+ switchOutAssign(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ comboFrontBack
+ activated(int)
+ Phase88ControlUI
+ switchFrontState(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ comboInAssign
+ activated(int)
+ Phase88ControlUI
+ switchWaveInAssign(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ comboSyncSource
+ activated(int)
+ Phase88ControlUI
+ switchSyncSource(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ comboExtSync
+ activated(int)
+ Phase88ControlUI
+ switchExtSyncSource(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput12
+ valueChanged(int)
+ Phase88ControlUI
+ setVolume12(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput34
+ valueChanged(int)
+ Phase88ControlUI
+ setVolume34(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput56
+ valueChanged(int)
+ Phase88ControlUI
+ setVolume56(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput78
+ valueChanged(int)
+ Phase88ControlUI
+ setVolume78(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInputMaster
+ valueChanged(int)
+ Phase88ControlUI
+ setVolumeMaster(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInputSPDIF
+ valueChanged(int)
+ Phase88ControlUI
+ setVolumeSPDIF(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInputWavePlay
+ valueChanged(int)
+ Phase88ControlUI
+ setVolumeWavePlay(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+
Index: /trunk/libffado/support/mixer-qt4/mixer_motu.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_motu.ui (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_motu.ui (revision 1435)
@@ -0,0 +1,16552 @@
+
+ Copyright (C) 2008 by Jonathan Woithe
+Copyright (C) 2005-2008 by Pieter Palmers
+
+This file is part of FFADO
+FFADO = Free Firewire (pro-)audio drivers for linux
+
+FFADO is based upon FreeBoB.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) version 3 of the License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+ MotuMixerUI
+
+
+
+ 0
+ 0
+ 1004
+ 693
+
+
+
+
+ 0
+ 0
+
+
+
+ Form1
+
+
+ -
+
+
+ Device settings
+
+
+
-
+
+
+
+
+
+ Optical input mode
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ ADAT
+
+
+ -
+
+ Toslink
+
+
+
+
+
+
+
+ -
+
+
+ QFrame::HLine
+
+
+ QFrame::Sunken
+
+
+
+ -
+
+
+
+
+
+ Optical output mode
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ ADAT
+
+
+ -
+
+ Toslink
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ Phones assign
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ Phones
+
+
+ -
+
+ Analog 1-2
+
+
+ -
+
+ Analog 3-4
+
+
+ -
+
+ Analog 5-6
+
+
+ -
+
+ Analog 7-8
+
+
+ -
+
+ AES/EBU
+
+
+ -
+
+ SPDIF
+
+
+ -
+
+ ADAT 1-2
+
+
+ -
+
+ ADAT 3-4
+
+
+ -
+
+ ADAT 5-6
+
+
+ -
+
+ ADAT 7-8
+
+
+
+
+
+
+
+ -
+
+
+ QFrame::HLine
+
+
+ QFrame::Sunken
+
+
+
+ -
+
+
+
+
+
+ Meter source
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ Analog out
+
+
+ -
+
+ ADAT in
+
+
+ -
+
+ ADAT out
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ AES/EBU Meter
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ AES/EBU out
+
+
+ -
+
+ AES/EBU in
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ Peakhold time
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ Off
+
+
+ -
+
+ 2 sec
+
+
+ -
+
+ 4 sec
+
+
+ -
+
+ 10 sec
+
+
+ -
+
+ 1 min
+
+
+ -
+
+ 5 min
+
+
+ -
+
+ 8 min
+
+
+ -
+
+ infinite
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ Cliphold time
+
+
+
-
+
+
+
+ 9
+
+
+
-
+
+ Off
+
+
+ -
+
+ 2 sec
+
+
+ -
+
+ 4 sec
+
+
+ -
+
+ 10 sec
+
+
+ -
+
+ 1 min
+
+
+ -
+
+ 5 min
+
+
+ -
+
+ 8 min
+
+
+ -
+
+ infinite
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 220
+
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Analog input settings
+
+
+
+ 0
+
+
-
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+
+
+
+ 53
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Gain
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pad
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 9
+
+
+
+ Boost
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ +4dBu
+
+
+ true
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 101
+ 20
+
+
+
+
+
+
+
+ -
+
+
+ 0
+
+
+
+ Mix 1
+
+
+
-
+
+
+
+ Analog
+
+
+
+ 0
+
+
-
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ AES/EBU
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 450
+ 20
+
+
+
+
+
+
+
+
+ SPDIF
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 470
+ 20
+
+
+
+
+
+
+
+
+ ADAT
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 31
+ 20
+
+
+
+
+ -
+
+
+ Mix 1 output
+
+
+
-
+
+
+
+ 9
+
+
+
+ Destination
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ Phones
+
+
+ -
+
+ Analog 1-2
+
+
+ -
+
+ Analog 3-4
+
+
+ -
+
+ Analog 5-6
+
+
+ -
+
+ Analog 7-8
+
+
+ -
+
+ AES/EBU
+
+
+ -
+
+ SPDIF
+
+
+ -
+
+ ADAT 1-2
+
+
+ -
+
+ ADAT 3-4
+
+
+ -
+
+ ADAT 5-6
+
+
+ -
+
+ ADAT 7-8
+
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mix 2
+
+
+ -
+
+
+
+ Analog
+
+
+
+ 0
+
+
-
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ AES/EBU
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 450
+ 20
+
+
+
+
+
+
+
+
+ SPDIF
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 470
+ 20
+
+
+
+
+
+
+
+
+ ADAT
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 31
+ 20
+
+
+
+
+ -
+
+
+ Mix 2 output
+
+
+
-
+
+
+
+ 9
+
+
+
+ Destination
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ Phones
+
+
+ -
+
+ Analog 1-2
+
+
+ -
+
+ Analog 3-4
+
+
+ -
+
+ Analog 5-6
+
+
+ -
+
+ Analog 7-8
+
+
+ -
+
+ AES/EBU
+
+
+ -
+
+ SPDIF
+
+
+ -
+
+ ADAT 1-2
+
+
+ -
+
+ ADAT 3-4
+
+
+ -
+
+ ADAT 5-6
+
+
+ -
+
+ ADAT 7-8
+
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mix 3
+
+
+ -
+
+
+
+ Analog
+
+
+
+ 0
+
+
-
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ AES/EBU
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 450
+ 20
+
+
+
+
+
+
+
+
+ SPDIF
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 470
+ 20
+
+
+
+
+
+
+
+
+ ADAT
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 31
+ 20
+
+
+
+
+ -
+
+
+ Mix 3 output
+
+
+
-
+
+
+
+ 9
+
+
+
+ Destination
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ Phones
+
+
+ -
+
+ Analog 1-2
+
+
+ -
+
+ Analog 3-4
+
+
+ -
+
+ Analog 5-6
+
+
+ -
+
+ Analog 7-8
+
+
+ -
+
+ AES/EBU
+
+
+ -
+
+ SPDIF
+
+
+ -
+
+ ADAT 1-2
+
+
+ -
+
+ ADAT 3-4
+
+
+ -
+
+ ADAT 5-6
+
+
+ -
+
+ ADAT 7-8
+
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mix 4
+
+
+ -
+
+
+
+ Analog
+
+
+
+ 0
+
+
-
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ AES/EBU
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 450
+ 20
+
+
+
+
+
+
+
+
+ SPDIF
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 470
+ 20
+
+
+
+
+
+
+
+
+ ADAT
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
-
+
+
+
+ 9
+
+
+
+ Solo
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ -64
+
+
+ 64
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Pan
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 31
+ 20
+
+
+
+
+ -
+
+
+ Mix 4 output
+
+
+
-
+
+
+
+ 9
+
+
+
+ Destination
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+
+ 9
+
+
+
-
+
+ Disabled
+
+
+ -
+
+ Phones
+
+
+ -
+
+ Analog 1-2
+
+
+ -
+
+ Analog 3-4
+
+
+ -
+
+ Analog 5-6
+
+
+ -
+
+ Analog 7-8
+
+
+ -
+
+ AES/EBU
+
+
+ -
+
+ SPDIF
+
+
+ -
+
+ ADAT 1-2
+
+
+ -
+
+ ADAT 3-4
+
+
+ -
+
+ ADAT 5-6
+
+
+ -
+
+ ADAT 7-8
+
+
+
+
+ -
+
+
+
+ 9
+
+
+
+ Mute
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+ -
+
+
+
+ 12
+ 0
+
+
+
+ 128
+
+
+ 128
+
+
+ Qt::Vertical
+
+
+ 5
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 1
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ qPixmapFromMimeSource
+
+
+
Index: /trunk/libffado/support/mixer-qt4/mixer_saffire_base.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_saffire_base.py (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/mixer_saffire_base.py (revision 1435)
@@ -23,4 +23,7 @@
from PyQt4.QtCore import SIGNAL, SLOT, QObject
+import logging
+log = logging.getLogger('saffirebase')
+
# the class that holds all actual control code
class SaffireMixerBase:
@@ -30,11 +33,10 @@
def updateMatrixVolume(self,a0):
sender = self.sender()
- #vol = 0x7FFF-a0
vol = a0
- print "set %s %d %d to %d" % (
+ log.debug("set %s %d %d to %d" % (
self.VolumeControls[sender][0],
self.VolumeControls[sender][1],
self.VolumeControls[sender][2],
- vol)
+ vol))
self.hw.setMatrixMixerValue(self.VolumeControls[sender][0],
self.VolumeControls[sender][1],
@@ -43,8 +45,8 @@
def updateLowResVolume(self,a0):
sender = self.sender()
- vol = a0
- print "set %s to %d" % (
+ vol = 127 - a0
+ log.debug("set %s to %d" % (
self.VolumeControlsLowRes[sender][0],
- vol)
+ vol))
self.hw.setDiscrete(self.VolumeControlsLowRes[sender][0], vol)
@@ -55,7 +57,7 @@
else:
state = 0
- print "set %s to %d" % (
+ log.debug("set %s to %d" % (
self.SelectorControls[sender][0],
- state)
+ state))
self.hw.setDiscrete(self.SelectorControls[sender][0], state)
@@ -64,5 +66,5 @@
linked = self.SelectorControls[sender][1]
for ctl in linked:
- if ctl.state():
+ if ctl.isChecked():
state = 1
else:
@@ -72,6 +74,6 @@
def triggerButton(self):
sender = self.sender()
- print "trigger %s" % (
- self.TriggerButtonControls[sender][0])
+ log.debug("trigger %s" % (
+ self.TriggerButtonControls[sender][0]))
self.hw.setDiscrete(self.TriggerButtonControls[sender][0], 1)
@@ -79,6 +81,6 @@
sender = self.sender()
textbox = self.saveTextControls[sender][0]
- print "save %s" % (
- textbox.text().ascii())
+ log.debug("save %s" % (
+ textbox.text().ascii()))
self.hw.setText(self.TextControls[textbox][0], textbox.text().ascii())
@@ -100,18 +102,17 @@
for ctrl, info in self.VolumeControls.iteritems():
vol = self.hw.getMatrixMixerValue(self.VolumeControls[ctrl][0],
- self.VolumeControls[ctrl][1],
- self.VolumeControls[ctrl][2])
- print "%s volume is %d" % (ctrl.objectName() , 0x7FFF-vol)
- #ctrl.setValue(0x7FFF-vol)
+ self.VolumeControls[ctrl][1],
+ self.VolumeControls[ctrl][2])
+ log.debug("%s volume is %d" % (ctrl.objectName() , vol))
ctrl.setValue(vol)
for ctrl, info in self.VolumeControlsLowRes.iteritems():
vol = self.hw.getDiscrete(self.VolumeControlsLowRes[ctrl][0])
- print "%s volume is %d" % (ctrl.objectName() , vol)
- ctrl.setValue(vol)
+ log.debug("%s volume is %d" % (ctrl.objectName() , 127-vol))
+ ctrl.setValue(127 - vol)
for ctrl, info in self.SelectorControls.iteritems():
state = self.hw.getDiscrete(self.SelectorControls[ctrl][0])
- print "%s state is %d" % (ctrl.objectName() , state)
+ log.debug("%s state is %d" % (ctrl.objectName() , state))
if state:
ctrl.setChecked(True)
@@ -124,5 +125,5 @@
for ctrl, info in self.TextControls.iteritems():
text = self.hw.getText(self.TextControls[ctrl][0])
- print "%s text is %s" % (ctrl.objectName() , text)
+ log.debug("%s text is %s" % (ctrl.objectName() , text))
ctrl.setText(text)
@@ -130,8 +131,7 @@
self.initCombo(ctrl)
- def polledUpdateVolumeLowRes(self, srcpath, ctrl):
- vol = self.hw.getDiscrete(srcpath)
- #print "polledUpdateVolumeLowRes: vol = %s" % vol
- #ctrl.setValue(255-vol)
+ def polledUpdateVolumeLowRes(self, srcpath, ctrl, divider=1):
+ vol = self.hw.getDiscrete(srcpath) / divider
+ #log.debug("polledUpdateVolumeLowRes: vol = %s" % vol)
ctrl.setValue(vol)
Index: /trunk/libffado/support/mixer-qt4/ffado-mixer.in
===================================================================
--- /trunk/libffado/support/mixer-qt4/ffado-mixer.in (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/ffado-mixer.in (revision 1435)
@@ -0,0 +1,186 @@
+#!/usr/bin/python
+#
+# Copyright (C) 2005-2008 by Pieter Palmers
+# 2007-2008 by Arnold Krille
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+#
+# QT 4 version
+#
+
+import sys
+
+# Add the path of the installed ffado-mixer-modules
+sys.path.append( "$PYTHONDIR" )
+
+from ffadomixer_config import * #POLL_SLEEP_TIME_MSEC, FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH
+
+import os
+import time
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject, QTimer, Qt
+from PyQt4.QtGui import * #QApplication, QMessageBox, QIcon
+
+from ffado_dbus_util import *
+
+from ffado_panelmanager import PanelManager
+
+"""Just a small helper to ask the retry-question without a blocking messagebox"""
+class StartDialog(QWidget):
+ def __init__(self, parent):
+ QWidget.__init__(self, parent)
+ self.setObjectName("Restart Dialog")
+ self.label = QLabel("Somehow the connection to the dbus-service of FFADO couldn't be established.\nShall we take another try?",self)
+ self.button = QPushButton("Retry", self)
+ self.layout = QGridLayout(self)
+ self.layout.addWidget(self.label, 0, 0, Qt.AlignCenter)
+ self.layout.addWidget(self.button, 1, 0, Qt.AlignCenter)
+
+
+class FFADOWindow(QMainWindow):
+ def __init__(self, parent):
+ QMainWindow.__init__(self, parent)
+
+ self.manager = PanelManager(self)
+
+ filemenu = self.menuBar().addMenu("File")
+ quitaction = QAction("Quit", self)
+ quitaction.setShortcut(self.tr("Ctrl+q"))
+ self.connect(quitaction, SIGNAL("triggered()"), self, SLOT("close()"))
+ filemenu.addAction(quitaction)
+
+ editmenu = self.menuBar().addMenu("Edit")
+ self.updateaction = QAction("Update Mixer Panels", self)
+ self.updateaction.setEnabled(False)
+ self.connect(self.updateaction, SIGNAL("triggered()"), self.manager.updatePanels)
+ editmenu.addAction(self.updateaction)
+ self.resetaction = QAction("Trigger Bus Reset", self)
+ self.connect(self.resetaction, SIGNAL("triggered()"), self.manager.busreset)
+ editmenu.addAction(self.resetaction)
+ self.resetaction.setEnabled(False)
+
+ helpmenu = self.menuBar().addMenu( "Help" )
+ aboutaction = QAction( "About FFADO", self )
+ self.connect( aboutaction, SIGNAL( "triggered()" ), self.aboutFFADO )
+ helpmenu.addAction( aboutaction )
+ aboutqtaction = QAction( "About Qt", self )
+ self.connect( aboutqtaction, SIGNAL( "triggered()" ), qApp, SLOT( "aboutQt()" ) )
+ helpmenu.addAction( aboutqtaction )
+
+ self.statusBar().showMessage( "Initializing...", 5000 )
+
+ QTimer.singleShot( 1, self.connectToDBUS )
+
+ def connectToDBUS(self):
+ try:
+ self.setupDeviceManager()
+ except dbus.DBusException, ex:
+ log.error("")
+ log.error("")
+ log.error("===========================================================")
+ log.error("ERROR: Could not communicate with the FFADO DBus service...")
+ log.error("===========================================================")
+ log.error("")
+ log.error("")
+ if not hasattr(self,"retry"):
+ self.retry = StartDialog(self)
+ self.setCentralWidget(self.retry)
+ self.connect(self.retry.button, SIGNAL("clicked()"), self.tryStartDBUSServer)
+ self.retry.setEnabled(True)
+
+ def tryStartDBUSServer(self):
+ try:
+ self.setupDeviceManager()
+ except dbus.DBusException, ex:
+ self.retry.setEnabled(False)
+ os.spawnlp( os.P_NOWAIT, "ffado-dbus-server" )
+ QTimer.singleShot(2000, self.connectToDBUS)
+
+ def setupDeviceManager(self):
+ devmgr = DeviceManagerInterface(FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH)
+ nbDevices = devmgr.getNbDevices()
+ self.manager.setManager(devmgr)
+ self.setCentralWidget(self.manager)
+ self.updateaction.setEnabled(True)
+ self.resetaction.setEnabled(True)
+
+ def aboutFFADO(self):
+ QMessageBox.about( self, "About FFADO", """
+ffado.org
+
+FFADO is the new approach to have firewire audio on linux.
+
+© 2006-2008 by the FFADO developers
ffado is licensed under the GPLv3, for the full license text see www.gnu.org/licenses or the LICENSE.* files shipped with ffado.
+
+FFADO developers are:
+- Pieter Palmers
+
- Daniel Wagner
+
- Jonathan Woithe
+
- Arnold Krille
+
+""" )
+
+
+if __name__ == "__main__":
+ #set up logging
+ import logging
+ logging.basicConfig()
+
+ if DEBUG:
+ debug_level = logging.DEBUG
+ else:
+ debug_level = logging.INFO
+
+ logging.getLogger('main').setLevel(debug_level)
+ logging.getLogger('dbus').setLevel(debug_level)
+ logging.getLogger('registration').setLevel(debug_level)
+ logging.getLogger('panelmanager').setLevel(debug_level)
+
+ logging.getLogger('global').setLevel(debug_level)
+
+ logging.getLogger('audiofire').setLevel(debug_level)
+ logging.getLogger('bridgeco').setLevel(debug_level)
+ logging.getLogger('edirolfa101').setLevel(debug_level)
+ logging.getLogger('edirolfa66').setLevel(debug_level)
+ logging.getLogger('motu').setLevel(debug_level)
+ logging.getLogger('phase24').setLevel(debug_level)
+ logging.getLogger('phase88').setLevel(debug_level)
+ logging.getLogger('quatafire').setLevel(debug_level)
+ logging.getLogger('saffirebase').setLevel(debug_level)
+ logging.getLogger('saffire').setLevel(debug_level)
+ logging.getLogger('saffirepro').setLevel(debug_level)
+
+ log = logging.getLogger('main')
+
+ app = QApplication(sys.argv)
+ app.setWindowIcon( QIcon( SHAREDIR + "/icons/hi64-apps-ffado.png" ) )
+
+
+ mainwindow = FFADOWindow(None)
+
+
+ # rock & roll
+ mainwindow.show()
+ QObject.connect(app,SIGNAL("lastWindowClosed()"),app,SLOT("quit()"))
+ app.exec_()
+
+#
+# vim: ts=4 sw=4 et
Index: /trunk/libffado/support/mixer-qt4/mixer_quatafire.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_quatafire.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_quatafire.py (revision 1435)
@@ -0,0 +1,103 @@
+#
+# Copyright (C) 2005-2008 by Pieter Palmers
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject
+from PyQt4.QtGui import QWidget
+from mixer_quatafireui import *
+
+import logging
+log = logging.getLogger('quatafire')
+
+class QuataFireMixer(QWidget, Ui_QuataFireMixerUI):
+ def __init__(self,parent = None):
+ QWidget.__init__(self,parent)
+ self.setupUi(self)
+
+ self.VolumeControls={
+ self.sldCh1: ['/Mixer/Feature_Volume_1', 1],
+ self.sldCh2: ['/Mixer/Feature_Volume_1', 2],
+ self.sldCh34: ['/Mixer/Feature_Volume_2', 0],
+ self.sldCh56: ['/Mixer/Feature_Volume_3', 0],
+ self.sldDawAll: ['/Mixer/Feature_Volume_4', 0],
+ self.sldDawCH1: ['/Mixer/Feature_Volume_4', 1],
+ self.sldDawCH2: ['/Mixer/Feature_Volume_4', 2],
+ self.sldDawCH3: ['/Mixer/Feature_Volume_4', 3],
+ self.sldDawCH4: ['/Mixer/Feature_Volume_4', 4],
+ self.sldDawCH5: ['/Mixer/Feature_Volume_4', 5],
+ self.sldDawCH6: ['/Mixer/Feature_Volume_4', 6],
+ self.sldDawCH7: ['/Mixer/Feature_Volume_4', 7],
+ self.sldDawCH8: ['/Mixer/Feature_Volume_4', 8],
+ }
+ self.PanControls={
+ #self.dialCh1: ['/Mixer/Feature_Volume_1'],
+ #self.dialCh2: ['/Mixer/Feature_Volume_1'],
+ self.dialCh34: ['/Mixer/Feature_Volume_2'],
+ self.dialCh56: ['/Mixer/Feature_Volume_3'],
+ }
+
+ def updateVolume(self,a0):
+ sender = self.sender()
+ vol = -a0
+ log.debug("setting %s volume to %d" % (self.VolumeControls[sender][0], vol))
+ self.hw.setContignuous(self.VolumeControls[sender][0], vol, self.VolumeControls[sender][1])
+
+ def updatePan(self,a0):
+ sender = self.sender()
+ pan_left = a0
+ if pan_left < 0:
+ pan_left = 0
+
+ pan_right = -a0
+ if pan_right < 0:
+ pan_right = 0
+
+ log.debug("setting %s pan left to %d" % (self.PanControls[sender][0], -pan_left))
+ self.hw.setContignuous(self.PanControls[sender][0], -pan_left, 1)
+ log.debug("setting %s pan right to %d" % (self.PanControls[sender][0], -pan_right))
+ self.hw.setContignuous(self.PanControls[sender][0], -pan_right, 2)
+
+ def initValues(self):
+ for ctrl, info in self.VolumeControls.iteritems():
+ vol = self.hw.getContignuous(self.VolumeControls[ctrl][0], self.VolumeControls[ctrl][1])
+ val = -vol
+ log.debug("%s volume is %d, set to %d" % (ctrl.objectName(), vol, val))
+ ctrl.setValue(val)
+
+ # connect the UI element
+ QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateVolume)
+
+ for ctrl, info in self.PanControls.iteritems():
+ pan_left = self.hw.getContignuous(self.PanControls[ctrl][0], 1)
+ pan_right = self.hw.getContignuous(self.PanControls[ctrl][0], 2)
+
+ log.debug("%s pan left is %d" % (ctrl.objectName() , pan_left))
+ log.debug("%s pan right is %d" % (ctrl.objectName() , pan_right))
+
+ if pan_left == 0:
+ val = pan_right
+ else:
+ val = -pan_left
+
+ ctrl.setValue(val)
+ # connect the UI element
+ QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updatePan)
+
Index: /trunk/libffado/support/mixer-qt4/mixer_edirolfa66.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_edirolfa66.ui (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_edirolfa66.ui (revision 1435)
@@ -0,0 +1,867 @@
+
+ Copyright (C) 2005-2008 by Daniel Wagner
+
+ This file is part of FFADO
+ FFADO = Free Firewire (pro-)audio drivers for linux
+
+ FFADO is based upon FreeBoB.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) version 3 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ EdirolFa66ControlUI
+
+
+
+ 0
+ 0
+ 421
+ 193
+
+
+
+ Edirol FA-66
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Monitor Input Mixer
+
+
+
-
+
+
-
+
+
+ 1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 16
+
+
+
+
+
+
+ -
+
+
+ -32767
+
+
+ 32512
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ 2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+ -
+
+
+ -32767
+
+
+ 32512
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ 3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+ -
+
+
+ -32767
+
+
+ 32512
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+ -
+
+
+ -32767
+
+
+ 32512
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ 5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 80
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+ -
+
+
+ -32767
+
+
+ 32512
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
-
+
+
+ 6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+ -
+
+
+ -32767
+
+
+ 32512
+
+
+ Qt::Horizontal
+
+
+
+
+
+
+
+
+
+
+
+ qPixmapFromMimeSource
+
+
+
+ sldInput1
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setVolumeIn1(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput2
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setVolumeIn2(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput3
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setVolumeIn3(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput4
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setVolumeIn4(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput5
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setVolumeIn5(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldInput6
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setVolumeIn6(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldBal1
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setBalanceIn1(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldBal2
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setBalanceIn2(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldBal3
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setBalanceIn3(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldBal4
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setBalanceIn4(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldBal5
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setBalanceIn5(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+ sldBal6
+ sliderMoved(int)
+ EdirolFa66ControlUI
+ setBalanceIn6(int)
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+
Index: /trunk/libffado/support/mixer-qt4/mixer_dummy.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_dummy.py (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/mixer_dummy.py (revision 1435)
@@ -30,7 +30,4 @@
self.setupUi(self)
- def init(self):
- print "Init Dummy mixer window"
-
def initValues(self):
pass
Index: /trunk/libffado/support/mixer-qt4/SConscript
===================================================================
--- /trunk/libffado/support/mixer-qt4/SConscript (revision 1336)
+++ /trunk/libffado/support/mixer-qt4/SConscript (revision 1435)
@@ -30,20 +30,28 @@
e = env.Clone()
e['MIXERGUIS'] = [
- #'phase24', 'phase88',
+ 'phase24',
+ 'phase88',
'saffire_mono', 'saffire_stereo',
'saffirepro_large', 'saffirepro_small',
'saffirele_large', 'saffirele_small',
'audiofire_strip', 'audiofire_settings',
- #'bcoaudio5', 'edirolfa66',
- #'mackie_generic', 'quatafire', 'motu',
+ 'bcoaudio5',
+ 'edirolfa101', 'edirolfa66',
+ 'quatafire',
+ 'mackie_onyxmixer',
+ 'motu',
'global', 'dummy'
]
e['MIXERAPPS'] = [
- #'phase24', 'phase88',
+ 'phase24',
+ 'phase88',
'saffire',
'saffirepro',
'audiofire',
- #'bcoaudio5', 'edirolfa66',
- #'mackie_generic', 'quatafire', 'motu',
+ 'bcoaudio5',
+ 'edirolfa101', 'edirolfa66',
+ 'quatafire',
+ 'mackie_onyxmixer',
+ 'motu',
'global', 'dummy'
]
@@ -53,4 +61,5 @@
'ffado_regdialog',
'ffado_panelmanager',
+ 'ffado_configuration',
'mixer_saffire_base'
]
@@ -84,7 +93,8 @@
e.Install( "$pythondir", "ffadomixer_config.py" )
- e.ScanReplace( "ffadomixer.in" )
- e.Depends( "ffadomixer", "#/config.h" )
- e.Depends( "ffadomixer", "SConscript" )
- e.Install( "$bindir", "ffadomixer" )
+ e.ScanReplace( "ffado-mixer.in" )
+ e.Depends( "ffado-mixer", "#/config.h" )
+ e.Depends( "ffado-mixer", "SConscript" )
+ e.Install( "$bindir", "ffado-mixer" )
+ e.Install( "$sharedir/icons", "../xdg/hi64-apps-ffado.png" )
Index: /trunk/libffado/support/mixer-qt4/mixer_global.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_global.py (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/mixer_global.py (revision 1435)
@@ -21,17 +21,38 @@
#
+from PyQt4.QtCore import QObject, pyqtSignature
from PyQt4.QtGui import QWidget, QMessageBox
from mixer_globalui import Ui_GlobalMixerUi
+import logging
+log = logging.getLogger('global')
+
class GlobalMixer( QWidget, Ui_GlobalMixerUi ):
- def __init__( self, parent ):
+ def __init__( self, parent, name=None ):
QWidget.__init__( self, parent )
self.setupUi(self)
+ self.setName(name)
- def clockChanged( self, clock ):
- #print "updateClockSource( " + str(clock) + " )"
- self.clockselect.select( clock )
+ def setName(self,name):
+ if name is not None:
+ self.lblName.setText(name)
+ self.lblName.show()
+ else:
+ self.lblName.hide()
+
+ @pyqtSignature("int")
+ def on_clocksource_activated( self, clock ):
+ #log.debug("updateClockSource( " + str(clock) + " )")
+ if self.clockselect.canChangeValue():
+ self.clockselect.select( clock )
+ else:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Clock source change not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.clocksource.setEnabled(False)
+ return
+
selected = self.clockselect.selected()
-
if selected != clock:
clockname = self.clockselect.getEnumLabel( clock )
@@ -42,9 +63,18 @@
self.clocksource.setCurrentIndex( selected )
- def samplerateChanged( self, sr ):
- print "samplerateChanged( " + str(sr) + " )"
- self.samplerateselect.select( sr )
+ @pyqtSignature("int")
+ def on_samplerate_activated( self, sr ):
+ log.debug("on_samplerate_activated( " + str(sr) + " )")
+ if self.samplerateselect.canChangeValue():
+ self.samplerateselect.select( sr )
+ else:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Sample rate change not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.samplerate.setEnabled(False)
+ return
+
selected = self.samplerateselect.selected()
-
if selected != sr:
srname = self.samplerateselect.getEnumLabel( sr )
@@ -55,8 +85,12 @@
self.samplerate.setCurrentIndex( selected )
- def nicknameChanged( self, name ):
- #print "nicknameChanged( %s )" % name
- asciiData = name.toAscii()
- self.nickname.setText( asciiData.data() )
+ @pyqtSignature("QString")
+ def on_nickname_activated( self, name ):
+ #log.debug("on_nickname_activated( %s )" % name)
+ if self.nickname.canChangeValue():
+ asciiData = name.toAscii()
+ self.nickname.setText( asciiData.data() )
+ else:
+ self.txtNickname.setText( self.nickname.text() )
def initValues( self ):
@@ -66,5 +100,5 @@
self.clocksource.insertItem( nb_clocks, self.clockselect.getEnumLabel( i ) )
self.clocksource.setCurrentIndex( self.clockselect.selected() )
-
+
nb_rates = self.samplerateselect.count()
for i in range( nb_rates ):
@@ -74,2 +108,13 @@
self.txtNickname.setText( self.nickname.text() )
+ self.samplerate.setEnabled(self.samplerateselect.canChangeValue())
+ self.clocksource.setEnabled(self.clockselect.canChangeValue())
+ if self.nickname.canChangeValue():
+ self.txtNickname.setEnabled(True)
+ else:
+ self.txtNickname.setEnabled(False)
+
+ def polledUpdate(self):
+ self.samplerate.setEnabled(self.samplerateselect.canChangeValue())
+ self.clocksource.setEnabled(self.clockselect.canChangeValue())
+ self.txtNickname.setEnabled(self.nickname.canChangeValue())
Index: /trunk/libffado/support/mixer-qt4/mixer_saffirepro.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_saffirepro.py (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/mixer_saffirepro.py (revision 1435)
@@ -21,8 +21,11 @@
#
-from PyQt4.QtGui import QWidget, QHBoxLayout
+from PyQt4.QtGui import QWidget, QHBoxLayout, QMessageBox
from mixer_saffire_base import SaffireMixerBase
from mixer_saffirepro_largeui import Ui_SaffireProMixerLargeUI
from mixer_saffirepro_smallui import Ui_SaffireProMixerSmallUI
+
+import logging
+log = logging.getLogger('saffirepro')
class SaffireProMixer(QWidget):
@@ -53,10 +56,10 @@
def selectCorrectMode(self):
if self.samplerate <= 96000:
- print "large"
+ log.debug("large")
self.small.hide()
self.large.initValues()
self.large.show()
else:
- print "small"
+ log.debug("small")
self.large.hide()
self.small.initValues()
@@ -64,7 +67,8 @@
def initValues(self):
+ self.is_not_streaming = self.samplerateselect.canChangeValue()
selected = self.samplerateselect.selected()
self.samplerate = int(self.samplerateselect.getEnumLabel( selected ))
- print "detected samplerate %d" % self.samplerate
+ log.debug("detected samplerate %d" % self.samplerate)
# adat on PRO26 makes a difference
@@ -75,8 +79,8 @@
if state:
self.have_adat = False
- print "detected PRO26, ADAT disabled"
+ log.debug("detected PRO26, ADAT disabled")
else:
self.have_adat = True
- print "detected PRO26, ADAT enabled"
+ log.debug("detected PRO26, ADAT enabled")
elif modelId == 0x00000006: # PRO10
self.is_pro10 = True
@@ -98,6 +102,9 @@
def polledUpdate(self):
- # fixme: todo
- pass
+ self.is_not_streaming = self.samplerateselect.canChangeValue()
+ if self.samplerate <= 96000:
+ self.large.polledUpdate()
+ else:
+ self.small.polledUpdate()
class SaffireProMixerLarge(QWidget, Ui_SaffireProMixerLargeUI, SaffireMixerBase):
@@ -108,5 +115,5 @@
self.setupUi(self)
self.have_adat = False
- print "Init large Saffire Pro mixer window"
+ log.debug("Init large Saffire Pro mixer window")
self.VolumeControls={
@@ -212,17 +219,17 @@
self.chkAdatDisable: ['/Control/ADATDisable'],
# Mixer switches
- self.chkMute12: ['/Mixer/Out12Mute'],
+ self.chkMute12: ['/Mixer/Out12Mute', [self.chkHwCtrl12]],
self.chkHwCtrl12: ['/Mixer/Out12HwCtrl'],
self.chkPad12: ['/Mixer/Out12Pad'],
self.chkDim12: ['/Mixer/Out12Dim'],
- self.chkMute34: ['/Mixer/Out34Mute'],
+ self.chkMute34: ['/Mixer/Out34Mute', [self.chkHwCtrl34]],
self.chkHwCtrl34: ['/Mixer/Out34HwCtrl'],
self.chkPad34: ['/Mixer/Out34Pad'],
self.chkDim34: ['/Mixer/Out34Dim'],
- self.chkMute56: ['/Mixer/Out56Mute'],
+ self.chkMute56: ['/Mixer/Out56Mute', [self.chkHwCtrl56]],
self.chkHwCtrl56: ['/Mixer/Out56HwCtrl'],
self.chkPad56: ['/Mixer/Out56Pad'],
self.chkDim56: ['/Mixer/Out56Dim'],
- self.chkMute78: ['/Mixer/Out78Mute'],
+ self.chkMute78: ['/Mixer/Out78Mute', [self.chkHwCtrl78]],
self.chkHwCtrl78: ['/Mixer/Out78HwCtrl'],
self.chkPad78: ['/Mixer/Out78Pad'],
@@ -267,7 +274,53 @@
SaffireMixerBase.updateLowResVolume(self,a0)
def updateSelector(self,a0):
+ sender = self.sender()
+ #if sender == self.chkAC3 and not self.my_parent.is_not_streaming:
+ #msg = QMessageBox()
+ #msg.question( msg, "Error", \
+ #"Change not permitted. Is streaming active?", \
+ #QMessageBox.Ok )
+ #self.chkAC3.setEnabled(False)
+ #if a0:
+ #self.chkAC3.setChecked(False)
+ #else:
+ #self.chkAC3.setChecked(True)
+ #return
+ if sender == self.chkMidiEnable and not self.my_parent.is_not_streaming:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Change not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.chkMidiEnable.setEnabled(False)
+ state = self.hw.getDiscrete(self.SelectorControls[self.chkMidiEnable][0])
+ if state:
+ self.chkMidiEnable.setChecked(True)
+ else:
+ self.chkMidiEnable.setChecked(False)
+ return
+ if sender == self.chkAdatDisable and not self.my_parent.is_not_streaming:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Change not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.chkAdatDisable.setEnabled(False)
+ state = self.hw.getDiscrete(self.SelectorControls[self.chkAdatDisable][0])
+ if state:
+ self.chkAdatDisable.setChecked(True)
+ else:
+ self.chkAdatDisable.setChecked(False)
+ return
SaffireMixerBase.updateSelector(self,a0)
+
def triggerButton(self):
+ sender = self.sender()
+ if sender == self.btnReboot and not self.my_parent.is_not_streaming:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Operation not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.btnReboot.setEnabled(False)
+ return
SaffireMixerBase.triggerButton(self)
+
def saveText(self):
SaffireMixerBase.saveText(self)
@@ -293,4 +346,25 @@
SaffireMixerBase.updateValues(self)
+ def polledUpdate(self):
+ #log.debug("polled update (large)")
+ self.polledUpdateHwCtrl(self.chkHwCtrl12, self.sldOut12Level)
+ self.polledUpdateHwCtrl(self.chkHwCtrl34, self.sldOut34Level)
+ self.polledUpdateHwCtrl(self.chkHwCtrl56, self.sldOut56Level)
+ self.polledUpdateHwCtrl(self.chkHwCtrl78, self.sldOut78Level)
+
+ #make these inaccessible whenever streaming is running
+ #self.chkAC3.setEnabled(self.my_parent.is_not_streaming)
+ self.chkMidiEnable.setEnabled(self.my_parent.is_not_streaming)
+ self.chkAdatDisable.setEnabled(self.my_parent.is_not_streaming)
+ self.btnReboot.setEnabled(self.my_parent.is_not_streaming)
+
+ def polledUpdateHwCtrl(self, selector, volctrl):
+ state = selector.isChecked()
+ if state:
+ self.polledUpdateVolumeLowRes('/Mixer/MonitorDial', volctrl, 2)
+ volctrl.setEnabled(False)
+ else:
+ volctrl.setEnabled(True)
+
class SaffireProMixerSmall(QWidget, Ui_SaffireProMixerSmallUI, SaffireMixerBase):
def __init__(self,parent = None):
@@ -299,5 +373,5 @@
SaffireMixerBase.__init__(self)
self.setupUi(self)
- print "Init small Saffire Pro mixer window"
+ log.debug("Init small Saffire Pro mixer window")
self.VolumeControls={
@@ -406,7 +480,53 @@
SaffireMixerBase.updateLowResVolume(self,a0)
def updateSelector(self,a0):
+ sender = self.sender()
+ #if sender == self.chkAC3 and not self.my_parent.is_not_streaming:
+ #msg = QMessageBox()
+ #msg.question( msg, "Error", \
+ #"Change not permitted. Is streaming active?", \
+ #QMessageBox.Ok )
+ #self.chkAC3.setEnabled(False)
+ #if a0:
+ #self.chkAC3.setChecked(False)
+ #else:
+ #self.chkAC3.setChecked(True)
+ #return
+ if sender == self.chkMidiEnable and not self.my_parent.is_not_streaming:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Change not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.chkMidiEnable.setEnabled(False)
+ state = self.hw.getDiscrete(self.SelectorControls[self.chkMidiEnable][0])
+ if state:
+ self.chkMidiEnable.setChecked(True)
+ else:
+ self.chkMidiEnable.setChecked(False)
+ return
+ if sender == self.chkAdatDisable and not self.my_parent.is_not_streaming:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Change not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.chkAdatDisable.setEnabled(False)
+ state = self.hw.getDiscrete(self.SelectorControls[self.chkAdatDisable][0])
+ if state:
+ self.chkAdatDisable.setChecked(True)
+ else:
+ self.chkAdatDisable.setChecked(False)
+ return
SaffireMixerBase.updateSelector(self,a0)
+
def triggerButton(self):
+ sender = self.sender()
+ if sender == self.btnReboot and not self.my_parent.is_not_streaming:
+ msg = QMessageBox()
+ msg.question( msg, "Error", \
+ "Operation not permitted. Is streaming active?", \
+ QMessageBox.Ok )
+ self.btnReboot.setEnabled(False)
+ return
SaffireMixerBase.triggerButton(self)
+
def saveText(self):
SaffireMixerBase.saveText(self)
@@ -418,2 +538,23 @@
def updateValues(self):
SaffireMixerBase.updateValues(self)
+
+ def polledUpdate(self):
+ #log.debug("polled update (small)")
+ self.polledUpdateHwCtrl(self.chkHwCtrl12, self.sldOut12Level)
+ self.polledUpdateHwCtrl(self.chkHwCtrl34, self.sldOut34Level)
+ self.polledUpdateHwCtrl(self.chkHwCtrl56, self.sldOut56Level)
+ self.polledUpdateHwCtrl(self.chkHwCtrl78, self.sldOut78Level)
+
+ #make these inaccessible whenever streaming is running
+ #self.chkAC3.setEnabled(self.my_parent.is_not_streaming)
+ self.chkMidiEnable.setEnabled(self.my_parent.is_not_streaming)
+ self.chkAdatDisable.setEnabled(self.my_parent.is_not_streaming)
+ self.btnReboot.setEnabled(self.my_parent.is_not_streaming)
+
+ def polledUpdateHwCtrl(self, selector, volctrl):
+ state = selector.isChecked()
+ if state:
+ self.polledUpdateVolumeLowRes('/Mixer/MonitorDial', volctrl, 2)
+ volctrl.setEnabled(False)
+ else:
+ volctrl.setEnabled(True)
Index: /trunk/libffado/support/mixer-qt4/ffado_registration.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/ffado_registration.py (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/ffado_registration.py (revision 1435)
@@ -7,4 +7,7 @@
from ffado_regdialog import *
+
+import logging
+log = logging.getLogger('registration')
class ffado_registration:
@@ -53,5 +56,5 @@
urllib.urlencode(post_vals))
except:
- print "failed, network error"
+ log.error("failed, network error")
return (-1, "Network Error")
@@ -68,6 +71,5 @@
errline = lines[i+1]
if not ok:
- print "registration failed"
- print " " + errline
+ log.info("registration failed %s" % errline)
return (-2, errline)
else:
@@ -106,10 +108,10 @@
if self.check_for_ignore():
- print "user requested to ignore registration"
+ log.debug("user requested to ignore registration")
else:
if self.check_if_already_registered():
- print "version/GUID combo already registered"
+ log.debug("version/GUID combo already registered")
else:
- print "show dialog..."
+ log.debug("show dialog...")
dlg = ffadoRegDialog(self.vendor_string, "0x%X" % self.vendor_id,
@@ -129,5 +131,5 @@
msg = QMessageBox()
if retval[0] == 0:
- print "registration successful"
+ log.debug("registration successful")
devinfomsg = "Device: %s %s
Vendor/Model Id: %X/%X
Device GUID: %016X
FFADO Version: %s
E-Mail: %s
" % \
(self.vendor_string, self.model_string, self.vendor_id, self.model_id, self.guid, self.ffado_version, self.email)
@@ -140,5 +142,5 @@
self.mark_version_registered()
else:
- print "error: " + retval[1]
+ log.error("error: " + retval[1])
tmp = msg.question( msg, "Registration Failed",
"The registration at ffado.org failed." +
Index: /trunk/libffado/support/mixer-qt4/mixer_phase24.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_phase24.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_phase24.py (revision 1435)
@@ -0,0 +1,158 @@
+#
+# Copyright (C) 2005-2008 by Pieter Palmers
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject
+from PyQt4.QtGui import QWidget
+from mixer_phase24ui import *
+
+import logging
+log = logging.getLogger('phase24')
+
+class Phase24Control(QWidget, Ui_Phase24ControlUI):
+ def __init__(self,parent = None):
+ QWidget.__init__(self,parent)
+ self.setupUi(self)
+
+ self.VolumeControls={
+ 'analogin' : ['/Mixer/Feature_Volume_6', self.sldLineIn],
+ 'spdifin' : ['/Mixer/Feature_Volume_7', self.sldSPDIFIn],
+ 'out12' : ['/Mixer/Feature_Volume_3', self.sldInput12],
+ 'out34' : ['/Mixer/Feature_Volume_4', self.sldInput34],
+ 'outspdif' : ['/Mixer/Feature_Volume_5', self.sldSPDIFOut],
+ }
+
+ self.SelectorControls={
+ 'outsource12': ['/Mixer/Selector_1', self.cmbOutSource12],
+ 'outsource34': ['/Mixer/Selector_2', self.cmbOutSource34],
+ 'outsourcespdif': ['/Mixer/Selector_3', self.cmbOutSourceSPDIF],
+ 'syncsource': ['/Mixer/Selector_4', self.cmbSetSyncSource],
+ }
+
+ # public slot
+ def setVolume12(self,a0):
+ self.setVolume('out12', a0)
+
+ # public slot
+ def setVolume34(self,a0):
+ self.setVolume('out34', a0)
+
+ # public slot
+ def setVolumeLineIn(self,a0):
+ self.setVolume('analogin', a0)
+
+ # public slot
+ def setVolumeSPDIFOut(self,a0):
+ self.setVolume('outspdif', a0)
+
+ # public slot
+ def setVolumeSPDIFIn(self,a0):
+ self.setVolume('spdifin', a0)
+
+ # public slot
+ def setVolumeMaster(self,a0):
+ if self.isPhaseX24:
+ return
+ self.setVolume('master', a0)
+
+ # public slot
+ def setLineLevel(self,a0):
+ log.debug("setting line level to %d" % (a0 * -768))
+ self.hw.setContignuous('/Mixer/Feature_2', a0 * -768)
+
+ # public slot
+ def setFrontLevel(self,a0):
+ if self.isPhaseX24:
+ return
+ if(a0 == 0):
+ log.debug("setting front level to %d" % (0))
+ self.hw.setContignuous('/Mixer/Feature_8', 0)
+ else:
+ log.debug("setting front level to %d" % (1536))
+ self.hw.setContignuous('/Mixer/Feature_8', 1536)
+
+ # public slot
+ def setOutSource12(self,a0):
+ self.setSelector('outsource12', a0)
+
+ # public slot
+ def setOutSource34(self,a0):
+ self.setSelector('outsource34', a0)
+
+ # public slot
+ def setOutSourceSPDIF(self,a0):
+ self.setSelector('outsourcespdif', a0)
+
+ # public slot
+ def setSyncSource(self,a0):
+ self.setSelector('syncsource', a0)
+
+ def setVolume(self,a0,a1):
+ name=a0
+ vol = -a1
+ log.debug("setting %s volume to %d" % (name, vol))
+ self.hw.setContignuous(self.VolumeControls[name][0], vol)
+
+ def setSelector(self,a0,a1):
+ name=a0
+ state = a1
+ log.debug("setting %s state to %d" % (name, state))
+ self.hw.setDiscrete(self.SelectorControls[name][0], state)
+
+ def initValues(self):
+ self.modelId = self.configrom.getModelId()
+ if self.modelId == 0x00000007:
+ self.isPhaseX24 = True
+ else:
+ self.isPhaseX24 = False
+
+ if self.isPhaseX24:
+ self.setWindowTitle("Terratec Phase X24 Control")
+ self.cmbFrontLevel.setEnabled(False)
+ self.sldMaster.setEnabled(False)
+ else:
+ self.setWindowTitle("Terratec Phase 24 Control")
+
+ self.VolumeControls['master'] = ['/Mixer/Feature_1', self.sldMaster]
+ self.sldMaster.setEnabled(True)
+
+ self.cmbFrontLevel.setEnabled(True)
+ val = self.hw.getContignuous('/Mixer/Feature_8')
+ if val > 0:
+ self.cmbFrontLevel.setCurrentIndex(1)
+ else:
+ self.cmbFrontLevel.setCurrentIndex(0)
+
+ for name, ctrl in self.VolumeControls.iteritems():
+ vol = self.hw.getContignuous(ctrl[0])
+ log.debug("%s volume is %d" % (name , vol))
+ ctrl[1].setValue(-vol)
+
+ for name, ctrl in self.SelectorControls.iteritems():
+ state = self.hw.getDiscrete(ctrl[0])
+ log.debug("%s state is %d" % (name , state))
+ ctrl[1].setCurrentIndex(state)
+
+ val = self.hw.getContignuous('/Mixer/Feature_2')/-768
+ if val > 4:
+ self.cmbLineLevel.setCurrentIndex(4)
+ else:
+ self.cmbLineLevel.setCurrentIndex(val)
Index: /trunk/libffado/support/mixer-qt4/mixer_quatafire.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_quatafire.ui (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_quatafire.ui (revision 1435)
@@ -0,0 +1,674 @@
+
+ Copyright (C) 2005-2008 by Pieter Palmers
+
+ This file is part of FFADO
+ FFADO = Free Firewire (pro-)audio drivers for linux
+
+ FFADO is based upon FreeBoB.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) version 3 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ QuataFireMixerUI
+
+
+
+ 0
+ 0
+ 702
+ 360
+
+
+
+
+ 0
+ 0
+
+
+
+ ESI QuataFire610 Mixer
+
+
+ -
+
+
+ Input Mix
+
+
+
-
+
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ MIC1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ MIC2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+ -
+
+
-
+
+
+ -32768
+
+
+ 32768
+
+
+ 1000
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ IN3/4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+ -
+
+
-
+
+
+ -32768
+
+
+ 32768
+
+
+ 1000
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ IN5/6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+ -
+
+
+ Channel Volume Control
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 32767
+
+
+ 10000
+
+
+ 1000
+
+
+ Qt::Vertical
+
+
+ 10000
+
+
+
+ -
+
+
+ ALL
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH1
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH2
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH3
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH4
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH5
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH6
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH7
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+ -
+
+
+ CH8
+
+
+ Qt::AlignCenter
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+ qPixmapFromMimeSource
+
+
+
Index: /trunk/libffado/support/mixer-qt4/mixer_edirolfa101.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_edirolfa101.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_edirolfa101.py (revision 1435)
@@ -0,0 +1,141 @@
+#
+# Copyright (C) 2005-2008 by Daniel Wagner
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject
+from PyQt4.QtGui import QWidget
+from mixer_edirolfa101ui import *
+
+import logging
+log = logging.getLogger('edirolfa101')
+
+class EdirolFa101Control(QWidget, Ui_EdirolFa101ControlUI):
+ def __init__(self, parent = None):
+ QWidget.__init__(self, parent)
+ self.setupUi(self)
+
+ self.VolumeControls = {
+ # feature name, channel, qt slider
+ 'vol1' : ['/Mixer/Feature_Volume_5', 1, self.sldInput1],
+ 'vol2' : ['/Mixer/Feature_Volume_5', 2, self.sldInput2],
+ 'vol3' : ['/Mixer/Feature_Volume_1', 1, self.sldInput3],
+ 'vol4' : ['/Mixer/Feature_Volume_1', 2, self.sldInput4],
+ 'vol5' : ['/Mixer/Feature_Volume_2', 1, self.sldInput5],
+ 'vol6' : ['/Mixer/Feature_Volume_2', 2, self.sldInput6],
+ 'vol7' : ['/Mixer/Feature_Volume_3', 1, self.sldInput7],
+ 'vol8' : ['/Mixer/Feature_Volume_3', 2, self.sldInput8],
+ 'vol9' : ['/Mixer/Feature_Volume_4', 1, self.sldInput9],
+ 'vol10' : ['/Mixer/Feature_Volume_4', 2, self.sldInput10],
+
+ 'bal1' : ['/Mixer/Feature_LRBalance_5', 1, self.sldBal1],
+ 'bal2' : ['/Mixer/Feature_LRBalance_5', 2, self.sldBal2],
+ 'bal3' : ['/Mixer/Feature_LRBalance_1', 1, self.sldBal3],
+ 'bal4' : ['/Mixer/Feature_LRBalance_1', 2, self.sldBal4],
+ 'bal5' : ['/Mixer/Feature_LRBalance_2', 1, self.sldBal5],
+ 'bal6' : ['/Mixer/Feature_LRBalance_2', 2, self.sldBal6],
+ 'bal7' : ['/Mixer/Feature_LRBalance_3', 1, self.sldBal7],
+ 'bal8' : ['/Mixer/Feature_LRBalance_3', 2, self.sldBal8],
+ 'bal9' : ['/Mixer/Feature_LRBalance_4', 1, self.sldBal9],
+ 'bal10' : ['/Mixer/Feature_LRBalance_4', 2, self.sldBal10],
+ }
+
+ def setVolumeIn1(self, vol):
+ self.setValue('vol1', vol)
+
+ def setVolumeIn2(self, vol):
+ self.setValue('vol2', vol)
+
+ def setVolumeIn3(self, vol):
+ self.setValue('vol3', vol)
+
+ def setVolumeIn4(self, vol):
+ self.setValue('vol4', vol)
+
+ def setVolumeIn5(self, vol):
+ self.setValue('vol5', vol)
+
+ def setVolumeIn6(self, vol):
+ self.setValue('vol6', vol)
+
+ def setVolumeIn7(self, vol):
+ self.setValue('vol7', vol)
+
+ def setVolumeIn8(self, vol):
+ self.setValue('vol8', vol)
+
+ def setVolumeIn9(self, vol):
+ self.setValue('vol9', vol)
+
+ def setVolumeIn10(self,vol):
+ self.setValue('vol10', vol)
+
+ def setBalanceIn1(self, bal):
+ self.setValue('bal1', bal)
+
+ def setBalanceIn2(self, bal):
+ self.setValue('bal2', bal)
+
+ def setBalanceIn3(self, bal):
+ self.setValue('bal3', bal)
+
+ def setBalanceIn4(self, bal):
+ self.setValue('bal4', bal)
+
+ def setBalanceIn5(self, bal):
+ self.setValue('bal5', bal)
+
+ def setBalanceIn6(self, bal):
+ self.setValue('bal6', bal)
+
+ def setBalanceIn7(self, bal):
+ self.setValue('bal7', bal)
+
+ def setBalanceIn8(self, bal):
+ self.setValue('bal8', bal)
+
+ def setBalanceIn9(self, bal):
+ self.setValue('bal9', bal)
+
+ def setBalanceIn10(self,bal):
+ self.setValue('bal10', bal)
+
+ def setValue(self, name, val):
+ val = -val
+ ctrl = self.VolumeControls[name]
+ log.debug("setting %s to %d" % (name, val))
+ self.hw.setContignuous(ctrl[0], val, idx = ctrl[1])
+
+ def initValues(self):
+ for name, ctrl in self.VolumeControls.iteritems():
+ val = self.hw.getContignuous(ctrl[0], idx = ctrl[1])
+ log.debug("%s value is %d" % (name , val))
+
+ # Workaround: The current value is not properly initialized
+ # on the device and returns after bootup always 0.
+ # Though we happen to know what the correct value should
+ # be therefore we overwrite the 0
+ if name[0:3] == 'bal' and val == 0:
+ if ctrl[1] == 1:
+ val = 32512
+ else:
+ val = -32768
+
+ ctrl[2].setValue(-val)
Index: /trunk/libffado/support/mixer-qt4/mixer_audiofire.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_audiofire.py (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/mixer_audiofire.py (revision 1435)
@@ -27,4 +27,6 @@
from mixer_audiofire_stripui import Ui_AfMonitorWidget
from mixer_audiofire_settingsui import Ui_AfSettingsWidget
+import logging
+log = logging.getLogger('audiofire')
class AfMonitorWidget(QWidget, Ui_AfMonitorWidget):
@@ -41,5 +43,5 @@
def __init__(self,parent = None):
QWidget.__init__(self,parent)
- print "Init AudioFire mixer window"
+ log.debug("Init AudioFire mixer window")
def getDisplayTitle(self):
@@ -61,9 +63,9 @@
else:
state = 0
- print "set %s %d %d to %d" % (
+ log.debug("set %s %d %d to %d" % (
self.MatrixButtonControls[sender][0],
self.MatrixButtonControls[sender][1],
self.MatrixButtonControls[sender][2],
- state)
+ state))
self.hw.setMatrixMixerValue(self.MatrixButtonControls[sender][0],
self.MatrixButtonControls[sender][1],
@@ -74,9 +76,9 @@
sender = self.sender()
vol = a0
- print "set %s %d %d to %d" % (
+ log.debug("set %s %d %d to %d" % (
self.MatrixRotaryControls[sender][0],
self.MatrixRotaryControls[sender][1],
self.MatrixRotaryControls[sender][2],
- vol)
+ vol))
self.hw.setMatrixMixerValue(self.MatrixRotaryControls[sender][0],
self.MatrixRotaryControls[sender][1],
@@ -88,9 +90,9 @@
vol = a0
#vol = 0x01000000-vol
- print "set %s %d %d to %d" % (
+ log.debug("set %s %d %d to %d" % (
self.MatrixVolumeControls[sender][0],
self.MatrixVolumeControls[sender][1],
self.MatrixVolumeControls[sender][2],
- vol)
+ vol))
self.hw.setMatrixMixerValue(self.MatrixVolumeControls[sender][0],
self.MatrixVolumeControls[sender][1],
@@ -102,7 +104,7 @@
vol = a0
#vol = 0x01000000-vol
- print "set %s to %d" % (
+ log.debug("set %s to %d" % (
self.VolumeControls[sender][0],
- vol)
+ vol))
self.hw.setContignuous(self.VolumeControls[sender][0],
vol)
@@ -114,12 +116,12 @@
else:
state = 0
- print "set %s to %d" % (
+ log.debug("set %s to %d" % (
self.SelectorControls[sender][0],
- state)
+ state))
self.hw.setDiscrete(self.SelectorControls[sender][0], state)
def updateTrigger(self):
sender = self.sender()
- print "trigger %s" % (self.TriggerControls[sender][0])
+ log.debug("trigger %s" % (self.TriggerControls[sender][0]))
self.hw.setDiscrete(self.TriggerControls[sender][0], 1)
@@ -131,11 +133,11 @@
state = 0
if state:
- print "set %s to %d" % (
+ log.debug("set %s to %d" % (
self.SPDIFmodeControls[sender][0],
- self.SPDIFmodeControls[sender][1])
+ self.SPDIFmodeControls[sender][1]))
self.hw.setDiscrete(self.SPDIFmodeControls[sender][0], self.SPDIFmodeControls[sender][1])
def buildMixer(self):
- print "Building mixer"
+ log.debug("Building mixer")
self.MatrixButtonControls={}
self.MatrixRotaryControls={}
@@ -239,5 +241,5 @@
for inpair in range(nb_pys_in):
# create GUI elements
- print "strip"
+ log.debug("strip")
grpInput = QGroupBox(tab)
tablayout.addWidget(grpInput)
@@ -282,5 +284,5 @@
def initValues(self):
- print "Init values"
+ log.debug("Init values")
for ctrl, info in self.MatrixVolumeControls.iteritems():
@@ -290,5 +292,5 @@
#vol = 0x01000000-vol
- print "%s volume is %d" % (ctrl.objectName() , vol)
+ log.debug("%s volume is %d" % (ctrl.objectName() , vol))
ctrl.setValue(vol)
@@ -301,5 +303,5 @@
self.MatrixButtonControls[ctrl][2])
- print "%s state is %d" % (ctrl.objectName() , state)
+ log.debug("%s state is %d" % (ctrl.objectName() , state))
if state:
ctrl.setChecked(True)
@@ -315,5 +317,5 @@
self.MatrixRotaryControls[ctrl][2])
- print "%s value is %d" % (ctrl.objectName(), vol)
+ log.debug("%s value is %d" % (ctrl.objectName(), vol))
ctrl.setValue(vol)
@@ -325,5 +327,5 @@
#vol = 0x01000000-vol
- print "%s volume is %d" % (ctrl.objectName() , vol)
+ log.debug("%s volume is %d" % (ctrl.objectName() , vol))
ctrl.setValue(vol)
@@ -333,5 +335,5 @@
for ctrl, info in self.SelectorControls.iteritems():
state = self.hw.getDiscrete(self.SelectorControls[ctrl][0])
- print "%s state is %d" % (ctrl.objectName() , state)
+ log.debug("%s state is %d" % (ctrl.objectName() , state))
if state:
ctrl.setChecked(True)
@@ -348,5 +350,5 @@
for ctrl, info in self.SPDIFmodeControls.iteritems():
state = self.hw.getDiscrete(self.SPDIFmodeControls[ctrl][0])
- print "%s state is %d" % (ctrl.objectName() , state)
+ log.debug("%s state is %d" % (ctrl.objectName() , state))
if state == self.SPDIFmodeControls[ctrl][1]:
ctrl.setChecked(True)
Index: /trunk/libffado/support/mixer-qt4/ffadomixer_config.py.in
===================================================================
--- /trunk/libffado/support/mixer-qt4/ffadomixer_config.py.in (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/ffadomixer_config.py.in (revision 1435)
@@ -10,2 +10,10 @@
POLL_SLEEP_TIME_MSEC = 100 # 100ms
+
+PYTHONDIR = "$PYTHONDIR"
+SHAREDIR = "$SHAREDIR"
+
+USER_CONFIG_FILE = "$USER_CONFIG_FILE"
+SYSTEM_CONFIG_FILE = "$SYSTEM_CONFIG_FILE"
+
+DEBUG = $DEBUG
Index: /trunk/libffado/support/mixer-qt4/mixer_bcoaudio5.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_bcoaudio5.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_bcoaudio5.py (revision 1435)
@@ -0,0 +1,97 @@
+#
+# Copyright (C) 2005-2008 by Daniel Wagner
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject
+from PyQt4.QtGui import QWidget
+from mixer_bcoaudio5ui import *
+import logging
+log = logging.getLogger('bridgeco')
+
+class BCoAudio5Control(QWidget, Ui_BCoAudio5ControlUI):
+ def __init__(self,parent = None):
+ QWidget.__init__(self,parent)
+ self.setupUi(self)
+
+ self.VolumeControls={
+ 'in_line12' : ['/Mixer/Feature_Volume_1', self.sldInput12],
+ 'in_line34' : ['/Mixer/Feature_Volume_2', self.sldInput34],
+ 'in_spdif' : ['/Mixer/Feature_Volume_3', self.sldInputSPDIF],
+ 'out_line12' : ['/Mixer/Feature_Volume_6', self.sldOutput12],
+ 'out_line34' : ['/Mixer/Feature_Volume_7', self.sldOutput34],
+ 'cross_a' : ['/Mixer/Feature_Volume_4', self.sldCrossA],
+ 'cross_b' : ['/Mixer/Feature_Volume_5', self.sldCrossB],
+ }
+
+ self.ComboControls={
+ 'line34source': ['/Mixer/Selector_1', self.comboMixSource],
+ }
+
+ def setComboMixSource(self,a0):
+ self.setSelector('line34source', a0)
+
+ def setVolumeIn12(self,a0):
+ self.setVolume('in_line12', a0)
+
+ def setVolumeIn34(self,a0):
+ self.setVolume('in_line34', a0)
+
+ def setVolumeInSPDIF(self,a0):
+ self.setVolume('in_spdif', a0)
+
+ def setVolumeOut12(self,a0):
+ self.setVolume('out_line12', a0)
+
+ def setVolumeOut34(self,a0):
+ self.setVolume('out_line34', a0)
+
+ def setCrossA(self,a0):
+ self.setVolume('cross_a', a0)
+
+ def setCrossB(self,a0):
+ self.setVolume('cross_b', a0)
+
+ def setVolume(self,a0,a1):
+ name = a0
+ vol = -a1
+ log.debug("setting %s volume to %d" % (name, vol))
+ self.hw.setContignuous(self.VolumeControls[name][0], vol)
+
+ def setSelector(self,a0,a1):
+ name = a0
+ state = a1
+ log.debug("setting %s state to %d" % (name, state))
+ self.hw.setDiscrete(self.ComboControls[name][0], state)
+ # verify
+ state = self.hw.getDiscrete(self.ComboControls[name][0])
+ self.hw.setDiscrete(self.ComboControls[name][0], state)
+
+ def initValues(self):
+ for name, ctrl in self.VolumeControls.iteritems():
+ vol = self.hw.getContignuous(ctrl[0])
+ log.debug("%s volume is %d" % (name , vol))
+ ctrl[1].setValue(-vol)
+
+ for name, ctrl in self.ComboControls.iteritems():
+ state = self.hw.getDiscrete(ctrl[0])
+ log.debug("%s state is %d" % (name , state))
+ ctrl[1].setCurrentIndex( state )
+
Index: /trunk/libffado/support/mixer-qt4/mixer_mackie_onyxmixer.py
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_mackie_onyxmixer.py (revision 1435)
+++ /trunk/libffado/support/mixer-qt4/mixer_mackie_onyxmixer.py (revision 1435)
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2005-2008 by Pieter Palmers
+#
+# This file is part of FFADO
+# FFADO = Free Firewire (pro-)audio drivers for linux
+#
+# FFADO is based upon FreeBoB.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+
+from PyQt4.QtCore import SIGNAL, SLOT, QObject
+from PyQt4.QtGui import QWidget
+from mixer_mackie_onyxmixerui import *
+
+class MackieOnyxMixer(QWidget, Ui_MackieOnyxMixerUI):
+ def __init__(self,parent = None):
+ QWidget.__init__(self,parent)
+ self.setupUi(self)
+
+ def initValues(self):
+ pass
Index: /trunk/libffado/support/mixer-qt4/mixer_saffirele_small.ui
===================================================================
--- /trunk/libffado/support/mixer-qt4/mixer_saffirele_small.ui (revision 1298)
+++ /trunk/libffado/support/mixer-qt4/mixer_saffirele_small.ui (revision 1435)
@@ -216,5 +216,5 @@
- 3
+ 0
@@ -680,5 +680,5 @@