Changeset 1666

Show
Ignore:
Timestamp:
09/17/09 14:47:03 (14 years ago)
Author:
arnonym
Message:

Simplify (de-)coupling of channels a bit.

And start with getting the mixer values on startup and on coupling. Currently only the maximum is used, no balance/pan is computed...

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py

    r1659 r1666  
    9797        self.emit(QtCore.SIGNAL("valueChanged"), ret) 
    9898 
    99     def addInputs(self, inputs): 
    100         if isinstance(inputs, list): 
     99    def addInputs(self, inputs, add=True): 
     100        if not isinstance(inputs, list): 
     101            inputs = [inputs] 
     102        if add: 
    101103            self.inputs += inputs 
    102104        else: 
    103             self.inputs.append(inputs) 
     105            for item in inputs: 
     106                self.inputs.remove(item) 
    104107        self.checkWidgets() 
    105108    def removeInputs(self, inputs): 
    106         if isinstance(inputs, list): 
    107             for item in inputs: 
    108                 self.inputs.remove(item) 
    109         else: 
    110             self.inputs.remove(inputs) 
    111         self.checkWidgets() 
    112  
    113     def addOutputs(self, outputs): 
    114         if isinstance(outputs, list): 
     109        self.addInputs(inputs, False) 
     110 
     111    def addOutputs(self, outputs, add=True): 
     112        if not isinstance(outputs, list): 
     113            outputs = [outputs] 
     114        if add: 
    115115            self.outputs += outputs 
    116116        else: 
    117             self.outputs.append(outputs) 
     117            for item in outputs: 
     118                self.outputs.remove(item) 
    118119        self.checkWidgets() 
    119120    def removeOutputs(self, outputs): 
    120         if isinstance(outputs, list): 
    121             for item in outputs: 
    122                 self.outputs.remove(item) 
    123         else: 
    124             self.outputs.remove(outputs) 
    125         self.checkWidgets() 
     121        self.addOutputs(outputs, False) 
    126122 
    127123    def checkWidgets(self): 
     
    134130        else: 
    135131            self.outputbalance.hide() 
     132        if len(self.inputs) and len(self.outputs): 
     133            valuematrix = [] 
     134            for row in self.outputs: 
     135                valuematrix.append( [] ) 
     136                for col in self.inputs: 
     137                    valuematrix[self.outputs.index(row)] = self.parent().interface.getValue(row, col) 
     138            self.fader.setValue(max(valuematrix)) 
    136139 
    137140 
     
    234237            self.coupledCols.remove(column+1) 
    235238        for row in self.items: 
    236             if couple: 
    237                 row[column].addInputs(column+1) 
    238             else: 
    239                 row[column].removeInputs(column+1) 
     239            row[column].addInputs(column+1,couple) 
     240            row[column+1].addInputs(column+1,not couple) 
    240241        self.checkVisibilities() 
    241242 
     
    250251            self.coupledRows.remove(row+1) 
    251252        for col in self.items[row]: 
    252             if couple: 
    253                 col.addOutputs(row+1) 
    254             else: 
    255                 col.removeOutputs(row+1) 
     253            col.addOutputs(row+1,couple) 
     254        for col in self.items[row+1]: 
     255            col.addOutputs(row+1,not couple) 
    256256        self.checkVisibilities() 
    257257