Show
Ignore:
Timestamp:
05/25/08 07:43:32 (14 years ago)
Author:
ppalmers
Message:

merge libffado-2.0 changes r1213:1216 to trunk (svn merge -r 1213:HEAD svn+ssh://ffadosvn@ffado.org/ffado/branches/libffado-2.0)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/support/mixer/mixer_saffirele.py

    r1171 r1217  
    2222 
    2323from qt import * 
    24 from mixer_saffireleui import * 
    25  
    26 class SaffireLEMixer(SaffireLEMixerUI): 
     24from mixer_saffire_base import SaffireMixerBase 
     25from mixer_saffirelelargeui import SaffireLEMixerLargeUI 
     26from mixer_saffirelesmallui import SaffireLEMixerSmallUI 
     27 
     28class SaffireLEMixerLarge(SaffireLEMixerLargeUI, SaffireMixerBase): 
    2729    def __init__(self,parent = None,name = None,fl = 0): 
    28         SaffireLEMixerUI.__init__(self,parent,name,fl) 
     30        SaffireLEMixerLargeUI.__init__(self,parent,name,fl) 
     31        SaffireMixerBase.__init__(self) 
    2932 
    3033    def init(self): 
    31             print "Init Saffire LE mixer window" 
    32  
    33             self.VolumeControls={ 
    34                     self.sldIN1Out1: ['/Mixer/LEMix48', 0, 0], 
    35                     self.sldIN1Out2: ['/Mixer/LEMix48', 0, 1], 
    36                     self.sldIN1Out3: ['/Mixer/LEMix48', 0, 2], 
    37                     self.sldIN1Out4: ['/Mixer/LEMix48', 0, 3], 
    38                     self.sldIN2Out1: ['/Mixer/LEMix48', 1, 0], 
    39                     self.sldIN2Out2: ['/Mixer/LEMix48', 1, 1], 
    40                     self.sldIN2Out3: ['/Mixer/LEMix48', 1, 2], 
    41                     self.sldIN2Out4: ['/Mixer/LEMix48', 1, 3], 
    42                     self.sldIN3Out1: ['/Mixer/LEMix48', 2, 0], 
    43                     self.sldIN3Out2: ['/Mixer/LEMix48', 2, 1], 
    44                     self.sldIN3Out3: ['/Mixer/LEMix48', 2, 2], 
    45                     self.sldIN3Out4: ['/Mixer/LEMix48', 2, 3], 
    46                     self.sldIN4Out1: ['/Mixer/LEMix48', 3, 0], 
    47                     self.sldIN4Out2: ['/Mixer/LEMix48', 3, 1], 
    48                     self.sldIN4Out3: ['/Mixer/LEMix48', 3, 2], 
    49                     self.sldIN4Out4: ['/Mixer/LEMix48', 3, 3], 
    50                     self.sldSPDIF1Out1: ['/Mixer/LEMix48', 4, 0], 
    51                     self.sldSPDIF1Out2: ['/Mixer/LEMix48', 4, 1], 
    52                     self.sldSPDIF1Out3: ['/Mixer/LEMix48', 4, 2], 
    53                     self.sldSPDIF1Out4: ['/Mixer/LEMix48', 4, 3], 
    54                     self.sldSPDIF2Out1: ['/Mixer/LEMix48', 5, 0], 
    55                     self.sldSPDIF2Out2: ['/Mixer/LEMix48', 5, 1], 
    56                     self.sldSPDIF2Out3: ['/Mixer/LEMix48', 5, 2], 
    57                     self.sldSPDIF2Out4: ['/Mixer/LEMix48', 5, 3], 
    58                     
    59                     self.sldPC1Out1: ['/Mixer/LEMix48', 6, 0], 
    60                     self.sldPC1Out2: ['/Mixer/LEMix48', 6, 1], 
    61                     self.sldPC1Out3: ['/Mixer/LEMix48', 6, 2], 
    62                     self.sldPC1Out4: ['/Mixer/LEMix48', 6, 3], 
    63                     self.sldPC2Out1: ['/Mixer/LEMix48', 7, 0], 
    64                     self.sldPC2Out2: ['/Mixer/LEMix48', 7, 1], 
    65                     self.sldPC2Out3: ['/Mixer/LEMix48', 7, 2], 
    66                     self.sldPC2Out4: ['/Mixer/LEMix48', 7, 3], 
    67                     self.sldPC3Out1: ['/Mixer/LEMix48', 8, 0], 
    68                     self.sldPC3Out2: ['/Mixer/LEMix48', 8, 1], 
    69                     self.sldPC3Out3: ['/Mixer/LEMix48', 8, 2], 
    70                     self.sldPC3Out4: ['/Mixer/LEMix48', 8, 3], 
    71                     self.sldPC4Out1: ['/Mixer/LEMix48', 9, 0], 
    72                     self.sldPC4Out2: ['/Mixer/LEMix48', 9, 1], 
    73                     self.sldPC4Out3: ['/Mixer/LEMix48', 9, 2], 
    74                     self.sldPC4Out4: ['/Mixer/LEMix48', 9, 3], 
    75                     self.sldPC5Out1: ['/Mixer/LEMix48', 10, 0], 
    76                     self.sldPC5Out2: ['/Mixer/LEMix48', 10, 1], 
    77                     self.sldPC5Out3: ['/Mixer/LEMix48', 10, 2], 
    78                     self.sldPC5Out4: ['/Mixer/LEMix48', 10, 3], 
    79                     self.sldPC6Out1: ['/Mixer/LEMix48', 11, 0], 
    80                     self.sldPC6Out2: ['/Mixer/LEMix48', 11, 1], 
    81                     self.sldPC6Out3: ['/Mixer/LEMix48', 11, 2], 
    82                     self.sldPC6Out4: ['/Mixer/LEMix48', 11, 3], 
    83                     self.sldPC7Out1: ['/Mixer/LEMix48', 12, 0], 
    84                     self.sldPC7Out2: ['/Mixer/LEMix48', 12, 1], 
    85                     self.sldPC7Out3: ['/Mixer/LEMix48', 12, 2], 
    86                     self.sldPC7Out4: ['/Mixer/LEMix48', 12, 3], 
    87                     self.sldPC8Out1: ['/Mixer/LEMix48', 13, 0], 
    88                     self.sldPC8Out2: ['/Mixer/LEMix48', 13, 1], 
    89                     self.sldPC8Out3: ['/Mixer/LEMix48', 13, 2], 
    90                     self.sldPC8Out4: ['/Mixer/LEMix48', 13, 3], 
    91                    } 
    92  
    93             self.SelectorControls={ 
    94                     self.chkOut12Mute:          ['/Mixer/Out12Mute'], 
    95                     self.chkOut12HwCtrl:        ['/Mixer/Out12HwCtrl'], 
    96                     self.chkOut34Mute:          ['/Mixer/Out34Mute'], 
    97                     self.chkOut34HwCtrl:        ['/Mixer/Out34HwCtrl'], 
    98                     self.chkOut56Mute:          ['/Mixer/Out56Mute'], 
    99                     self.chkOut56HwCtrl:        ['/Mixer/Out56HwCtrl'], 
    100                     self.chkSPDIFTransparent:   ['/Mixer/SpdifTransparent'], 
    101                     self.chkMIDITru:            ['/Mixer/MidiThru'], 
    102                     self.chkHighGain3:          ['/Mixer/HighGainLine3'], 
    103                     self.chkHighGain4:          ['/Mixer/HighGainLine4'], 
    104                     } 
    105  
    106             self.VolumeControlsLowRes={ 
    107                     self.sldOut12Level:      ['/Mixer/Out12Level'], 
    108                     self.sldOut34Level:      ['/Mixer/Out34Level'], 
    109                     self.sldOut56Level:      ['/Mixer/Out56Level'], 
    110                     } 
    111  
    112             self.TriggerButtonControls={ 
    113                 self.btnSaveSettings:        ['/Mixer/SaveSettings'], 
    114             } 
     34        print "Init large Saffire LE mixer window" 
     35 
     36        self.VolumeControls={ 
     37                self.sldIN1Out1: ['/Mixer/LEMix48', 0, 0], 
     38                self.sldIN1Out2: ['/Mixer/LEMix48', 0, 1], 
     39                self.sldIN1Out3: ['/Mixer/LEMix48', 0, 2], 
     40                self.sldIN1Out4: ['/Mixer/LEMix48', 0, 3], 
     41                self.sldIN2Out1: ['/Mixer/LEMix48', 1, 0], 
     42                self.sldIN2Out2: ['/Mixer/LEMix48', 1, 1], 
     43                self.sldIN2Out3: ['/Mixer/LEMix48', 1, 2], 
     44                self.sldIN2Out4: ['/Mixer/LEMix48', 1, 3], 
     45                self.sldIN3Out1: ['/Mixer/LEMix48', 2, 0], 
     46                self.sldIN3Out2: ['/Mixer/LEMix48', 2, 1], 
     47                self.sldIN3Out3: ['/Mixer/LEMix48', 2, 2], 
     48                self.sldIN3Out4: ['/Mixer/LEMix48', 2, 3], 
     49                self.sldIN4Out1: ['/Mixer/LEMix48', 3, 0], 
     50                self.sldIN4Out2: ['/Mixer/LEMix48', 3, 1], 
     51                self.sldIN4Out3: ['/Mixer/LEMix48', 3, 2], 
     52                self.sldIN4Out4: ['/Mixer/LEMix48', 3, 3], 
     53                self.sldSPDIF1Out1: ['/Mixer/LEMix48', 4, 0], 
     54                self.sldSPDIF1Out2: ['/Mixer/LEMix48', 4, 1], 
     55                self.sldSPDIF1Out3: ['/Mixer/LEMix48', 4, 2], 
     56                self.sldSPDIF1Out4: ['/Mixer/LEMix48', 4, 3], 
     57                self.sldSPDIF2Out1: ['/Mixer/LEMix48', 5, 0], 
     58                self.sldSPDIF2Out2: ['/Mixer/LEMix48', 5, 1], 
     59                self.sldSPDIF2Out3: ['/Mixer/LEMix48', 5, 2], 
     60                self.sldSPDIF2Out4: ['/Mixer/LEMix48', 5, 3], 
     61                 
     62                self.sldPC1Out1: ['/Mixer/LEMix48', 6, 0], 
     63                self.sldPC1Out2: ['/Mixer/LEMix48', 6, 1], 
     64                self.sldPC1Out3: ['/Mixer/LEMix48', 6, 2], 
     65                self.sldPC1Out4: ['/Mixer/LEMix48', 6, 3], 
     66                self.sldPC2Out1: ['/Mixer/LEMix48', 7, 0], 
     67                self.sldPC2Out2: ['/Mixer/LEMix48', 7, 1], 
     68                self.sldPC2Out3: ['/Mixer/LEMix48', 7, 2], 
     69                self.sldPC2Out4: ['/Mixer/LEMix48', 7, 3], 
     70                self.sldPC3Out1: ['/Mixer/LEMix48', 8, 0], 
     71                self.sldPC3Out2: ['/Mixer/LEMix48', 8, 1], 
     72                self.sldPC3Out3: ['/Mixer/LEMix48', 8, 2], 
     73                self.sldPC3Out4: ['/Mixer/LEMix48', 8, 3], 
     74                self.sldPC4Out1: ['/Mixer/LEMix48', 9, 0], 
     75                self.sldPC4Out2: ['/Mixer/LEMix48', 9, 1], 
     76                self.sldPC4Out3: ['/Mixer/LEMix48', 9, 2], 
     77                self.sldPC4Out4: ['/Mixer/LEMix48', 9, 3], 
     78                self.sldPC5Out1: ['/Mixer/LEMix48', 10, 0], 
     79                self.sldPC5Out2: ['/Mixer/LEMix48', 10, 1], 
     80                self.sldPC5Out3: ['/Mixer/LEMix48', 10, 2], 
     81                self.sldPC5Out4: ['/Mixer/LEMix48', 10, 3], 
     82                self.sldPC6Out1: ['/Mixer/LEMix48', 11, 0], 
     83                self.sldPC6Out2: ['/Mixer/LEMix48', 11, 1], 
     84                self.sldPC6Out3: ['/Mixer/LEMix48', 11, 2], 
     85                self.sldPC6Out4: ['/Mixer/LEMix48', 11, 3], 
     86                self.sldPC7Out1: ['/Mixer/LEMix48', 12, 0], 
     87                self.sldPC7Out2: ['/Mixer/LEMix48', 12, 1], 
     88                self.sldPC7Out3: ['/Mixer/LEMix48', 12, 2], 
     89                self.sldPC7Out4: ['/Mixer/LEMix48', 12, 3], 
     90                self.sldPC8Out1: ['/Mixer/LEMix48', 13, 0], 
     91                self.sldPC8Out2: ['/Mixer/LEMix48', 13, 1], 
     92                self.sldPC8Out3: ['/Mixer/LEMix48', 13, 2], 
     93                self.sldPC8Out4: ['/Mixer/LEMix48', 13, 3], 
     94                } 
     95 
     96        self.SelectorControls={ 
     97                self.chkOut12Mute:          ['/Mixer/Out12Mute'], 
     98                self.chkOut12HwCtrl:        ['/Mixer/Out12HwCtrl'], 
     99                self.chkOut34Mute:          ['/Mixer/Out34Mute'], 
     100                self.chkOut34HwCtrl:        ['/Mixer/Out34HwCtrl'], 
     101                self.chkOut56Mute:          ['/Mixer/Out56Mute'], 
     102                self.chkOut56HwCtrl:        ['/Mixer/Out56HwCtrl'], 
     103                self.chkSPDIFTransparent:   ['/Mixer/SpdifTransparent'], 
     104                self.chkMIDITru:            ['/Mixer/MidiThru'], 
     105                self.chkHighGain3:          ['/Mixer/HighGainLine3'], 
     106                self.chkHighGain4:          ['/Mixer/HighGainLine4'], 
     107                } 
     108 
     109        self.VolumeControlsLowRes={ 
     110                self.sldOut12Level:      ['/Mixer/Out12Level'], 
     111                self.sldOut34Level:      ['/Mixer/Out34Level'], 
     112                self.sldOut56Level:      ['/Mixer/Out56Level'], 
     113                } 
     114 
     115        self.TriggerButtonControls={ 
     116            self.btnSaveSettings:        ['/Mixer/SaveSettings'], 
     117        } 
     118 
     119        self.TextControls={ 
     120        } 
     121 
     122        self.saveTextControls={ 
     123        } 
     124 
     125        self.ComboControls={ 
     126        } 
    115127 
    116128    def updateMatrixVolume(self,a0): 
    117         sender = self.sender() 
    118         vol = 0x7FFF-a0 
    119         print "set %s %d %d to %d" % ( 
    120                     self.VolumeControls[sender][0], 
    121                     self.VolumeControls[sender][1], 
    122                     self.VolumeControls[sender][2], 
    123                     vol) 
    124         self.hw.setMatrixMixerValue(self.VolumeControls[sender][0],  
    125                                     self.VolumeControls[sender][1], 
    126                                     self.VolumeControls[sender][2], 
    127                                     vol) 
     129        SaffireMixerBase.updateMatrixVolume(self,a0) 
    128130    def updateLowResVolume(self,a0): 
    129         sender = self.sender() 
    130         vol = a0 
    131         print "set %s to %d" % ( 
    132                     self.VolumeControlsLowRes[sender][0], 
    133                     vol) 
    134         self.hw.setDiscrete(self.VolumeControlsLowRes[sender][0], vol) 
    135  
     131        SaffireMixerBase.updateLowResVolume(self,a0) 
    136132    def updateSelector(self,a0): 
    137         sender = self.sender() 
    138         if a0: 
    139             state = 1 
    140         else: 
    141             state = 0 
    142         print "set %s to %d" % ( 
    143                     self.SelectorControls[sender][0], 
    144                     state) 
    145         self.hw.setDiscrete(self.SelectorControls[sender][0], state) 
    146  
     133        SaffireMixerBase.updateSelector(self,a0) 
    147134    def triggerButton(self): 
    148         sender = self.sender() 
    149         print "trigger %s" % ( 
    150                     self.TriggerButtonControls[sender][0]) 
    151         self.hw.setDiscrete(self.TriggerButtonControls[sender][0], 1) 
    152  
    153     def initValues(self): 
    154             for ctrl, info in self.VolumeControls.iteritems(): 
    155                 vol = self.hw.getMatrixMixerValue(self.VolumeControls[ctrl][0], 
    156                                                   self.VolumeControls[ctrl][1], 
    157                                                   self.VolumeControls[ctrl][2]) 
    158  
    159                 print "%s volume is %d" % (ctrl.name() , 0x7FFF-vol) 
    160                 ctrl.setValue(0x7FFF-vol) 
    161  
    162                 # connect the UI element 
    163                 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateMatrixVolume) 
    164  
    165             for ctrl, info in self.VolumeControlsLowRes.iteritems(): 
    166                 vol = self.hw.getDiscrete(self.VolumeControlsLowRes[ctrl][0]) 
    167  
    168                 print "%s volume is %d" % (ctrl.name() , vol) 
    169                 ctrl.setValue(vol) 
    170  
    171                 # connect the UI element 
    172                 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateLowResVolume) 
    173  
    174             for ctrl, info in self.SelectorControls.iteritems(): 
    175                 state = self.hw.getDiscrete(self.SelectorControls[ctrl][0]) 
    176                 print "%s state is %d" % (ctrl.name() , state) 
    177                 if state: 
    178                     ctrl.setChecked(True) 
    179                 else: 
    180                     ctrl.setChecked(False) 
    181  
    182                 # connect the UI element 
    183                 QObject.connect(ctrl,SIGNAL('stateChanged(int)'),self.updateSelector) 
    184  
    185             for ctrl, info in self.TriggerButtonControls.iteritems(): 
    186                 # connect the UI element 
    187                 QObject.connect(ctrl,SIGNAL('clicked()'),self.triggerButton) 
     135        SaffireMixerBase.triggerButton(self) 
     136    def saveText(self): 
     137        SaffireMixerBase.saveText(self) 
     138    def initCombo(self, combo): 
     139        SaffireMixerBase.initCombo(self,combo) 
     140    def selectCombo(self, mode): 
     141        SaffireMixerBase.selectCombo(self,mode) 
     142 
     143    def updateValues(self): 
     144        SaffireMixerBase.updateValues(self) 
     145 
     146class SaffireLEMixerSmall(SaffireLEMixerSmallUI, SaffireMixerBase): 
     147    def __init__(self,parent = None,name = None,fl = 0): 
     148        SaffireLEMixerSmallUI.__init__(self,parent,name,fl) 
     149        SaffireMixerBase.__init__(self) 
     150 
     151    def init(self): 
     152        print "Init small Saffire LE mixer window" 
     153 
     154        self.VolumeControls={ 
     155                self.sldIN1RecMix:    ['/Mixer/LEMix96', 0, 4], 
     156                self.sldIN2RecMix:    ['/Mixer/LEMix96', 1, 4], 
     157                self.sldIN3RecMix:    ['/Mixer/LEMix96', 2, 4], 
     158                self.sldIN4RecMix:    ['/Mixer/LEMix96', 3, 4], 
     159                self.sldSPDIF1RecMix: ['/Mixer/LEMix96', 4, 4], 
     160                self.sldSPDIF2RecMix: ['/Mixer/LEMix96', 5, 4], 
     161 
     162                self.sldPC1Out1: ['/Mixer/LEMix96', 6, 0], 
     163                self.sldPC1Out2: ['/Mixer/LEMix96', 6, 1], 
     164                self.sldPC1Out3: ['/Mixer/LEMix96', 6, 2], 
     165                self.sldPC1Out4: ['/Mixer/LEMix96', 6, 3], 
     166                self.sldPC2Out1: ['/Mixer/LEMix96', 7, 0], 
     167                self.sldPC2Out2: ['/Mixer/LEMix96', 7, 1], 
     168                self.sldPC2Out3: ['/Mixer/LEMix96', 7, 2], 
     169                self.sldPC2Out4: ['/Mixer/LEMix96', 7, 3], 
     170                } 
     171 
     172        self.SelectorControls={ 
     173                self.chkOut12Mute:          ['/Mixer/Out12Mute'], 
     174                self.chkOut12HwCtrl:        ['/Mixer/Out12HwCtrl'], 
     175                self.chkOut34Mute:          ['/Mixer/Out34Mute'], 
     176                self.chkOut34HwCtrl:        ['/Mixer/Out34HwCtrl'], 
     177                self.chkOut56Mute:          ['/Mixer/Out56Mute'], 
     178                self.chkOut56HwCtrl:        ['/Mixer/Out56HwCtrl'], 
     179                self.chkSPDIFTransparent:   ['/Mixer/SpdifTransparent'], 
     180                self.chkMIDITru:            ['/Mixer/MidiThru'], 
     181                self.chkHighGain3:          ['/Mixer/HighGainLine3'], 
     182                self.chkHighGain4:          ['/Mixer/HighGainLine4'], 
     183                } 
     184 
     185        self.VolumeControlsLowRes={ 
     186                self.sldOut12Level:      ['/Mixer/Out12Level'], 
     187                self.sldOut34Level:      ['/Mixer/Out34Level'], 
     188                self.sldOut56Level:      ['/Mixer/Out56Level'], 
     189                } 
     190 
     191        self.TriggerButtonControls={ 
     192            self.btnSaveSettings:        ['/Mixer/SaveSettings'], 
     193        } 
     194 
     195        self.TextControls={ 
     196        } 
     197 
     198        self.saveTextControls={ 
     199        } 
     200 
     201        self.ComboControls={ 
     202        } 
     203 
     204    def updateMatrixVolume(self,a0): 
     205        SaffireMixerBase.updateMatrixVolume(self,a0) 
     206    def updateLowResVolume(self,a0): 
     207        SaffireMixerBase.updateLowResVolume(self,a0) 
     208    def updateSelector(self,a0): 
     209        SaffireMixerBase.updateSelector(self,a0) 
     210    def triggerButton(self): 
     211        SaffireMixerBase.triggerButton(self) 
     212    def saveText(self): 
     213        SaffireMixerBase.saveText(self) 
     214    def initCombo(self, combo): 
     215        SaffireMixerBase.initCombo(self,combo) 
     216    def selectCombo(self, mode): 
     217        SaffireMixerBase.selectCombo(self,mode) 
     218 
     219    def updateValues(self): 
     220        SaffireMixerBase.updateValues(self)