Changeset 1217
- Timestamp:
- 05/25/08 07:43:32 (15 years ago)
- Files:
-
- trunk/libffado/src/ffadodevice.cpp (modified) (1 diff)
- trunk/libffado/src/libcontrol/ClockSelect.cpp (modified) (1 diff)
- trunk/libffado/src/libcontrol/ClockSelect.h (modified) (1 diff)
- trunk/libffado/support/mixer/ffadomixer.in (modified) (4 diffs)
- trunk/libffado/support/mixer/mixer_saffire.py (modified) (1 diff)
- trunk/libffado/support/mixer/mixer_saffire.ui (modified) (1 diff)
- trunk/libffado/support/mixer/mixer_saffirele.py (modified) (1 diff)
- trunk/libffado/support/mixer/mixer_saffirele.ui (deleted)
- trunk/libffado/support/mixer/mixer_saffirelelarge.ui (copied) (copied from branches/libffado-2.0/support/mixer/mixer_saffirelelarge.ui)
- trunk/libffado/support/mixer/mixer_saffirelesmall.ui (copied) (copied from branches/libffado-2.0/support/mixer/mixer_saffirelesmall.ui)
- trunk/libffado/support/mixer/mixer_saffirepro.py (modified) (2 diffs)
- trunk/libffado/support/mixer/mixer_saffirepro.ui (deleted)
- trunk/libffado/support/mixer/mixer_saffireprolarge.ui (copied) (copied from branches/libffado-2.0/support/mixer/mixer_saffireprolarge.ui)
- trunk/libffado/support/mixer/mixer_saffireprosmall.ui (copied) (copied from branches/libffado-2.0/support/mixer/mixer_saffireprosmall.ui)
- trunk/libffado/support/mixer/mixer_saffire_base.py (copied) (copied from branches/libffado-2.0/support/mixer/mixer_saffire_base.py)
- trunk/libffado/support/mixer/SConscript (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/ffadodevice.cpp
r1158 r1217 65 65 if(!m_genericContainer->addElement(new Control::ClockSelect(*this))) { 66 66 debugWarning("failed to add clock source control to container\n"); 67 } 68 // add a generic control for the sample rate selection 69 if(!m_genericContainer->addElement(new Control::SamplerateSelect(*this))) { 70 debugWarning("failed to add sample rate control to container\n"); 67 71 } 68 72 // add a generic control for the nickname trunk/libffado/src/libcontrol/ClockSelect.cpp
r1178 r1217 170 170 } 171 171 172 // --- samplerate selection --- 173 174 SamplerateSelect::SamplerateSelect(FFADODevice &d) 175 : Discrete(&d) 176 , m_Device( d ) 177 { 178 setName("SamplerateSelect"); 179 setLabel("Samplerate Select"); 180 setDescription("Select the device sample rate"); 181 } 182 183 bool 184 SamplerateSelect::setValue(int v) 185 { 186 return m_Device.setSamplingFrequency(v); 187 } 188 189 int 190 SamplerateSelect::getValue() 191 { 192 return m_Device.getSamplingFrequency(); 193 } 194 195 bool 196 SamplerateSelect::setValue(int idx, int v) 197 { 198 return m_Device.setSamplingFrequency(v); 199 } 200 201 int 202 SamplerateSelect::getValue(int idx) 203 { 204 return m_Device.getSamplingFrequency(); 205 } 206 207 int 208 SamplerateSelect::getMinimum() 209 { 210 return 32000; 211 } 212 213 int 214 SamplerateSelect::getMaximum() 215 { 216 return 192000; 217 } 218 172 219 } // namespace Control trunk/libffado/src/libcontrol/ClockSelect.h
r958 r1217 64 64 }; 65 65 66 /*! 67 @brief Samplerate selection control element 68 @note this is a workaround and should be done more elegant 69 */ 70 class SamplerateSelect 71 : public Discrete 72 { 73 public: 74 SamplerateSelect(FFADODevice &); 75 virtual ~SamplerateSelect() {}; 76 77 virtual bool setValue(int v); 78 virtual int getValue(); 79 virtual bool setValue(int idx, int v); 80 virtual int getValue(int idx); 81 82 virtual int getMinimum(); 83 virtual int getMaximum(); 84 protected: 85 FFADODevice &m_Device; 86 }; 87 66 88 }; // namespace Control 67 89 trunk/libffado/support/mixer/ffadomixer.in
r1205 r1217 40 40 from mixer_phase88 import * 41 41 from mixer_phase24 import * 42 from mixer_saffirepro import *43 42 from mixer_saffire import * 44 43 from mixer_saffirele import * 44 from mixer_saffirepro import * 45 45 from mixer_af2 import * 46 46 from mixer_bcoaudio5 import * … … 368 368 l = QVBoxLayout( w ) 369 369 370 # create a control object 371 hw = ControlInterface(server, basepath+'/DeviceManager/'+path) 372 370 373 # 371 374 # Generic elements for all mixers follow here: 372 375 # 373 374 376 tmp = GlobalMixer( w ) 375 377 tmp.clockselect = ClockSelectInterface( server, basepath+"/DeviceManager/"+path ) 376 378 tmp.nickname = TextInterface( server, basepath+"/DeviceManager/"+path+"/Generic/Nickname" ) 379 tmp.hw = hw 377 380 tmp.initValues() 378 381 l.addWidget( tmp, 1 ) … … 388 391 if dev != None: 389 392 mixerapp = dev[1] 390 # hack for the focusrite devices 391 # Saffire: 0x130e010001???? 392 # SaffireLE: 0x130e010004???? 393 if thisdev == (0x00130e, 0x00000000): 394 if int(GUID, 16) < 0x130e0100040000: 393 if vendorId == 0x00130e: 394 is_saffirele = False 395 is_saffirepro = False 396 397 # hack for the focusrite devices 398 # Saffire: 0x130e010001???? 399 # SaffireLE: 0x130e010004???? 400 if modelId == 0x00000000: 401 if int(GUID, 16) >= 0x130e0100040000: 402 is_saffirele = True 403 print "Found SaffireLE GUID" 404 else: 405 is_saffirele = False 406 print "Found Saffire GUID" 407 408 # different panel for different clock frequency 409 samplerate = hw.getDiscrete('/Generic/SamplerateSelect') 410 411 # adat on PRO26 makes a difference 412 have_adat = False 413 if modelId == 0x00000003: # PRO26 414 is_saffirepro = True 415 state = hw.getDiscrete('/Control/ADATDisable') 416 if state: 417 have_adat = False 418 print "detected PRO26, ADAT disabled" 419 else: 420 have_adat = True 421 print "detected PRO26, ADAT enabled" 422 elif modelId == 0x00000006: # PRO10 423 is_saffirepro = True 424 425 suffix = '' 426 if samplerate <= 48000: 427 suffix = "Large" 428 # on the saffire pro 26, the large panel can be used 429 # at 96k when adat is disabled. pro10 = pro26 w/o ADAT 430 elif samplerate <= 96000 and is_saffirepro and have_adat: 431 suffix = "Small" 432 elif samplerate <= 96000 and is_saffirepro: 433 suffix = "Large" 434 # higher samplerates need the small panel 435 else: 436 suffix = "Small" 437 438 if is_saffirepro: 439 mixerapp = "SaffireProMixer" + suffix 440 elif is_saffirele: 441 mixerapp = "SaffireLEMixer" + suffix 442 else: 395 443 mixerapp = "SaffireMixer" 396 else:397 mixerapp = "SaffireLEMixer"398 444 399 445 exec( "mixerwidget = "+mixerapp+"( w )" ) … … 407 453 # 408 454 l.addWidget( mixerwidget, 10 ) 409 mixerwidget.hw = ControlInterface(server, basepath+'/DeviceManager/'+path)455 mixerwidget.hw = hw 410 456 mixerwidget.configrom = cfgrom 411 457 mixerwidget.clockselect = ClockSelectInterface(server, basepath+'/DeviceManager/'+path) trunk/libffado/support/mixer/mixer_saffire.py
r1106 r1217 22 22 23 23 from qt import * 24 from mixer_saffireui import * 24 from mixer_saffire_base import SaffireMixerBase 25 from mixer_saffireui import SaffireMixerUI 25 26 26 class SaffireMixer(SaffireMixerUI ):27 class SaffireMixer(SaffireMixerUI, SaffireMixerBase): 27 28 def __init__(self,parent = None,name = None,fl = 0): 28 29 SaffireMixerUI.__init__(self,parent,name,fl) 30 SaffireMixerBase.__init__(self) 29 31 30 32 def init(self): 31 print "InitSaffire mixer window"33 print "Init large Saffire mixer window" 32 34 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 35 self.VolumeControls={ 36 self.sldPC12Out12: ['/Mixer/PCMix', 0, 0], 37 self.sldPC12Out34: ['/Mixer/PCMix', 0, 1], 38 self.sldPC12Out56: ['/Mixer/PCMix', 0, 2], 39 self.sldPC12Out78: ['/Mixer/PCMix', 0, 3], 40 self.sldPC12Out910: ['/Mixer/PCMix', 0, 4], 41 self.sldPC34Out12: ['/Mixer/PCMix', 1, 0], 42 self.sldPC34Out34: ['/Mixer/PCMix', 1, 1], 43 self.sldPC34Out56: ['/Mixer/PCMix', 1, 2], 44 self.sldPC34Out78: ['/Mixer/PCMix', 1, 3], 45 self.sldPC34Out910: ['/Mixer/PCMix', 1, 4], 46 self.sldPC56Out12: ['/Mixer/PCMix', 2, 0], 47 self.sldPC56Out34: ['/Mixer/PCMix', 2, 1], 48 self.sldPC56Out56: ['/Mixer/PCMix', 2, 2], 49 self.sldPC56Out78: ['/Mixer/PCMix', 2, 3], 50 self.sldPC56Out910: ['/Mixer/PCMix', 2, 4], 51 self.sldPC78Out12: ['/Mixer/PCMix', 3, 0], 52 self.sldPC78Out34: ['/Mixer/PCMix', 3, 1], 53 self.sldPC78Out56: ['/Mixer/PCMix', 3, 2], 54 self.sldPC78Out78: ['/Mixer/PCMix', 3, 3], 55 self.sldPC78Out910: ['/Mixer/PCMix', 3, 4], 56 self.sldPC910Out12: ['/Mixer/PCMix', 4, 0], 57 self.sldPC910Out34: ['/Mixer/PCMix', 4, 1], 58 self.sldPC910Out56: ['/Mixer/PCMix', 4, 2], 59 self.sldPC910Out78: ['/Mixer/PCMix', 4, 3], 60 self.sldPC910Out910: ['/Mixer/PCMix', 4, 4], 61 self.sldIN1Out1: ['/Mixer/InputMix', 0, 0], 62 self.sldIN1Out3: ['/Mixer/InputMix', 0, 2], 63 self.sldIN1Out5: ['/Mixer/InputMix', 0, 4], 64 self.sldIN1Out7: ['/Mixer/InputMix', 0, 6], 65 self.sldIN1Out9: ['/Mixer/InputMix', 0, 8], 66 self.sldIN2Out2: ['/Mixer/InputMix', 1, 1], 67 self.sldIN2Out4: ['/Mixer/InputMix', 1, 3], 68 self.sldIN2Out6: ['/Mixer/InputMix', 1, 5], 69 self.sldIN2Out8: ['/Mixer/InputMix', 1, 7], 70 self.sldIN2Out10: ['/Mixer/InputMix', 1, 9], 71 self.sldIN3Out1: ['/Mixer/InputMix', 2, 0], 72 self.sldIN3Out3: ['/Mixer/InputMix', 2, 2], 73 self.sldIN3Out5: ['/Mixer/InputMix', 2, 4], 74 self.sldIN3Out7: ['/Mixer/InputMix', 2, 6], 75 self.sldIN3Out9: ['/Mixer/InputMix', 2, 8], 76 self.sldIN4Out2: ['/Mixer/InputMix', 3, 1], 77 self.sldIN4Out4: ['/Mixer/InputMix', 3, 3], 78 self.sldIN4Out6: ['/Mixer/InputMix', 3, 5], 79 self.sldIN4Out8: ['/Mixer/InputMix', 3, 7], 80 self.sldIN4Out10: ['/Mixer/InputMix', 3, 9], 81 self.sldREV1Out1: ['/Mixer/InputMix', 4, 0], 82 self.sldREV1Out3: ['/Mixer/InputMix', 4, 2], 83 self.sldREV1Out5: ['/Mixer/InputMix', 4, 4], 84 self.sldREV1Out7: ['/Mixer/InputMix', 4, 6], 85 self.sldREV1Out9: ['/Mixer/InputMix', 4, 8], 86 self.sldREV2Out2: ['/Mixer/InputMix', 5, 1], 87 self.sldREV2Out4: ['/Mixer/InputMix', 5, 3], 88 self.sldREV2Out6: ['/Mixer/InputMix', 5, 5], 89 self.sldREV2Out8: ['/Mixer/InputMix', 5, 7], 90 self.sldREV2Out10: ['/Mixer/InputMix', 5, 9], 91 } 90 92 91 93 92 93 94 95 96 97 98 99 100 101 102 103 104 94 self.SelectorControls={ 95 self.chkSpdifSwitch: ['/Mixer/SpdifSwitch'], 96 self.chkOut12Mute: ['/Mixer/Out12Mute'], 97 self.chkOut12HwCtrl: ['/Mixer/Out12HwCtrl'], 98 self.chkOut12Dim: ['/Mixer/Out12Dim'], 99 self.chkOut34Mute: ['/Mixer/Out34Mute'], 100 self.chkOut34HwCtrl: ['/Mixer/Out34HwCtrl'], 101 self.chkOut56Mute: ['/Mixer/Out56Mute'], 102 self.chkOut56HwCtrl: ['/Mixer/Out56HwCtrl'], 103 self.chkOut78Mute: ['/Mixer/Out78Mute'], 104 self.chkOut78HwCtrl: ['/Mixer/Out78HwCtrl'], 105 self.chkOut910Mute: ['/Mixer/Out910Mute'], 106 } 105 107 106 107 108 109 110 111 108 self.VolumeControlsLowRes={ 109 self.sldOut12Level: ['/Mixer/Out12Level'], 110 self.sldOut34Level: ['/Mixer/Out34Level'], 111 self.sldOut56Level: ['/Mixer/Out56Level'], 112 self.sldOut78Level: ['/Mixer/Out78Level'], 113 } 112 114 113 def updateMatrixVolume(self,a0): 114 sender = self.sender() 115 vol = 0x7FFF-a0 116 print "set %s %d %d to %d" % ( 117 self.VolumeControls[sender][0], 118 self.VolumeControls[sender][1], 119 self.VolumeControls[sender][2], 120 vol) 121 self.hw.setMatrixMixerValue(self.VolumeControls[sender][0], 122 self.VolumeControls[sender][1], 123 self.VolumeControls[sender][2], 124 vol) 125 def updateLowResVolume(self,a0): 126 sender = self.sender() 127 vol = a0 128 print "set %s to %d" % ( 129 self.VolumeControlsLowRes[sender][0], 130 vol) 131 self.hw.setDiscrete(self.VolumeControlsLowRes[sender][0], vol) 115 self.TriggerButtonControls={ 116 } 132 117 133 def updateSelector(self,a0): 134 sender = self.sender() 135 if a0: 136 state = 1 137 else: 138 state = 0 139 print "set %s to %d" % ( 140 self.SelectorControls[sender][0], 141 state) 142 self.hw.setDiscrete(self.SelectorControls[sender][0], state) 118 self.TextControls={ 119 } 143 120 144 def updateClockSelection(self,a0): 145 #disable the combobox 146 self.comboClockSelect.setEnabled(False) 147 #change the clock source 148 self.clockselect.select(a0) 149 #refresh the clock source selection box 150 self.initClockSelector() 151 #make the box available again 152 self.comboClockSelect.setEnabled(True) 121 self.saveTextControls={ 122 } 153 123 154 def initClockSelector(self): 155 self.comboClockSelect.clear() 156 nbsources = self.clockselect.count() 157 for idx in range(nbsources): 158 desc = self.clockselect.getEnumLabel(idx) 159 self.comboClockSelect.insertItem(desc) 160 active_idx = self.clockselect.selected(); 161 if active_idx >= 0: 162 self.comboClockSelect.setCurrentItem(active_idx) 124 self.ComboControls={ 125 } 163 126 164 def initValues(self):165 for ctrl, info in self.VolumeControls.iteritems():166 vol = self.hw.getMatrixMixerValue(self.VolumeControls[ctrl][0],167 self.VolumeControls[ctrl][1],168 self.VolumeControls[ctrl][2])169 170 print "%s volume is %d" % (ctrl.name() , 0x7FFF-vol)171 ctrl.setValue(0x7FFF-vol)172 173 # connect the UI element174 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateMatrixVolume)175 176 for ctrl, info in self.VolumeControlsLowRes.iteritems():177 vol = self.hw.getDiscrete(self.VolumeControlsLowRes[ctrl][0])178 179 print "%s volume is %d" % (ctrl.name() , vol)180 ctrl.setValue(vol)181 182 # connect the UI element183 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateLowResVolume)184 185 for ctrl, info in self.SelectorControls.iteritems():186 state = self.hw.getDiscrete(self.SelectorControls[ctrl][0])187 print "%s state is %d" % (ctrl.name() , state)188 if state:189 ctrl.setChecked(True)190 else:191 ctrl.setChecked(False)192 193 # connect the UI element194 QObject.connect(ctrl,SIGNAL('stateChanged(int)'),self.updateSelector)195 196 self.initClockSelector()197 # connect the clock selector UI element198 QObject.connect(self.comboClockSelect, SIGNAL('activated(int)'), self.updateClockSelection)trunk/libffado/support/mixer/mixer_saffire.ui
r1127 r1217 2473 2473 </widget> 2474 2474 </widget> 2475 <widget class="QGroupBox" row="1" column="1">2476 <property name="name">2477 <cstring>groupBox1_3</cstring>2478 </property>2479 <property name="title">2480 <string>Clock Source</string>2481 </property>2482 <grid>2483 <property name="name">2484 <cstring>unnamed</cstring>2485 </property>2486 <widget class="QComboBox" row="0" column="0">2487 <property name="name">2488 <cstring>comboClockSelect</cstring>2489 </property>2490 </widget>2491 </grid>2492 </widget>2493 2475 <widget class="QGroupBox" row="1" column="0"> 2494 2476 <property name="name"> trunk/libffado/support/mixer/mixer_saffirele.py
r1171 r1217 22 22 23 23 from qt import * 24 from mixer_saffireleui import * 25 26 class SaffireLEMixer(SaffireLEMixerUI): 24 from mixer_saffire_base import SaffireMixerBase 25 from mixer_saffirelelargeui import SaffireLEMixerLargeUI 26 from mixer_saffirelesmallui import SaffireLEMixerSmallUI 27 28 class SaffireLEMixerLarge(SaffireLEMixerLargeUI, SaffireMixerBase): 27 29 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) 29 32 30 33 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 } 115 127 116 128 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) 128 130 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) 136 132 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) 147 134 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 146 class 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) trunk/libffado/support/mixer/mixer_saffirepro.py
r1184 r1217 22 22 23 23 from qt import * 24 from mixer_saffireproui import * 25 26 class SaffireProMixer(SaffireProMixerUI): 24 from mixer_saffire_base import SaffireMixerBase 25 from mixer_saffireprolargeui import SaffireProMixerLargeUI 26 from mixer_saffireprosmallui import SaffireProMixerSmallUI 27 28 class SaffireProMixerLarge(SaffireProMixerLargeUI, SaffireMixerBase): 27 29 def __init__(self,parent = None,name = None,fl = 0): 28 SaffireProMixerUI.__init__(self,parent,name,fl) 29 30 def updateMatrixVolume(self,a0): 31 sender = self.sender() 32 vol = 0x7FFF-a0 33 print "set %s %d %d to %d" % ( 34 self.VolumeControls[sender][0], 35 self.VolumeControls[sender][1], 36 self.VolumeControls[sender][2], 37 vol) 38 self.hw.setMatrixMixerValue(self.VolumeControls[sender][0], 39 self.VolumeControls[sender][1], 40 self.VolumeControls[sender][2], 41 vol) 42 def updateLowResVolume(self,a0): 43 sender = self.sender() 44 vol = a0 45 print "set %s to %d" % ( 46 self.VolumeControlsLowRes[sender][0], 47 vol) 48 self.hw.setDiscrete(self.VolumeControlsLowRes[sender][0], vol) 49 50 def updateSelector(self,a0): 51 sender = self.sender() 52 if a0: 53 state = 1 54 else: 55 state = 0 56 print "set %s to %d" % ( 57 self.SelectorControls[sender][0], 58 state) 59 self.hw.setDiscrete(self.SelectorControls[sender][0], state) 60 61 def triggerButton(self): 62 sender = self.sender() 63 print "trigger %s" % ( 64 self.TriggerButtonControls[sender][0]) 65 self.hw.setDiscrete(self.TriggerButtonControls[sender][0], 1) 66 67 def saveText(self): 68 sender = self.sender() 69 textbox = self.saveTextControls[sender][0] 70 print "save %s" % ( 71 textbox.text().ascii()) 72 self.hw.setText(self.TextControls[textbox][0], textbox.text().ascii()) 73 74 def selectStandaloneMode(self, mode): 75 self.hw.enumSelect('/Control/StandaloneConfig', mode) 76 self.comboStandalone.setCurrentItem( self.hw.enumSelected('/Control/StandaloneConfig') ) 30 SaffireProMixerLargeUI.__init__(self,parent,name,fl) 31 SaffireMixerBase.__init__(self) 32 self.have_adat = False 77 33 78 34 def init(self): 79 print "Init Saffire Pro mixer window"35 print "Init large Saffire Pro mixer window" 80 36 81 37 self.VolumeControls={ … … 223 179 self.TextControls={ 224 180 } 181 225 182 self.saveTextControls={ 226 183 } 227 184 185 self.ComboControls={ 186 self.comboStandalone: ['/Control/StandaloneConfig'], 187 } 188 189 def updateMatrixVolume(self,a0): 190 SaffireMixerBase.updateMatrixVolume(self,a0) 191 def updateLowResVolume(self,a0): 192 SaffireMixerBase.updateLowResVolume(self,a0) 193 def updateSelector(self,a0): 194 SaffireMixerBase.updateSelector(self,a0) 195 def triggerButton(self): 196 SaffireMixerBase.triggerButton(self) 197 def saveText(self): 198 SaffireMixerBase.saveText(self) 199 def initCombo(self, combo): 200 SaffireMixerBase.initCombo(self,combo) 201 def selectCombo(self, mode): 202 SaffireMixerBase.selectCombo(self,mode) 203 228 204 def updateValues(self): 229 for ctrl, info in self.VolumeControls.iteritems(): 230 vol = self.hw.getMatrixMixerValue(self.VolumeControls[ctrl][0], 231 self.VolumeControls[ctrl][1], 232 self.VolumeControls[ctrl][2]) 233 234 print "%s volume is %d" % (ctrl.name() , 0x7FFF-vol) 235 ctrl.setValue(0x7FFF-vol) 236 237 for ctrl, info in self.VolumeControlsLowRes.iteritems(): 238 vol = self.hw.getDiscrete(self.VolumeControlsLowRes[ctrl][0]) 239 240 print "%s volume is %d" % (ctrl.name() , vol) 241 ctrl.setValue(vol) 242 243 for ctrl, info in self.SelectorControls.iteritems(): 244 state = self.hw.getDiscrete(self.SelectorControls[ctrl][0]) 245 print "%s state is %d" % (ctrl.name() , state) 205 self.samplerate = self.hw.getDiscrete('/Generic/SamplerateSelect') 206 self.modelId = self.configrom.getModelId() 207 if self.modelId == 0x00000003: 208 state = self.hw.getDiscrete('/Control/ADATDisable') 246 209 if state: 247 ctrl.setChecked(True) 210 self.have_adat = False 211 print "detected PRO26 at %d, ADAT disabled" % self.samplerate 248 212 else: 249 ctrl.setChecked(False) 250 251 for ctrl, info in self.TriggerButtonControls.iteritems(): 252 pass 253 254 for ctrl, info in self.TextControls.iteritems(): 255 text = self.hw.getText(self.TextControls[ctrl][0]) 256 print "%s text is %s" % (ctrl.name() , text) 257 ctrl.setText(text) 258 259 self.comboStandalone.clear() 260 for i in range( self.hw.enumCount('/Control/StandaloneConfig') ): 261 self.comboStandalone.insertItem( self.hw.enumGetLabel('/Control/StandaloneConfig', i) ) 262 self.comboStandalone.setCurrentItem( self.hw.enumSelected('/Control/StandaloneConfig') ) 263 264 def initValues(self): 265 self.updateValues() 266 for ctrl, info in self.VolumeControls.iteritems(): 267 # connect the UI element 268 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateMatrixVolume) 269 270 for ctrl, info in self.VolumeControlsLowRes.iteritems(): 271 # connect the UI element 272 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateLowResVolume) 273 274 for ctrl, info in self.SelectorControls.iteritems(): 275 # connect the UI element 276 QObject.connect(ctrl,SIGNAL('stateChanged(int)'),self.updateSelector) 277 278 for ctrl, info in self.TriggerButtonControls.iteritems(): 279 # connect the UI element 280 QObject.connect(ctrl,SIGNAL('clicked()'),self.triggerButton) 281 282 for ctrl, info in self.saveTextControls.iteritems(): 283 # connect the UI element 284 QObject.connect(ctrl,SIGNAL('clicked()'), self.saveText) 285 286 QObject.connect(self.comboStandalone, SIGNAL('activated(int)'), self.selectStandaloneMode) 213 self.have_adat = True 214 print "detected PRO26 at %d, ADAT enabled" % self.samplerate 215 else: 216 self.have_adat = False 217 print "detected PRO10 at %d, ADAT not available" % self.samplerate 218 219 for i in range(self.tabInputMix.count()): 220 self.tabInputMix.setTabEnabled(self.tabInputMix.page(i), True) 221 222 if not self.have_adat: 223 for i in range(self.tabInputMix.count()): 224 page = self.tabInputMix.page(i) 225 name = page.name() 226 if name[0:4] == "adat": 227 self.tabInputMix.setTabEnabled(page, False) 228 else: 229 self.tabInputMix.setTabEnabled(page, True) 230 231 self.tabInputMix.setCurrentPage(0) 232 SaffireMixerBase.updateValues(self) 233 234 class SaffireProMixerSmall(SaffireProMixerSmallUI, SaffireMixerBase): 235 def __init__(self,parent = None,name = None,fl = 0): 236 SaffireProMixerSmallUI.__init__(self,parent,name,fl) 237 SaffireMixerBase.__init__(self) 238 239 def init(self): 240 print "Init small Saffire Pro mixer window" 241 242 self.VolumeControls={ 243 244 self.sldOMixPC1O1: ['/Mixer/OutputMix', 0, 0], 245 self.sldOMixPC2O2: ['/Mixer/OutputMix', 1, 1], 246 self.sldOMixPC3O3: ['/Mixer/OutputMix', 2, 2], 247 self.sldOMixPC4O4: ['/Mixer/OutputMix', 3, 3], 248 self.sldOMixPC5O5: ['/Mixer/OutputMix', 4, 4], 249 self.sldOMixPC6O6: ['/Mixer/OutputMix', 5, 5], 250 self.sldOMixPC7O7: ['/Mixer/OutputMix', 6, 6], 251 self.sldOMixPC8O8: ['/Mixer/OutputMix', 7, 7], 252 self.sldOMixPC9O9: ['/Mixer/OutputMix', 8, 8], 253 self.sldOMixPC10O10: ['/Mixer/OutputMix', 9, 9], 254 255 self.sldOMixPC1O3: ['/Mixer/OutputMix', 0, 2], 256 self.sldOMixPC2O4: ['/Mixer/OutputMix', 1, 3], 257 self.sldOMixPC1O5: ['/Mixer/OutputMix', 0, 4], 258 self.sldOMixPC2O6: ['/Mixer/OutputMix', 1, 5], 259 self.sldOMixPC1O7: ['/Mixer/OutputMix', 0, 6], 260 self.sldOMixPC2O8: ['/Mixer/OutputMix', 1, 7], 261 self.sldOMixPC1O9: ['/Mixer/OutputMix', 0, 8], 262 self.sldOMixPC2O10: ['/Mixer/OutputMix', 1, 9], 263 264 self.sldOMixIMixO1: ['/Mixer/OutputMix', 10, 0], 265 self.sldOMixIMixO2: ['/Mixer/OutputMix', 11, 1], 266 self.sldOMixIMixO3: ['/Mixer/OutputMix', 10, 2], 267 self.sldOMixIMixO4: ['/Mixer/OutputMix', 11, 3], 268 self.sldOMixIMixO5: ['/Mixer/OutputMix', 10, 4], 269 self.sldOMixIMixO6: ['/Mixer/OutputMix', 11, 5], 270 self.sldOMixIMixO7: ['/Mixer/OutputMix', 10, 6], 271 self.sldOMixIMixO8: ['/Mixer/OutputMix', 11, 7], 272 self.sldOMixIMixO9: ['/Mixer/OutputMix', 10, 8], 273 self.sldOMixIMixO10: ['/Mixer/OutputMix', 11, 9], 274 } 275 276 277 self.SelectorControls={ 278 # control elements 279 self.chkInsert1: ['/Control/Insert1'], 280 self.chkInsert2: ['/Control/Insert2'], 281 self.chkPhantom14: ['/Control/Phantom_1to4'], 282 self.chkPhantom58: ['/Control/Phantom_5to8'], 283 self.chkAC3: ['/Control/AC3pass'], 284 self.chkMidiThru: ['/Control/MidiTru'], 285 self.chkHighVoltage: ['/Control/UseHighVoltageRail'], 286 #self.chkEnableADAT1: ['/Control/EnableAdat1'], 287 #self.chkEnableADAT2: ['/Control/EnableAdat2'], 288 #self.chkEnableSPDIF1: ['/Control/EnableSPDIF1'], 289 self.chkMidiEnable: ['/Control/MIDIEnable'], 290 self.chkAdatDisable: ['/Control/ADATDisable'], 291 # Mixer switches 292 self.chkMute12: ['/Mixer/Out12Mute'], 293 self.chkHwCtrl12: ['/Mixer/Out12HwCtrl'], 294 self.chkPad12: ['/Mixer/Out12Pad'], 295 self.chkDim12: ['/Mixer/Out12Dim'], 296 self.chkMute34: ['/Mixer/Out34Mute'], 297 self.chkHwCtrl34: ['/Mixer/Out34HwCtrl'], 298 self.chkPad34: ['/Mixer/Out34Pad'], 299 self.chkDim34: ['/Mixer/Out34Dim'], 300 self.chkMute56: ['/Mixer/Out56Mute'], 301 self.chkHwCtrl56: ['/Mixer/Out56HwCtrl'], 302 self.chkPad56: ['/Mixer/Out56Pad'], 303 self.chkDim56: ['/Mixer/Out56Dim'], 304 self.chkMute78: ['/Mixer/Out78Mute'], 305 self.chkHwCtrl78: ['/Mixer/Out78HwCtrl'], 306 self.chkPad78: ['/Mixer/Out78Pad'], 307 self.chkDim78: ['/Mixer/Out78Dim'], 308 # direct monitoring 309 self.chkMonitor1: ['/Mixer/DirectMonitorCH1'], 310 self.chkMonitor2: ['/Mixer/DirectMonitorCH2'], 311 self.chkMonitor3: ['/Mixer/DirectMonitorCH3'], 312 self.chkMonitor4: ['/Mixer/DirectMonitorCH4'], 313 self.chkMonitor5: ['/Mixer/DirectMonitorCH5'], 314 self.chkMonitor6: ['/Mixer/DirectMonitorCH6'], 315 self.chkMonitor7: ['/Mixer/DirectMonitorCH7'], 316 self.chkMonitor8: ['/Mixer/DirectMonitorCH8'], 317 } 318 319 self.VolumeControlsLowRes={ 320 self.sldOut12Level: ['/Mixer/Out12Level'], 321 self.sldOut34Level: ['/Mixer/Out34Level'], 322 self.sldOut56Level: ['/Mixer/Out56Level'], 323 self.sldOut78Level: ['/Mixer/Out78Level'], 324 } 325 326 self.TriggerButtonControls={ 327 self.btnReboot: ['/Control/Reboot'], 328 self.btnIdentify: ['/Control/FlashLed'], 329 self.btnSaveSettings: ['/Control/SaveSettings'], 330 } 331 332 self.TextControls={ 333 } 334 335 self.saveTextControls={ 336 } 337 338 self.ComboControls={ 339 self.comboStandalone: ['/Control/StandaloneConfig'], 340 } 341 342 def updateMatrixVolume(self,a0): 343 SaffireMixerBase.updateMatrixVolume(self,a0) 344 def updateLowResVolume(self,a0): 345 SaffireMixerBase.updateLowResVolume(self,a0) 346 def updateSelector(self,a0): 347 SaffireMixerBase.updateSelector(self,a0) 348 def triggerButton(self): 349 SaffireMixerBase.triggerButton(self) 350 def saveText(self): 351 SaffireMixerBase.saveText(self) 352 def initCombo(self, combo): 353 SaffireMixerBase.initCombo(self,combo) 354 def selectCombo(self, mode): 355 SaffireMixerBase.selectCombo(self,mode) 356 357 def updateValues(self): 358 SaffireMixerBase.updateValues(self) trunk/libffado/support/mixer/SConscript
r1093 r1217 30 30 e = env.Clone() 31 31 32 e['MIXERAPPS'] = [ 'phase24', 'phase88', 'saffirepro', 'saffire', 33 'saffirele', 'af2', 'bcoaudio5', 'edirolfa66', 32 e['MIXERAPPS'] = [ 'phase24', 'phase88', 33 'saffire', 34 'saffireprolarge', 'saffireprosmall', 35 'saffirelelarge', 'saffirelesmall', 36 'af2', 'bcoaudio5', 'edirolfa66', 34 37 'mackie_generic', 'quatafire', 'motu', 35 38 'global', 'dummy'