Index: /trunk/libffado/support/tools/SConscript =================================================================== --- /trunk/libffado/support/tools/SConscript (revision 1499) +++ /trunk/libffado/support/tools/SConscript (revision 1501) @@ -40,4 +40,2 @@ e.Install( "$pythondir", "helpstrings.py" ) e.Install( "$pythondir", "listirqinfo.py" ) - - Index: /trunk/libffado/support/mixer-qt4/mixer_motu.py =================================================================== --- /trunk/libffado/support/mixer-qt4/mixer_motu.py (revision 1435) +++ /trunk/libffado/support/mixer-qt4/mixer_motu.py (revision 1501) @@ -610,5 +610,5 @@ self.mix3_tab.setTabText(1, "Mic inputs"); self.mix4_tab.setTabText(1, "Mic inputs"); - # FIXME: when implmented, will mic channels just reuse the AES/EBU + # FIXME: when implemented, will mic channels just reuse the AES/EBU # dbus path? If not we'll have to reset the respective values in # the control arrays (self.ChannelFaders etc). @@ -643,5 +643,6 @@ self.phones_src.setItemText(7, "AES/EBU") - # The Ultralite doesn't have ADAT channels + # The Ultralite doesn't have ADAT channels (or any optical ports at + # all) if (self.model == MOTU_MODEL_ULTRALITE): self.mix1_tab.setTabEnabled(3, False) # ADAT page @@ -649,4 +650,6 @@ self.mix3_tab.setTabEnabled(3, False) # ADAT page self.mix4_tab.setTabEnabled(3, False) # ADAT page + self.optical_in_mode.setEnabled(False) + self.optical_out_mode.setEnabled(False) # Some devices don't have the option of selecting an optical SPDIF @@ -750,4 +753,12 @@ self.disable_hide(self.ana7_pad) self.disable_hide(self.ana8_pad) + # Only the Ultralite has digital trim controls over the SPDIF channels + if (not(self.model == MOTU_MODEL_ULTRALITE)): + self.disable_hide(self.spdif1_trimgain); + self.disable_hide(self.spdif1_trimgain_label); + self.disable_hide(self.spdif1ctrl); + self.disable_hide(self.spdif2_trimgain); + self.disable_hide(self.spdif2_trimgain_label); + self.disable_hide(self.spdif2ctrl); # Now fetch the current values into the respective controls. Don't Index: /trunk/libffado/support/mixer-qt4/mixer_global.ui =================================================================== --- /trunk/libffado/support/mixer-qt4/mixer_global.ui (revision 1435) +++ /trunk/libffado/support/mixer-qt4/mixer_global.ui (revision 1501) @@ -23,6 +23,6 @@ 0 0 - 444 - 81 + 700 + 80 @@ -36,10 +36,19 @@ Global Mixer Options - - - 3 - - - + + + 3 + + + 3 + + + 3 + + + 3 + + + 9 @@ -84,5 +93,5 @@ - + 9 @@ -140,4 +149,45 @@ + + + + 0 + 0 + + + + Stream Status + + + + + + false + + + Qt::RightToLeft + + + Outgoing + + + + + + + false + + + Qt::RightToLeft + + + Incoming + + + + + + + @@ -147,5 +197,5 @@ QSizePolicy::Expanding - + 330 Index: /trunk/libffado/support/mixer-qt4/ffado_dbus_util.py =================================================================== --- /trunk/libffado/support/mixer-qt4/ffado_dbus_util.py (revision 1435) +++ /trunk/libffado/support/mixer-qt4/ffado_dbus_util.py (revision 1501) @@ -313,9 +313,9 @@ return self.iface_element.canChangeValue() -class SamplerateSelectInterface: - def __init__(self, servername, devicepath): - self.basepath=devicepath + '/Generic/SamplerateSelect' - self.servername=servername - self.bus=dbus.SessionBus() +class EnumInterface: + def __init__(self, servername, basepath): + self.basepath = basepath + self.servername = servername + self.bus = dbus.SessionBus() self.dev = self.bus.get_object(self.servername, self.basepath) self.iface = dbus.Interface(self.dev, dbus_interface='org.ffado.Control.Element.Enum') @@ -332,4 +332,12 @@ return self.iface_element.canChangeValue() +class SamplerateSelectInterface(EnumInterface): + def __init__(self, servername, devicepath): + EnumInterface.__init__(self, servername, devicepath + '/Generic/SamplerateSelect') + +class StreamingStatusInterface(EnumInterface): + def __init__(self, servername, devicepath): + EnumInterface.__init__(self, servername, devicepath + '/Generic/StreamingStatus') + class TextInterface: def __init__(self, servername, basepath): Index: /trunk/libffado/support/mixer-qt4/ffado_panelmanager.py =================================================================== --- /trunk/libffado/support/mixer-qt4/ffado_panelmanager.py (revision 1435) +++ /trunk/libffado/support/mixer-qt4/ffado_panelmanager.py (revision 1501) @@ -298,4 +298,5 @@ clockselect = ClockSelectInterface( FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH+"/DeviceManager/"+path ) samplerateselect = SamplerateSelectInterface( FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH+"/DeviceManager/"+path ) + streamingstatus = StreamingStatusInterface( FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH+"/DeviceManager/"+path ) nickname = TextInterface( FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH+"/DeviceManager/"+path+"/Generic/Nickname" ) @@ -307,4 +308,5 @@ globalmixer.clockselect = clockselect globalmixer.samplerateselect = samplerateselect + globalmixer.streamingstatus = streamingstatus globalmixer.nickname = nickname globalmixer.hw = hw @@ -334,4 +336,5 @@ mixerwidget.clockselect = clockselect mixerwidget.samplerateselect = samplerateselect + mixerwidget.streamingstatus = streamingstatus mixerwidget.nickname = nickname mixerwidget.hw = hw @@ -370,6 +373,3 @@ self.panels[GUID_GENERIC_MIXER] = w - def busreset( self ): - QMessageBox.information( self, "Not supported", "Triggering bus resets from the mixer (via dbus) isn't yet supported." ) - # vim: et Index: /trunk/libffado/support/mixer-qt4/mixer_edirolfa101.ui =================================================================== --- /trunk/libffado/support/mixer-qt4/mixer_edirolfa101.ui (revision 1435) +++ /trunk/libffado/support/mixer-qt4/mixer_edirolfa101.ui (revision 1501) @@ -68,5 +68,5 @@ QSizePolicy::Expanding - + 20 @@ -85,8 +85,8 @@ - 0 + -32767 - 32767 + 0 @@ -96,4 +96,7 @@ 1000 + + 0 + Qt::Vertical @@ -112,5 +115,5 @@ QSizePolicy::Expanding - + 20 @@ -133,4 +136,7 @@ Qt::Horizontal + + true + @@ -145,5 +151,5 @@ QSizePolicy::Expanding - + 40 @@ -178,5 +184,5 @@ QSizePolicy::Expanding - + 20 @@ -189,8 +195,8 @@ - 0 + -32767 - 32767 + 0 @@ -200,4 +206,7 @@ 1000 + + 0 + Qt::Vertical @@ -216,5 +225,5 @@ QSizePolicy::Expanding - + 20 @@ -237,4 +246,7 @@ Qt::Horizontal + + true + @@ -249,5 +261,5 @@ QSizePolicy::Expanding - + 40 @@ -282,5 +294,5 @@ QSizePolicy::Expanding - + 20 @@ -293,8 +305,8 @@ - 0 + -32767 - 32767 + 0 @@ -304,4 +316,7 @@ 1000 + + 0 + Qt::Vertical @@ -320,5 +335,5 @@ QSizePolicy::Expanding - + 20 @@ -341,4 +356,7 @@ Qt::Horizontal + + true + @@ -353,5 +371,5 @@ QSizePolicy::Expanding - + 40 @@ -386,5 +404,5 @@ QSizePolicy::Expanding - + 20 @@ -397,8 +415,8 @@ - 0 + -32767 - 32767 + 0 @@ -408,4 +426,7 @@ 1000 + + 0 + Qt::Vertical @@ -424,5 +445,5 @@ QSizePolicy::Expanding - + 20 @@ -445,4 +466,7 @@ Qt::Horizontal + + true + @@ -457,5 +481,5 @@ QSizePolicy::Expanding - + 40 @@ -490,5 +514,5 @@ QSizePolicy::Expanding - + 20 @@ -507,8 +531,8 @@ - 0 + -32767 - 32767 + 0 @@ -518,4 +542,7 @@ 1000 + + 0 + Qt::Vertical @@ -534,5 +561,5 @@ QSizePolicy::Expanding - + 20 @@ -555,4 +582,7 @@ Qt::Horizontal + + true + @@ -567,5 +597,5 @@ QSizePolicy::Expanding - + 40 @@ -600,5 +630,5 @@ QSizePolicy::Expanding - + 20 @@ -611,8 +641,8 @@ - 0 + -32767 - 32767 + 0 @@ -622,4 +652,7 @@ 1000 + + 0 + Qt::Vertical @@ -638,5 +671,5 @@ QSizePolicy::Expanding - + 20 @@ -659,4 +692,7 @@ Qt::Horizontal + + true + @@ -671,5 +707,5 @@ QSizePolicy::Expanding - + 40 @@ -704,5 +740,5 @@ QSizePolicy::Expanding - + 20 @@ -721,8 +757,8 @@ - 0 + -32767 - 32767 + 0 @@ -732,4 +768,7 @@ 1000 + + 0 + Qt::Vertical @@ -748,5 +787,5 @@ QSizePolicy::Expanding - + 20 @@ -769,4 +808,7 @@ Qt::Horizontal + + true + @@ -781,5 +823,5 @@ QSizePolicy::Expanding - + 40 @@ -814,5 +856,5 @@ QSizePolicy::Expanding - + 20 @@ -825,8 +867,8 @@ - 0 + -32767 - 32767 + 0 @@ -836,4 +878,7 @@ 1000 + + 0 + Qt::Vertical @@ -852,5 +897,5 @@ QSizePolicy::Expanding - + 20 @@ -873,4 +918,7 @@ Qt::Horizontal + + true + @@ -885,5 +933,5 @@ QSizePolicy::Expanding - + 40 @@ -918,5 +966,5 @@ QSizePolicy::Expanding - + 20 @@ -935,8 +983,8 @@ - 0 + -32767 - 32767 + 0 @@ -946,4 +994,7 @@ 1000 + + -2 + Qt::Vertical @@ -962,5 +1013,5 @@ QSizePolicy::Expanding - + 20 @@ -983,4 +1034,7 @@ Qt::Horizontal + + true + @@ -995,5 +1049,5 @@ QSizePolicy::Expanding - + 40 @@ -1028,5 +1082,5 @@ QSizePolicy::Expanding - + 20 @@ -1039,8 +1093,8 @@ - 0 + -32767 - 32767 + 0 @@ -1050,4 +1104,7 @@ 1000 + + 0 + Qt::Vertical @@ -1066,5 +1123,5 @@ QSizePolicy::Expanding - + 20 @@ -1086,4 +1143,7 @@ Qt::Horizontal + + + true 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 1501) @@ -87,5 +87,4 @@ def setValue(self, name, val): - val = -val ctrl = self.VolumeControls[name] log.debug("setting %s to %d" % (name, val)) @@ -107,3 +106,3 @@ val = -32768 - ctrl[2].setValue(-val) + 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 1501) @@ -24,4 +24,9 @@ import re, os +import shlex + +import logging +log = logging.getLogger('configparser') + class DeviceList: def __init__( self, filename="" ): @@ -34,27 +39,19 @@ 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 ) + lex = Parser( f ) + config = {} + while lex.peaktoken() != lex.eof: + tmp = lex.parsenamedvalue() + if tmp != None: + config[ tmp[0] ] = tmp[1] + for dev in config["device_definitions"]: + self.addDevice( dev ) def getDeviceById( self, vendor, model ): - #print "DeviceList::getDeviceById( %s, %s )" % (vendor, model ) + log.debug("DeviceList::getDeviceById( %s, %s )" % (vendor, model )) for dev in self.devices: - if dev['vendorid'] == vendor and dev['modelid'] == model: + if int("%s" % dev['vendorid'], 0) == int("%s" % vendor, 0) and \ + int("%s" % dev['modelid'], 0) == int("%s" % model, 0): return dev tmp = dict() @@ -63,8 +60,88 @@ def addDevice( self, device_dict ): - #print "DeviceList::addDevice()" + log.debug("DeviceList::addDevice()") dev = self.getDeviceById( device_dict['vendorid'], device_dict['modelid'] ) dev.update( device_dict ) +class Parser: + def __init__( self, file ): + self.lex = shlex.shlex( file ) + self.eof = self.lex.eof + + def peaktoken( self ): + token = self.lex.get_token() + self.lex.push_token( token ) + return token + + def parselist( self, level="" ): + token = self.peaktoken() + if token != "(": + return + self.lex.get_token() + log.debug("%sWill parse list" % level) + ret = [] + token = self.peaktoken() + while token != ")": + ret.append( self.parsenamedvalue( level+" " ) ) + token = self.peaktoken() + log.debug("%slist is %s" % (level, str(ret))) + self.lex.get_token() + if self.peaktoken() == ",": + log.debug("%sFound a delimiter" % level) + self.lex.get_token() + return ret + + def parsemap( self, level="" ): + token = self.lex.get_token() + if token != "{": + return + log.debug("%sWill parse map" % level) + ret = {} + token = self.peaktoken() + while token != "}": + #self.push_token( token ) + tmp = self.parsenamedvalue( level+" " ) + if tmp != None: + ret[ tmp[0] ] = tmp[1] + token = self.peaktoken() + token = self.lex.get_token() + log.debug("%sMap ended with '%s' and '%s'"% (level,token,self.peaktoken())) + if self.peaktoken() in (",",";"): + log.debug("%sFound a delimiter!" % level) + self.lex.get_token() + return ret + + def parsevalue( self, level="" ): + token = self.lex.get_token() + log.debug("%sparsevalue() called on token '%s'" % (level, token)) + self.lex.push_token( token ) + if token == "(": + value = self.parselist( level+" " ) + elif token == "{": + value = self.parsemap( level+" " ) + else: + value = self.lex.get_token().replace( "\"", "" ) + token = self.peaktoken() + if token == ";": + log.debug("%sFound a delimiter!" % level) + self.lex.get_token() + return value + + def parsenamedvalue( self, level="" ): + token = self.lex.get_token() + log.debug("%sparsenamedvalue() called on token '%s'" % (level, token)) + if token == "{": + self.lex.push_token( token ) + return self.parsemap( level+" " ) + if len(token) > 0 and token not in ("{","}","(",")",",",";"): + log.debug("%sGot name '%s'" %(level,token)) + name = token + token = self.lex.get_token() + if token in ("=",":"): + #print "%sWill parse value" % level + value = self.parsevalue( level ) + return (name,value) + log.debug("%sparsenamedvalue() will return None!" % level) + return # @@ -77,4 +154,5 @@ file = sys.argv[1] + log.setLevel(logging.DEBUG) devs = DeviceList( file ) 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 1501) @@ -24,6 +24,6 @@ 0 0 - 1004 - 693 + 1129 + 706 @@ -414,5 +414,5 @@ QSizePolicy::Expanding - + 20 @@ -434,14 +434,5 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -451,8 +442,5 @@ Analog input settings - - - 0 - + @@ -1352,4 +1340,164 @@ + + + QFrame::NoFrame + + + QFrame::Plain + + + + + + + 9 + + + + + + + 53 + + + + + + + + 9 + + + + Gain + + + Qt::AlignCenter + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + + + + + 75 + true + + + + SPDIF 1 + + + Qt::AlignCenter + + + false + + + + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + + + + + 9 + + + + + + + 53 + + + + + + + + 9 + + + + Gain + + + Qt::AlignCenter + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + + + + + 75 + true + + + + SPDIF 2 + + + Qt::AlignCenter + + + false + + + + + + + @@ -1359,5 +1507,5 @@ QSizePolicy::Expanding - + 101 @@ -1382,4 +1530,7 @@ + + 0 + @@ -1474,16 +1625,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -1494,5 +1636,5 @@ QSizePolicy::Expanding - + 1 @@ -1532,5 +1674,5 @@ QSizePolicy::Expanding - + 1 @@ -1649,16 +1791,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -1669,5 +1802,5 @@ QSizePolicy::Expanding - + 1 @@ -1707,5 +1840,5 @@ QSizePolicy::Expanding - + 1 @@ -1824,16 +1957,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -1844,5 +1968,5 @@ QSizePolicy::Expanding - + 1 @@ -1882,5 +2006,5 @@ QSizePolicy::Expanding - + 1 @@ -1999,16 +2123,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -2019,5 +2134,5 @@ QSizePolicy::Expanding - + 1 @@ -2057,5 +2172,5 @@ QSizePolicy::Expanding - + 1 @@ -2174,16 +2289,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -2194,5 +2300,5 @@ QSizePolicy::Expanding - + 1 @@ -2232,5 +2338,5 @@ QSizePolicy::Expanding - + 1 @@ -2349,16 +2455,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -2369,5 +2466,5 @@ QSizePolicy::Expanding - + 1 @@ -2407,5 +2504,5 @@ QSizePolicy::Expanding - + 1 @@ -2524,16 +2621,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -2544,5 +2632,5 @@ QSizePolicy::Expanding - + 1 @@ -2582,5 +2670,5 @@ QSizePolicy::Expanding - + 1 @@ -2699,16 +2787,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -2719,5 +2798,5 @@ QSizePolicy::Expanding - + 1 @@ -2757,5 +2836,5 @@ QSizePolicy::Expanding - + 1 @@ -2884,16 +2963,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -2904,5 +2974,5 @@ QSizePolicy::Expanding - + 1 @@ -2942,5 +3012,5 @@ QSizePolicy::Expanding - + 1 @@ -3059,16 +3129,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -3079,5 +3140,5 @@ QSizePolicy::Expanding - + 1 @@ -3117,5 +3178,5 @@ QSizePolicy::Expanding - + 1 @@ -3158,5 +3219,5 @@ QSizePolicy::Expanding - + 450 @@ -3260,16 +3321,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -3280,5 +3332,5 @@ QSizePolicy::Expanding - + 1 @@ -3318,5 +3370,5 @@ QSizePolicy::Expanding - + 1 @@ -3435,16 +3487,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -3455,5 +3498,5 @@ QSizePolicy::Expanding - + 1 @@ -3493,5 +3536,5 @@ QSizePolicy::Expanding - + 1 @@ -3534,5 +3577,5 @@ QSizePolicy::Expanding - + 470 @@ -3636,16 +3679,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -3656,5 +3690,5 @@ QSizePolicy::Expanding - + 1 @@ -3694,5 +3728,5 @@ QSizePolicy::Expanding - + 1 @@ -3811,16 +3845,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -3831,5 +3856,5 @@ QSizePolicy::Expanding - + 1 @@ -3869,5 +3894,5 @@ QSizePolicy::Expanding - + 1 @@ -3986,16 +4011,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -4006,5 +4022,5 @@ QSizePolicy::Expanding - + 1 @@ -4044,5 +4060,5 @@ QSizePolicy::Expanding - + 1 @@ -4161,16 +4177,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -4181,5 +4188,5 @@ QSizePolicy::Expanding - + 1 @@ -4219,5 +4226,5 @@ QSizePolicy::Expanding - + 1 @@ -4336,16 +4343,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -4356,5 +4354,5 @@ QSizePolicy::Expanding - + 1 @@ -4394,5 +4392,5 @@ QSizePolicy::Expanding - + 1 @@ -4511,16 +4509,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -4531,5 +4520,5 @@ QSizePolicy::Expanding - + 1 @@ -4569,5 +4558,5 @@ QSizePolicy::Expanding - + 1 @@ -4686,16 +4675,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -4706,5 +4686,5 @@ QSizePolicy::Expanding - + 1 @@ -4744,5 +4724,5 @@ QSizePolicy::Expanding - + 1 @@ -4861,16 +4841,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -4881,5 +4852,5 @@ QSizePolicy::Expanding - + 1 @@ -4919,5 +4890,5 @@ QSizePolicy::Expanding - + 1 @@ -4964,5 +4935,5 @@ QSizePolicy::Expanding - + 31 @@ -5092,14 +5063,5 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -5112,5 +5074,5 @@ QSizePolicy::Expanding - + 1 @@ -5150,5 +5112,5 @@ QSizePolicy::Expanding - + 1 @@ -5265,16 +5227,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -5285,5 +5238,5 @@ QSizePolicy::Expanding - + 1 @@ -5323,5 +5276,5 @@ QSizePolicy::Expanding - + 1 @@ -5440,16 +5393,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -5460,5 +5404,5 @@ QSizePolicy::Expanding - + 1 @@ -5498,5 +5442,5 @@ QSizePolicy::Expanding - + 1 @@ -5615,16 +5559,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -5635,5 +5570,5 @@ QSizePolicy::Expanding - + 1 @@ -5673,5 +5608,5 @@ QSizePolicy::Expanding - + 1 @@ -5790,16 +5725,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -5810,5 +5736,5 @@ QSizePolicy::Expanding - + 1 @@ -5848,5 +5774,5 @@ QSizePolicy::Expanding - + 1 @@ -5965,16 +5891,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -5985,5 +5902,5 @@ QSizePolicy::Expanding - + 1 @@ -6023,5 +5940,5 @@ QSizePolicy::Expanding - + 1 @@ -6140,16 +6057,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -6160,5 +6068,5 @@ QSizePolicy::Expanding - + 1 @@ -6198,5 +6106,5 @@ QSizePolicy::Expanding - + 1 @@ -6315,16 +6223,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -6335,5 +6234,5 @@ QSizePolicy::Expanding - + 1 @@ -6373,5 +6272,5 @@ QSizePolicy::Expanding - + 1 @@ -6490,16 +6389,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -6510,5 +6400,5 @@ QSizePolicy::Expanding - + 1 @@ -6548,5 +6438,5 @@ QSizePolicy::Expanding - + 1 @@ -6675,16 +6565,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -6695,5 +6576,5 @@ QSizePolicy::Expanding - + 1 @@ -6733,5 +6614,5 @@ QSizePolicy::Expanding - + 1 @@ -6850,16 +6731,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -6870,5 +6742,5 @@ QSizePolicy::Expanding - + 1 @@ -6908,5 +6780,5 @@ QSizePolicy::Expanding - + 1 @@ -6949,5 +6821,5 @@ QSizePolicy::Expanding - + 450 @@ -7051,16 +6923,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -7071,5 +6934,5 @@ QSizePolicy::Expanding - + 1 @@ -7109,5 +6972,5 @@ QSizePolicy::Expanding - + 1 @@ -7226,16 +7089,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -7246,5 +7100,5 @@ QSizePolicy::Expanding - + 1 @@ -7284,5 +7138,5 @@ QSizePolicy::Expanding - + 1 @@ -7325,5 +7179,5 @@ QSizePolicy::Expanding - + 470 @@ -7427,16 +7281,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -7447,5 +7292,5 @@ QSizePolicy::Expanding - + 1 @@ -7485,5 +7330,5 @@ QSizePolicy::Expanding - + 1 @@ -7602,16 +7447,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -7622,5 +7458,5 @@ QSizePolicy::Expanding - + 1 @@ -7660,5 +7496,5 @@ QSizePolicy::Expanding - + 1 @@ -7777,16 +7613,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -7797,5 +7624,5 @@ QSizePolicy::Expanding - + 1 @@ -7835,5 +7662,5 @@ QSizePolicy::Expanding - + 1 @@ -7952,16 +7779,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -7972,5 +7790,5 @@ QSizePolicy::Expanding - + 1 @@ -8010,5 +7828,5 @@ QSizePolicy::Expanding - + 1 @@ -8127,16 +7945,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -8147,5 +7956,5 @@ QSizePolicy::Expanding - + 1 @@ -8185,5 +7994,5 @@ QSizePolicy::Expanding - + 1 @@ -8302,16 +8111,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -8322,5 +8122,5 @@ QSizePolicy::Expanding - + 1 @@ -8360,5 +8160,5 @@ QSizePolicy::Expanding - + 1 @@ -8477,16 +8277,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -8497,5 +8288,5 @@ QSizePolicy::Expanding - + 1 @@ -8535,5 +8326,5 @@ QSizePolicy::Expanding - + 1 @@ -8652,16 +8443,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -8672,5 +8454,5 @@ QSizePolicy::Expanding - + 1 @@ -8710,5 +8492,5 @@ QSizePolicy::Expanding - + 1 @@ -8755,5 +8537,5 @@ QSizePolicy::Expanding - + 31 @@ -8883,14 +8665,5 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -8903,5 +8676,5 @@ QSizePolicy::Expanding - + 1 @@ -8941,5 +8714,5 @@ QSizePolicy::Expanding - + 1 @@ -9056,16 +8829,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -9076,5 +8840,5 @@ QSizePolicy::Expanding - + 1 @@ -9114,5 +8878,5 @@ QSizePolicy::Expanding - + 1 @@ -9231,16 +8995,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -9251,5 +9006,5 @@ QSizePolicy::Expanding - + 1 @@ -9289,5 +9044,5 @@ QSizePolicy::Expanding - + 1 @@ -9406,16 +9161,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -9426,5 +9172,5 @@ QSizePolicy::Expanding - + 1 @@ -9464,5 +9210,5 @@ QSizePolicy::Expanding - + 1 @@ -9581,16 +9327,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -9601,5 +9338,5 @@ QSizePolicy::Expanding - + 1 @@ -9639,5 +9376,5 @@ QSizePolicy::Expanding - + 1 @@ -9756,16 +9493,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -9776,5 +9504,5 @@ QSizePolicy::Expanding - + 1 @@ -9814,5 +9542,5 @@ QSizePolicy::Expanding - + 1 @@ -9931,16 +9659,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -9951,5 +9670,5 @@ QSizePolicy::Expanding - + 1 @@ -9989,5 +9708,5 @@ QSizePolicy::Expanding - + 1 @@ -10106,16 +9825,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -10126,5 +9836,5 @@ QSizePolicy::Expanding - + 1 @@ -10164,5 +9874,5 @@ QSizePolicy::Expanding - + 1 @@ -10281,16 +9991,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -10301,5 +10002,5 @@ QSizePolicy::Expanding - + 1 @@ -10339,5 +10040,5 @@ QSizePolicy::Expanding - + 1 @@ -10466,16 +10167,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -10486,5 +10178,5 @@ QSizePolicy::Expanding - + 1 @@ -10524,5 +10216,5 @@ QSizePolicy::Expanding - + 1 @@ -10641,16 +10333,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -10661,5 +10344,5 @@ QSizePolicy::Expanding - + 1 @@ -10699,5 +10382,5 @@ QSizePolicy::Expanding - + 1 @@ -10740,5 +10423,5 @@ QSizePolicy::Expanding - + 450 @@ -10842,16 +10525,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -10862,5 +10536,5 @@ QSizePolicy::Expanding - + 1 @@ -10900,5 +10574,5 @@ QSizePolicy::Expanding - + 1 @@ -11017,16 +10691,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -11037,5 +10702,5 @@ QSizePolicy::Expanding - + 1 @@ -11075,5 +10740,5 @@ QSizePolicy::Expanding - + 1 @@ -11116,5 +10781,5 @@ QSizePolicy::Expanding - + 470 @@ -11218,16 +10883,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -11238,5 +10894,5 @@ QSizePolicy::Expanding - + 1 @@ -11276,5 +10932,5 @@ QSizePolicy::Expanding - + 1 @@ -11393,16 +11049,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -11413,5 +11060,5 @@ QSizePolicy::Expanding - + 1 @@ -11451,5 +11098,5 @@ QSizePolicy::Expanding - + 1 @@ -11568,16 +11215,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -11588,5 +11226,5 @@ QSizePolicy::Expanding - + 1 @@ -11626,5 +11264,5 @@ QSizePolicy::Expanding - + 1 @@ -11743,16 +11381,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -11763,5 +11392,5 @@ QSizePolicy::Expanding - + 1 @@ -11801,5 +11430,5 @@ QSizePolicy::Expanding - + 1 @@ -11918,16 +11547,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -11938,5 +11558,5 @@ QSizePolicy::Expanding - + 1 @@ -11976,5 +11596,5 @@ QSizePolicy::Expanding - + 1 @@ -12093,16 +11713,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -12113,5 +11724,5 @@ QSizePolicy::Expanding - + 1 @@ -12151,5 +11762,5 @@ QSizePolicy::Expanding - + 1 @@ -12268,16 +11879,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -12288,5 +11890,5 @@ QSizePolicy::Expanding - + 1 @@ -12326,5 +11928,5 @@ QSizePolicy::Expanding - + 1 @@ -12443,16 +12045,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -12463,5 +12056,5 @@ QSizePolicy::Expanding - + 1 @@ -12501,5 +12094,5 @@ QSizePolicy::Expanding - + 1 @@ -12546,5 +12139,5 @@ QSizePolicy::Expanding - + 31 @@ -12674,14 +12267,5 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -12694,5 +12278,5 @@ QSizePolicy::Expanding - + 1 @@ -12732,5 +12316,5 @@ QSizePolicy::Expanding - + 1 @@ -12847,16 +12431,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -12867,5 +12442,5 @@ QSizePolicy::Expanding - + 1 @@ -12905,5 +12480,5 @@ QSizePolicy::Expanding - + 1 @@ -13022,16 +12597,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -13042,5 +12608,5 @@ QSizePolicy::Expanding - + 1 @@ -13080,5 +12646,5 @@ QSizePolicy::Expanding - + 1 @@ -13197,16 +12763,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -13217,5 +12774,5 @@ QSizePolicy::Expanding - + 1 @@ -13255,5 +12812,5 @@ QSizePolicy::Expanding - + 1 @@ -13372,16 +12929,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -13392,5 +12940,5 @@ QSizePolicy::Expanding - + 1 @@ -13430,5 +12978,5 @@ QSizePolicy::Expanding - + 1 @@ -13547,16 +13095,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -13567,5 +13106,5 @@ QSizePolicy::Expanding - + 1 @@ -13605,5 +13144,5 @@ QSizePolicy::Expanding - + 1 @@ -13722,16 +13261,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -13742,5 +13272,5 @@ QSizePolicy::Expanding - + 1 @@ -13780,5 +13310,5 @@ QSizePolicy::Expanding - + 1 @@ -13897,16 +13427,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -13917,5 +13438,5 @@ QSizePolicy::Expanding - + 1 @@ -13955,5 +13476,5 @@ QSizePolicy::Expanding - + 1 @@ -14072,16 +13593,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -14092,5 +13604,5 @@ QSizePolicy::Expanding - + 1 @@ -14130,5 +13642,5 @@ QSizePolicy::Expanding - + 1 @@ -14257,16 +13769,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -14277,5 +13780,5 @@ QSizePolicy::Expanding - + 1 @@ -14315,5 +13818,5 @@ QSizePolicy::Expanding - + 1 @@ -14432,16 +13935,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -14452,5 +13946,5 @@ QSizePolicy::Expanding - + 1 @@ -14490,5 +13984,5 @@ QSizePolicy::Expanding - + 1 @@ -14531,5 +14025,5 @@ QSizePolicy::Expanding - + 450 @@ -14633,16 +14127,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -14653,5 +14138,5 @@ QSizePolicy::Expanding - + 1 @@ -14691,5 +14176,5 @@ QSizePolicy::Expanding - + 1 @@ -14808,16 +14293,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -14828,5 +14304,5 @@ QSizePolicy::Expanding - + 1 @@ -14866,5 +14342,5 @@ QSizePolicy::Expanding - + 1 @@ -14907,5 +14383,5 @@ QSizePolicy::Expanding - + 470 @@ -15009,16 +14485,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -15029,5 +14496,5 @@ QSizePolicy::Expanding - + 1 @@ -15067,5 +14534,5 @@ QSizePolicy::Expanding - + 1 @@ -15184,16 +14651,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -15204,5 +14662,5 @@ QSizePolicy::Expanding - + 1 @@ -15242,5 +14700,5 @@ QSizePolicy::Expanding - + 1 @@ -15359,16 +14817,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -15379,5 +14828,5 @@ QSizePolicy::Expanding - + 1 @@ -15417,5 +14866,5 @@ QSizePolicy::Expanding - + 1 @@ -15534,16 +14983,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -15554,5 +14994,5 @@ QSizePolicy::Expanding - + 1 @@ -15592,5 +15032,5 @@ QSizePolicy::Expanding - + 1 @@ -15709,16 +15149,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -15729,5 +15160,5 @@ QSizePolicy::Expanding - + 1 @@ -15767,5 +15198,5 @@ QSizePolicy::Expanding - + 1 @@ -15884,16 +15315,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -15904,5 +15326,5 @@ QSizePolicy::Expanding - + 1 @@ -15942,5 +15364,5 @@ QSizePolicy::Expanding - + 1 @@ -16059,16 +15481,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -16079,5 +15492,5 @@ QSizePolicy::Expanding - + 1 @@ -16117,5 +15530,5 @@ QSizePolicy::Expanding - + 1 @@ -16234,16 +15647,7 @@ - + 0 - - 0 - - - 0 - - - 0 - @@ -16254,5 +15658,5 @@ QSizePolicy::Expanding - + 1 @@ -16292,5 +15696,5 @@ QSizePolicy::Expanding - + 1 @@ -16337,5 +15741,5 @@ QSizePolicy::Expanding - + 31 @@ -16465,14 +15869,5 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -16485,5 +15880,5 @@ QSizePolicy::Expanding - + 1 @@ -16523,5 +15918,5 @@ QSizePolicy::Expanding - + 1 Index: /trunk/libffado/support/mixer-qt4/ffado-mixer.in =================================================================== --- /trunk/libffado/support/mixer-qt4/ffado-mixer.in (revision 1481) +++ /trunk/libffado/support/mixer-qt4/ffado-mixer.in (revision 1501) @@ -83,8 +83,4 @@ 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" ) @@ -125,5 +121,4 @@ self.setCentralWidget(self.manager) self.updateaction.setEnabled(True) - self.resetaction.setEnabled(True) def aboutFFADO(self): @@ -158,4 +153,5 @@ logging.getLogger('registration').setLevel(debug_level) logging.getLogger('panelmanager').setLevel(debug_level) + logging.getLogger('configparser').setLevel(debug_level) logging.getLogger('global').setLevel(debug_level) 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 1501) @@ -68,5 +68,5 @@ QSizePolicy::Expanding - + 20 @@ -85,8 +85,8 @@ - 0 + -32767 - 32767 + 0 @@ -96,4 +96,7 @@ 1000 + + 0 + Qt::Vertical @@ -112,5 +115,5 @@ QSizePolicy::Expanding - + 20 @@ -133,4 +136,7 @@ Qt::Horizontal + + true + @@ -145,5 +151,5 @@ QSizePolicy::Expanding - + 40 @@ -178,5 +184,5 @@ QSizePolicy::Expanding - + 20 @@ -189,8 +195,8 @@ - 0 + -32767 - 32767 + 0 @@ -200,4 +206,7 @@ 1000 + + 0 + Qt::Vertical @@ -216,5 +225,5 @@ QSizePolicy::Expanding - + 20 @@ -237,4 +246,7 @@ Qt::Horizontal + + true + @@ -249,5 +261,5 @@ QSizePolicy::Expanding - + 40 @@ -282,5 +294,5 @@ QSizePolicy::Expanding - + 20 @@ -293,8 +305,8 @@ - 0 + -32767 - 32767 + 0 @@ -304,4 +316,7 @@ 1000 + + 0 + Qt::Vertical @@ -320,5 +335,5 @@ QSizePolicy::Expanding - + 20 @@ -341,4 +356,7 @@ Qt::Horizontal + + true + @@ -353,5 +371,5 @@ QSizePolicy::Expanding - + 40 @@ -386,5 +404,5 @@ QSizePolicy::Expanding - + 20 @@ -397,8 +415,8 @@ - 0 + -32767 - 32767 + 0 @@ -408,4 +426,7 @@ 1000 + + 0 + Qt::Vertical @@ -424,5 +445,5 @@ QSizePolicy::Expanding - + 20 @@ -445,4 +466,7 @@ Qt::Horizontal + + true + @@ -457,5 +481,5 @@ QSizePolicy::Expanding - + 40 @@ -490,5 +514,5 @@ QSizePolicy::Expanding - + 20 @@ -507,8 +531,8 @@ - 0 + -32767 - 32767 + 0 @@ -518,4 +542,7 @@ 1000 + + 0 + Qt::Vertical @@ -534,5 +561,5 @@ QSizePolicy::Expanding - + 20 @@ -555,4 +582,7 @@ Qt::Horizontal + + true + @@ -567,5 +597,5 @@ QSizePolicy::Expanding - + 40 @@ -600,5 +630,5 @@ QSizePolicy::Expanding - + 20 @@ -611,8 +641,8 @@ - 0 + -32767 - 32767 + 0 @@ -622,4 +652,7 @@ 1000 + + 0 + Qt::Vertical @@ -638,5 +671,5 @@ QSizePolicy::Expanding - + 20 @@ -658,4 +691,7 @@ Qt::Horizontal + + + true Index: /trunk/libffado/support/mixer-qt4/mixer_global.py =================================================================== --- /trunk/libffado/support/mixer-qt4/mixer_global.py (revision 1435) +++ /trunk/libffado/support/mixer-qt4/mixer_global.py (revision 1501) @@ -119,2 +119,17 @@ self.clocksource.setEnabled(self.clockselect.canChangeValue()) self.txtNickname.setEnabled(self.nickname.canChangeValue()) + ss = self.streamingstatus.selected() + ss_txt = self.streamingstatus.getEnumLabel(ss) + if ss_txt == 'Idle': + self.chkStreamIn.setChecked(False) + self.chkStreamOut.setChecked(False) + elif ss_txt == 'Sending': + self.chkStreamIn.setChecked(False) + self.chkStreamOut.setChecked(True) + elif ss_txt == 'Receiving': + self.chkStreamIn.setChecked(True) + self.chkStreamOut.setChecked(False) + elif ss_txt == 'Both': + self.chkStreamIn.setChecked(True) + self.chkStreamOut.setChecked(True) + 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 1501) @@ -32,29 +32,4 @@ 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): @@ -118,24 +93,81 @@ self.setValue('bal10', bal) + def getIndexByName(self, name): + index = int(name.lstrip('volba')) - 1 + streamingMap = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] + nonStreamingMap = [ 9, 10, 1, 2, 3, 4, 5, 6, 7, 8 ] + + if self.is_streaming: + index = streamingMap[index] + else: + index = nonStreamingMap[index] + return index + + def getWidgetByName(self, name): + index = self.getIndexByName(name) + widgetName = '' + if name[0:3] == 'vol': + widgetName = 'sldInput%d' % (index) + else: + widgetName = 'sldBal%d' % (index) + return getattr(self, widgetName) + + def getFeatureByName(self, name): + index = self.getIndexByName(name) + featureName = '' + if name[0:3] == 'vol': + featureName = '/Mixer/Feature_Volume_%d' % ((index + 1) / 2) + else: + featureName = '/Mixer/Feature_LRBalance_%d' % ((index + 1) / 2) + return featureName + + def getChannelIndexByName(self, name): + index = self.getIndexByName(name) + return ((index - 1) % 2) + 1 + 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]) + self.updateStreamingState() + feature = self.getFeatureByName(name) + widget = self.getWidgetByName(name) + channel = self.getChannelIndexByName(name) + self.hw.setContignuous(feature, val, idx = channel) + def updateStreamingState(self): + ss = self.streamingstatus.selected() + ss_txt = self.streamingstatus.getEnumLabel(ss) + if ss_txt != 'Idle': + self.is_streaming = True + else: + self.is_streaming = False + def initValues(self): - for name, ctrl in self.VolumeControls.iteritems(): - val = self.hw.getContignuous(ctrl[0], idx = ctrl[1]) + self.updateStreamingState() + + for i in range(1, 11): + name = 'vol%d' % i + feature = self.getFeatureByName(name) + widget = self.getWidgetByName(name) + channel = self.getChannelIndexByName(name) + + val = self.hw.getContignuous(feature, idx = channel) log.debug("%s value is %d" % (name , val)) + widget.setValue(val) + + for i in range(1, 11): + name = 'bal%d' % i + feature = self.getFeatureByName(name) + widget = self.getWidgetByName(name) + channel = self.getChannelIndexByName(name) + val = self.hw.getContignuous(feature, idx = channel) # 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) + if channel == 1: + val = 32512 + else: + val = -32768 + log.debug("%s value is %d" % (name , val)) + widget.setValue(val) Index: /trunk/libffado/support/mixer-qt4/configtest.cfg =================================================================== --- /trunk/libffado/support/mixer-qt4/configtest.cfg (revision 1501) +++ /trunk/libffado/support/mixer-qt4/configtest.cfg (revision 1501) @@ -0,0 +1,32 @@ +ieee1394 : +{ + min_split_timeout_usecs = 1000000; + isomanager : + { + iso_receive_mode = 0; + }; +}; + +device_definitions = ( + { + vendorid = 0xAAC; + modelid = 0x3; + vendorname = "TerraTec Electronic GmbH"; + modelname = "Phase 88 FW"; + driver = 1; + }, + { + vendorid = 0x130E; + modelid = 0x3; + vendorname = "Focusrite"; + modelname = "Saffire Pro26IO"; + driver = 1; + }, + { + vendorid = 0x1486; + modelid = 0xAF2; + vendorname = "Echo"; + modelname = "AudioFire2"; + driver = 2; + } +);