Changeset 1659

Show
Ignore:
Timestamp:
09/06/09 14:13:08 (11 years ago)
Author:
arnonym
Message:

Make the input- and output-balance work.

Files:

Legend:

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

    r1658 r1659  
    1919# 
    2020 
    21 from PyQt4 import QtGui, QtCore 
     21from PyQt4 import QtGui, QtCore, Qt 
    2222import dbus 
    2323 
     
    3434        self.outputs = [] 
    3535 
    36         self.inputbalance = QtGui.QLabel("Input Balance", self) 
    37         self.outputbalance = QtGui.QLabel("Output Balance", self) 
    38  
    39         #self.fader = QtGui.QLabel("Fader", self) 
     36        self.inputbalance = QtGui.QSlider(Qt.Qt.Horizontal, self) 
     37        self.inputbalance.setRange(-100, 100) 
     38        self.connect(self.inputbalance, QtCore.SIGNAL("valueChanged(int)"), self.valuesChanged) 
     39 
     40        self.outputbalance = QtGui.QSlider(Qt.Qt.Horizontal, self) 
     41        self.outputbalance.setRange(-100, 100) 
     42        self.connect(self.outputbalance, QtCore.SIGNAL("valueChanged(int)"), self.valuesChanged) 
     43 
    4044        self.fader = QtGui.QDial(self) 
    4145        self.fader.setRange(0,pow(2,16)-1) 
     
    6064                tmp.append(fader) 
    6165            values.append(tmp) 
    62         #print values 
    6366        if len(self.inputs) == len(self.outputs): 
    6467            for i in range(len(self.inputs)): 
    6568                for j in range(len(self.outputs)): 
    6669                    values[i][j] *= (i==j) 
    67         #print values 
     70        if len(self.outputs) == 2: 
     71            v = self.outputbalance.value() / 100.0 
     72            left = 1.0 
     73            right = 1.0 
     74            if v > 0: 
     75                left = 1.0 - v 
     76            if v < 0: 
     77                right = 1.0 + v 
     78            for row in values: 
     79                row[0] *= left 
     80                row[1] *= right 
     81        if len(self.inputs) == 2: 
     82            v = self.inputbalance.value() / 100.0 
     83            left = 1.0 
     84            right = 1.0 
     85            if v > 0: 
     86                left = 1.0 - v 
     87            if v < 0: 
     88                right = 1.0 + v 
     89            for i in range(len(self.outputs)): 
     90                values[0][i] *= left 
     91                values[1][i] *= right 
    6892        ret = [] 
    6993        for i in range(len(self.inputs)):