- Timestamp:
- 08/29/09 07:00:15 (14 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/support/mixer-qt4/mixer_saffire_dice.py
r1636 r1639 23 23 24 24 class MatrixNode(QtGui.QFrame): 25 def __init__(self, row,col,parent):25 def __init__(self, row, col, parent): 26 26 QtGui.QFrame.__init__(self,parent) 27 27 self.row = row 28 self.connect(self.row, QtCore.SIGNAL("hide"), self.setHidden) 28 29 self.column = col 30 self.connect(self.column, QtCore.SIGNAL("hide"), self.setHidden) 29 31 30 32 self.setLineWidth(1) … … 33 35 self.setLayout(self.layout) 34 36 35 self.lbl = QtGui.QLabel("(%i,%i)" % (row,col), self)36 self.layout.addWidget(self.lbl, 0, 0)37 #self.lbl = QtGui.QLabel("(%i,%i)" % (row,col), self) 38 #self.layout.addWidget(self.lbl, 0, 0) 37 39 38 40 self.dial = QtGui.QDial(self) 39 41 self.dial.setRange(0,pow(2,16-1)) 40 42 self.connect(self.dial, QtCore.SIGNAL("valueChanged(int)"), self.valueChanged) 41 self.layout.addWidget(self.dial, 1, 0)43 self.layout.addWidget(self.dial, 0, 0) 42 44 43 45 def valueChanged(self, n): 44 self.emit(QtCore.SIGNAL("valueChanged"), self.row, self.column, n) 46 self.emit(QtCore.SIGNAL("valueChanged"), self.row.number, self.column.number, n) 47 48 def setHidden(self, hide): 49 if not hide: 50 if self.row.hidden or self.column.hidden: 51 return 52 QtGui.QFrame.setHidden(self, hide) 53 54 class MatrixChannel(QtGui.QWidget): 55 def __init__(self, number, parent=None): 56 QtGui.QWidget.__init__(self, parent) 57 layout = QtGui.QGridLayout(self) 58 self.number = number 59 self.btn = QtGui.QPushButton("%i" % self.number, self) 60 self.btn.setCheckable(True) 61 self.connect(self.btn, QtCore.SIGNAL("clicked(bool)"), self.hideChannel) 62 layout.addWidget(self.btn, 0, 0) 63 64 self.hidden = False 65 66 def hideChannel(self, hide): 67 #print "MatrixChannel.hideChannel( %s )" % str(hide) 68 self.hidden = hide 69 self.emit(QtCore.SIGNAL("hide"), hide) 45 70 46 71 class MatrixMixer(QtGui.QWidget): 47 def __init__(self, servername,basepath,parent=None):72 def __init__(self, servername, basepath, parent=None): 48 73 QtGui.QWidget.__init__(self, parent) 49 74 self.bus = dbus.SessionBus() … … 51 76 self.interface = dbus.Interface(self.dev, dbus_interface="org.ffado.Control.Element.MatrixMixer") 52 77 53 rows = min(8, self.interface.getRowCount()) 54 cols = min(8, self.interface.getColCount()) 78 palette = self.palette() 79 print palette.color( QtGui.QPalette.Window ).name() 80 palette.setColor( QtGui.QPalette.Window, palette.color( QtGui.QPalette.Window ).darker() ); 81 print self.palette().color( QtGui.QPalette.Window ).name() 82 83 rows = self.interface.getRowCount() 84 cols = self.interface.getColCount() 55 85 56 86 layout = QtGui.QGridLayout(self) 57 87 self.setLayout(layout) 58 88 89 self.columns = [] 90 self.rows = [] 91 92 # Add row/column headers 93 for i in range(cols): 94 ch = MatrixChannel(i, self) 95 layout.addWidget(ch, 0, i+1) 96 self.columns.append( ch ) 97 for i in range(rows): 98 ch = MatrixChannel(i, self) 99 layout.addWidget(ch, i+1, 0) 100 self.rows.append( ch ) 101 102 # Add node-widgets 59 103 for i in range(rows): 60 104 for j in range(cols): 61 node = MatrixNode( i, j, self)105 node = MatrixNode(self.rows[i], self.columns[j], self) 62 106 node.dial.setValue(self.interface.getValue(i, j)) 63 107 self.connect(node, QtCore.SIGNAL("valueChanged"), self.valueChanged) 64 layout.addWidget(node, i , j)108 layout.addWidget(node, i+1, j+1) 65 109 66 110 def valueChanged(self, row, column, n): 67 111 #print "MatrixNode.valueChanged( %i, %i, %i )" % (row,column,n) 68 112 self.interface.setValue(row, column, n) 113 114 def paintEvent(self, event): 115 p = QtGui.QPainter(self) 116 p.fillRect(event.rect(), self.palette().window()) 69 117 70 118 class Saffire_Dice(QtGui.QWidget): … … 73 121 self.layout = QtGui.QGridLayout(self) 74 122 self.setLayout(self.layout) 123 self.mixerwidget = QtGui.QScrollArea(self) 124 self.mixerwidget.setWidgetResizable(True) 125 self.layout.addWidget(self.mixerwidget) 75 126 76 127 def buildMixer(self): 77 print self.hw78 print self.hw.getText("/Generic/Nickname")128 #print self.hw 129 #print self.hw.getText("/Generic/Nickname") 79 130 self.matrix = MatrixMixer(self.hw.servername, self.hw.basepath+"/EAP/MatrixMixer", self) 80 self. layout.addWidget(self.matrix)131 self.mixerwidget.setWidget(self.matrix) 81 132 82 def getDisplayTitle(self):83 return "Experimental EAP Mixer"133 #def getDisplayTitle(self): 134 # return "Experimental EAP Mixer" 84 135 85 136