Changeset 684

Show
Ignore:
Timestamp:
11/02/07 05:04:08 (15 years ago)
Author:
ppalmers
Message:

- extend the saffire pro mixer

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp

    r680 r684  
    3232    : FocusriteDevice( ieee1394Service, configRom) 
    3333    , m_MixerContainer ( NULL ) 
     34    , m_ControlContainer ( NULL ) 
    3435{ 
    3536    debugOutput( DEBUG_LEVEL_VERBOSE, "Created BeBoB::Focusrite::SaffireProDevice (NodeID %d)\n", 
     
    6465    } 
    6566 
    66     // create control objects for the saffire pro 
    67     result &= m_MixerContainer->addElement( 
    68         new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_PHANTOM14, 0, 
    69                  "Phantom_1to4", "Phantom 1-4", "Switch Phantom Power on channels 1-4")); 
    70      
    71     result &= m_MixerContainer->addElement( 
    72         new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_PHANTOM58, 0, 
    73                  "Phantom_5to8", "Phantom 5-8", "Switch Phantom Power on channels 5-8")); 
    74      
    75     result &= m_MixerContainer->addElement( 
    76         new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_INSERT1, 0, 
    77                 "Insert1", "Insert 1", "Switch Insert on Channel 1")); 
    78      
    79     result &= m_MixerContainer->addElement( 
    80         new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_INSERT2, 0, 
    81                 "Insert2", "Insert 2", "Switch Insert on Channel 2")); 
    82      
    83     result &= m_MixerContainer->addElement( 
    84         new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_AC3_PASSTHROUGH, 0, 
    85                 "AC3pass", "AC3 Passtrough", "Enable AC3 Passthrough")); 
    86      
    87     result &= m_MixerContainer->addElement( 
    88         new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_MIDI_TRU, 0, 
    89                 "MidiTru", "Midi Tru", "Enable Midi Tru")); 
    90  
    9167    // output mute controls 
    9268    result &= m_MixerContainer->addElement( 
     
    161137                "Out78Dim", "Out7/8 Dim", "Output 7/8 Level Dim")); 
    162138 
     139    // output level controls 
     140    result &= m_MixerContainer->addElement( 
     141        new VolumeControlLowRes(*this,  
     142                FR_SAFFIREPRO_CMD_ID_BITFIELD_OUT12, 0, 
     143                "Out12Level", "Out1/2 Level", "Output 1/2 Level")); 
     144    result &= m_MixerContainer->addElement( 
     145        new VolumeControlLowRes(*this,  
     146                FR_SAFFIREPRO_CMD_ID_BITFIELD_OUT34, 0, 
     147                "Out34Level", "Out3/4 Level", "Output 3/4 Level")); 
     148    result &= m_MixerContainer->addElement( 
     149        new VolumeControlLowRes(*this,  
     150                FR_SAFFIREPRO_CMD_ID_BITFIELD_OUT56, 0, 
     151                "Out56Level", "Out5/6 Level", "Output 5/6 Level")); 
     152    result &= m_MixerContainer->addElement( 
     153        new VolumeControlLowRes(*this,  
     154                FR_SAFFIREPRO_CMD_ID_BITFIELD_OUT78, 0, 
     155                "Out78Level", "Out7/8 Level", "Output 7/8 Level")); 
     156 
    163157    // indicators 
    164158    result &= m_MixerContainer->addElement( 
     
    180174 
    181175    if (!result) { 
    182         debugWarning("One or more control elements could not be created."); 
     176        debugWarning("One or more mixer control elements could not be created."); 
    183177        // clean up those that couldn't be created 
    184178        destroyMixer(); 
    185179        return false; 
    186180    } 
    187  
    188181    if (!addElement(m_MixerContainer)) { 
    189182        debugWarning("Could not register mixer to device\n"); 
     
    193186    } 
    194187 
     188    // special controls 
     189    m_ControlContainer = new Control::Container("Control"); 
     190    if (!m_ControlContainer) { 
     191        debugError("Could not create mixer container...\n"); 
     192        return false; 
     193    } 
     194 
     195    // create control objects for the saffire pro 
     196    result &= m_ControlContainer->addElement( 
     197        new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_PHANTOM14, 0, 
     198                 "Phantom_1to4", "Phantom 1-4", "Switch Phantom Power on channels 1-4")); 
     199     
     200    result &= m_ControlContainer->addElement( 
     201        new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_PHANTOM58, 0, 
     202                 "Phantom_5to8", "Phantom 5-8", "Switch Phantom Power on channels 5-8")); 
     203     
     204    result &= m_ControlContainer->addElement( 
     205        new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_INSERT1, 0, 
     206                "Insert1", "Insert 1", "Switch Insert on Channel 1")); 
     207     
     208    result &= m_ControlContainer->addElement( 
     209        new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_INSERT2, 0, 
     210                "Insert2", "Insert 2", "Switch Insert on Channel 2")); 
     211     
     212    result &= m_ControlContainer->addElement( 
     213        new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_AC3_PASSTHROUGH, 0, 
     214                "AC3pass", "AC3 Passtrough", "Enable AC3 Passthrough")); 
     215     
     216    result &= m_ControlContainer->addElement( 
     217        new BinaryControl(*this, FR_SAFFIREPRO_CMD_ID_MIDI_TRU, 0, 
     218                "MidiTru", "Midi Tru", "Enable Midi Tru")); 
     219     
     220    result &= m_ControlContainer->addElement( 
     221        new SaffireProMultiControl(*this, SaffireProMultiControl::eTCT_Reboot, 
     222            "Reboot", "Reboot", "Reboot Device")); 
     223 
     224    result &= m_ControlContainer->addElement( 
     225        new SaffireProMultiControl(*this, SaffireProMultiControl::eTCT_FlashLed, 
     226            "FlashLed", "Flash Led", "Flash power led")); 
     227 
     228    result &= m_ControlContainer->addElement( 
     229        new SaffireProMultiControl(*this, SaffireProMultiControl::eTCT_UseHighVoltageRail, 
     230            "UseHighVoltageRail", "Use High Supply", "Prefer the high voltage power supply rail")); 
     231 
     232    if (!result) { 
     233        debugWarning("One or more device control elements could not be created."); 
     234        // clean up those that couldn't be created 
     235        destroyMixer(); 
     236        return false; 
     237    } 
     238    if (!addElement(m_ControlContainer)) { 
     239        debugWarning("Could not register controls to device\n"); 
     240        // clean up 
     241        destroyMixer(); 
     242        return false; 
     243    } 
     244 
     245 
    195246    return true; 
    196247} 
     
    214265    m_MixerContainer->clearElements(true); 
    215266    delete m_MixerContainer; 
     267    m_MixerContainer = NULL; 
     268 
     269    // remove control container 
     270    if (m_ControlContainer == NULL) { 
     271        debugOutput(DEBUG_LEVEL_VERBOSE, "no controls to destroy...\n"); 
     272        return true; 
     273    } 
     274     
     275    if (!deleteElement(m_ControlContainer)) { 
     276        debugError("Controls present but not registered to the avdevice\n"); 
     277        return false; 
     278    } 
     279     
     280    // remove and delete (as in free) child control elements 
     281    m_ControlContainer->clearElements(true); 
     282    delete m_ControlContainer; 
     283    m_ControlContainer = NULL; 
     284 
    216285    return true; 
    217286} 
     
    413482} 
    414483 
     484void 
     485SaffireProDevice::flashLed() { 
     486    int ledFlashDuration=2; 
     487    if(!getOption("ledFlashDuration", ledFlashDuration)) { 
     488        debugWarning("Could not retrieve ledFlashDuration parameter, defaulting to 2sec\n"); 
     489    } 
     490    int ledFlashFrequency=10; 
     491    if(!getOption("ledFlashFrequency", ledFlashFrequency)) { 
     492        debugWarning("Could not retrieve ledFlashFrequency parameter, defaulting to 10Hz\n"); 
     493    } 
     494 
     495    uint32_t reg=0; 
     496    debugOutput( DEBUG_LEVEL_VERBOSE, "flashing led ...\n" ); 
     497     
     498    reg = FR_SAFFIREPRO_CMD_SET_FLASH_SECS(reg, ledFlashDuration); 
     499    reg = FR_SAFFIREPRO_CMD_SET_FLASH_FREQ(reg, ledFlashFrequency); 
     500     
     501    if ( !setSpecificValue(FR_SAFFIREPRO_CMD_ID_FLASH_LED,  
     502                           reg ) ) { 
     503        debugError( "setSpecificValue failed\n" ); 
     504    } 
     505} 
     506 
    415507bool 
    416508SaffireProDevice::isAudioOn() { 
     
    451543    return v; 
    452544} 
     545 
     546void 
     547SaffireProDevice::useHighVoltageRail(bool useIt) { 
     548    uint32_t reg=useIt; 
     549    debugOutput( DEBUG_LEVEL_VERBOSE, "%s high voltage rail ...\n", 
     550        (useIt?"Using":"Not using") ); 
     551 
     552    if ( !setSpecificValue(FR_SAFFIREPRO_CMD_ID_USE_HIGHVOLTAGE_RAIL,  
     553                           reg ) ) { 
     554        debugError( "setSpecificValue failed\n" ); 
     555    } 
     556} 
     557 
     558bool 
     559SaffireProDevice::usingHighVoltageRail() { 
     560    uint32_t retval; 
     561    if ( !getSpecificValue(FR_SAFFIREPRO_CMD_ID_USING_HIGHVOLTAGE_RAIL, &retval ) ) { 
     562        debugError( "getSpecificValue failed\n" ); 
     563        return false; 
     564    } 
     565 
     566    debugOutput( DEBUG_LEVEL_VERBOSE, 
     567                     "usingHighVoltageRail: %d\n", retval!=0 ); 
     568    return retval != 0; 
     569} 
     570 
     571// swiss army knife control element 
     572SaffireProMultiControl::SaffireProMultiControl(SaffireProDevice& parent, enum eTriggerControlType t) 
     573: Control::Discrete() 
     574, m_Parent(parent) 
     575, m_type ( t ) 
     576{} 
     577SaffireProMultiControl::SaffireProMultiControl(SaffireProDevice& parent, enum eTriggerControlType t, 
     578                std::string name, std::string label, std::string descr) 
     579: Control::Discrete() 
     580, m_Parent(parent) 
     581, m_type ( t ) 
     582{ 
     583    setName(name); 
     584    setLabel(label); 
     585    setDescription(descr); 
     586} 
     587 
     588bool 
     589SaffireProMultiControl::setValue(int v) 
     590{ 
     591    switch (m_type) { 
     592        case eTCT_Reboot: m_Parent.rebootDevice(); return true; 
     593        case eTCT_FlashLed: m_Parent.flashLed(); return true; 
     594        case eTCT_UseHighVoltageRail: m_Parent.useHighVoltageRail(v); return true; 
     595    } 
     596    return false; 
     597} 
     598 
     599int 
     600SaffireProMultiControl::getValue() 
     601{ 
     602    switch (m_type) { 
     603        case eTCT_Reboot: return 0; 
     604        case eTCT_FlashLed: return 0; 
     605        case eTCT_UseHighVoltageRail: return m_Parent.usingHighVoltageRail(); 
     606    } 
     607    return -1; 
     608} 
     609 
    453610 
    454611// Saffire pro matrix mixer element 
  • trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h

    r680 r684  
    165165#define FR_SAFFIREPRO_CMD_ID_AUDIO_ON               90 
    166166 
    167 #define FR_SAFFIREPRO_CMD_ID_USE_HIGH_POWER_RAIL    91 
    168 #define FR_SAFFIREPRO_CMD_ID_USING_HIGH_POWER_RAIL 92 
     167#define FR_SAFFIREPRO_CMD_ID_USE_HIGHVOLTAGE_RAIL   91 
     168#define FR_SAFFIREPRO_CMD_ID_USING_HIGHVOLTAGE_RAIL 92 
    169169 
    170170#define FR_SAFFIREPRO_CMD_ID_SYNC_CONFIG            93 
     
    248248class SaffireProDevice; 
    249249 
     250// swiss army knife control class to serve  
     251// specific device control commands 
     252class SaffireProMultiControl 
     253    : public Control::Discrete 
     254{ 
     255public: 
     256    enum eTriggerControlType { 
     257        eTCT_Reboot, 
     258        eTCT_FlashLed, 
     259        eTCT_UseHighVoltageRail, 
     260    }; 
     261 
     262public: 
     263    SaffireProMultiControl(SaffireProDevice& parent, enum eTriggerControlType); 
     264    SaffireProMultiControl(SaffireProDevice& parent, enum eTriggerControlType, 
     265                  std::string name, std::string label, std::string descr); 
     266 
     267    virtual bool setValue(int v); 
     268    virtual int getValue(); 
     269 
     270private: 
     271    SaffireProDevice&          m_Parent; 
     272    enum eTriggerControlType  m_type; 
     273}; 
     274 
     275 
    250276class SaffireProMatrixMixer : public FocusriteMatrixMixer 
    251277{ 
     
    271297class SaffireProDevice : public FocusriteDevice 
    272298{ 
     299 
     300// we want all outside control to be done by this class 
     301friend class SaffireProMultiControl; 
     302 
    273303public: 
    274304    SaffireProDevice( Ieee1394Service& ieee1394Service, 
     
    285315    virtual bool destroyMixer(); 
    286316 
     317protected: 
     318    void rebootDevice(); 
     319    void flashLed(); 
     320    bool isAudioOn(); 
     321    bool isExtClockLocked(); 
     322    uint32_t getCount32(); 
     323 
     324    void useHighVoltageRail(bool useIt); 
     325    bool usingHighVoltageRail(); 
    287326private: 
    288327    virtual bool setSamplingFrequencyDo( uint32_t ); 
    289328    virtual bool setSamplingFrequencyDoNoReboot( uint32_t ); 
    290329 
    291     void rebootDevice(); 
    292     bool isAudioOn(); 
    293     bool isExtClockLocked(); 
    294     uint32_t getCount32(); 
    295  
    296330    Control::Container *m_MixerContainer; 
     331    Control::Container *m_ControlContainer; 
    297332}; 
    298333 
  • trunk/libffado/support/mixer/mixer.py

    r667 r684  
    2626        self.servername=servername 
    2727        self.bus=dbus.SessionBus() 
    28              
     28 
    2929    def setContignuous(self, subpath, v): 
    30         path = self.basepath + subpath 
    31         dev = self.bus.get_object(self.servername, path) 
    32         dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Continuous') 
    33         dev_cont.setValue(v) 
    34             
     30        try: 
     31            path = self.basepath + subpath 
     32            dev = self.bus.get_object(self.servername, path) 
     33            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Continuous') 
     34            dev_cont.setValue(v) 
     35        except: 
     36            print "Failed to set Continuous %s on server %s" % (path, self.servername) 
     37 
    3538    def getContignuous(self, subpath): 
    36         path = self.basepath + subpath 
    37         dev = self.bus.get_object(self.servername, path) 
    38         dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Continuous') 
    39         return dev_cont.getValue()         
    40      
     39        try: 
     40            path = self.basepath + subpath 
     41            dev = self.bus.get_object(self.servername, path) 
     42            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Continuous') 
     43            return dev_cont.getValue() 
     44        except: 
     45            print "Failed to get Continuous %s on server %s" % (path, self.servername) 
     46            return 0 
     47 
    4148    def setDiscrete(self, subpath, v): 
    42         path = self.basepath + subpath 
    43         dev = self.bus.get_object(self.servername, path) 
    44         dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Discrete') 
    45         dev_cont.setValue(v) 
    46             
     49        try: 
     50            path = self.basepath + subpath 
     51            dev = self.bus.get_object(self.servername, path) 
     52            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Discrete') 
     53            dev_cont.setValue(v) 
     54        except: 
     55            print "Failed to set Discrete %s on server %s" % (path, self.servername) 
     56 
    4757    def getDiscrete(self, subpath): 
    48         path = self.basepath + subpath 
    49         dev = self.bus.get_object(self.servername, path) 
    50         dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Discrete') 
    51         return dev_cont.getValue() 
     58        try: 
     59            path = self.basepath + subpath 
     60            dev = self.bus.get_object(self.servername, path) 
     61            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Discrete') 
     62            return dev_cont.getValue() 
     63        except: 
     64            print "Failed to get Discrete %s on server %s" % (path, self.servername) 
     65            return 0 
    5266 
    5367    def setMatrixMixerValue(self, subpath, row, col, v): 
    54         path = self.basepath + subpath 
    55         dev = self.bus.get_object(self.servername, path) 
    56         dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.MatrixMixer') 
    57         dev_cont.setValue(row, col, v) 
     68        try: 
     69            path = self.basepath + subpath 
     70            dev = self.bus.get_object(self.servername, path) 
     71            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.MatrixMixer') 
     72            dev_cont.setValue(row, col, v) 
     73        except: 
     74            print "Failed to set MatrixMixer %s on server %s" % (path, self.servername) 
    5875 
    5976    def getMatrixMixerValue(self, subpath, row, col): 
    60         path = self.basepath + subpath 
    61         dev = self.bus.get_object(self.servername, path) 
    62         dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.MatrixMixer') 
    63         return dev_cont.getValue(row, col) 
     77        try: 
     78            path = self.basepath + subpath 
     79            dev = self.bus.get_object(self.servername, path) 
     80            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.MatrixMixer') 
     81            return dev_cont.getValue(row, col) 
     82        except: 
     83            print "Failed to get MatrixMixer %s on server %s" % (path, self.servername) 
     84            return 0 
    6485 
    6586class DeviceManagerInterface: 
     
    102123    app = QApplication(sys.argv) 
    103124     
    104     devmgr=DeviceManagerInterface(server, basepath) 
     125    try: 
     126        devmgr=DeviceManagerInterface(server, basepath) 
     127    except dbus.DBusException, ex: 
     128        print "\n" 
     129        print "===========================================================" 
     130        print "ERROR: Could not communicate with the FFADO DBus service..." 
     131        print "===========================================================" 
     132        print "\n" 
     133        sys.exit(-1) 
     134     
    105135    nbDevices=devmgr.getNbDevices() 
    106136     
  • trunk/libffado/support/mixer/mixer_saffirepro.py

    r682 r684  
    4040                    state) 
    4141        self.hw.setDiscrete(self.SelectorControls[sender][0], state) 
     42 
     43    def triggerButton(self): 
     44        sender = self.sender() 
     45        print "trigger %s" % ( 
     46                    self.TriggerButtonControls[sender][0]) 
     47        self.hw.setDiscrete(self.TriggerButtonControls[sender][0], 1) 
    4248 
    4349    def init(self): 
     
    132138 
    133139            self.SelectorControls={ 
    134                 self.chkInsert1: ['/Mixer/Insert1'],  
    135                 self.chkInsert2: ['/Mixer/Insert2'],  
    136                 self.chkPhantom14: ['/Mixer/Phantom_1to4'],  
    137                 self.chkPhantom58: ['/Mixer/Phantom_5to8'],  
    138                 self.chkAC3: ['/Mixer/AC3pass'],  
    139                 self.chkMidiThru: ['/Mixer/MidiTru'],  
    140                 # The following controls are available but have no GUI elements yet 
     140                # control elements 
     141                self.chkInsert1: ['/Control/Insert1'],  
     142                self.chkInsert2: ['/Control/Insert2'],  
     143                self.chkPhantom14: ['/Control/Phantom_1to4'],  
     144                self.chkPhantom58: ['/Control/Phantom_5to8'],  
     145                self.chkAC3: ['/Control/AC3pass'],  
     146                self.chkMidiThru: ['/Control/MidiTru'],  
     147                self.chkHighVoltage: ['/Control/UseHighVoltageRail'],  
     148                # Mixer switches 
    141149                self.chkMute12: ['/Mixer/Out12Mute'], 
    142150                self.chkHwCtrl12: ['/Mixer/Out12HwCtrl'], 
     
    158166 
    159167            self.VolumeControlsLowRes={ 
    160                     #self.sldOut12Level:      ['/Mixer/Out12Level'], 
    161                     #self.sldOut34Level:      ['/Mixer/Out34Level'], 
    162                     #self.sldOut56Level:      ['/Mixer/Out56Level'], 
    163                     #self.sldOut78Level:      ['/Mixer/Out78Level'], 
    164                     } 
     168                self.sldOut12Level:      ['/Mixer/Out12Level'], 
     169                self.sldOut34Level:      ['/Mixer/Out34Level'], 
     170                self.sldOut56Level:      ['/Mixer/Out56Level'], 
     171                self.sldOut78Level:      ['/Mixer/Out78Level'], 
     172            } 
     173 
     174            self.TriggerButtonControls={ 
     175                self.btnReboot:      ['/Control/Reboot'], 
     176                self.btnIdentify:    ['/Control/FlashLed'], 
     177            } 
     178 
     179    def updateValues(self): 
     180        for ctrl, info in self.VolumeControls.iteritems(): 
     181            vol = self.hw.getMatrixMixerValue(self.VolumeControls[ctrl][0], 
     182                                                self.VolumeControls[ctrl][1], 
     183                                                self.VolumeControls[ctrl][2]) 
     184 
     185            print "%s volume is %d" % (ctrl.name() , 0x7FFF-vol) 
     186            ctrl.setValue(0x7FFF-vol) 
     187 
     188        for ctrl, info in self.VolumeControlsLowRes.iteritems(): 
     189            vol = self.hw.getDiscrete(self.VolumeControlsLowRes[ctrl][0]) 
     190 
     191            print "%s volume is %d" % (ctrl.name() , vol) 
     192            ctrl.setValue(vol) 
     193 
     194        for ctrl, info in self.SelectorControls.iteritems(): 
     195            state = self.hw.getDiscrete(self.SelectorControls[ctrl][0]) 
     196            print "%s state is %d" % (ctrl.name() , state) 
     197            if state: 
     198                ctrl.setChecked(True) 
     199            else: 
     200                ctrl.setChecked(False) 
     201 
     202        for ctrl, info in self.TriggerButtonControls.iteritems(): 
     203            pass 
    165204 
    166205    def initValues(self): 
    167             for ctrl, info in self.VolumeControls.iteritems(): 
    168                 vol = self.hw.getMatrixMixerValue(self.VolumeControls[ctrl][0], 
    169                                                   self.VolumeControls[ctrl][1], 
    170                                                   self.VolumeControls[ctrl][2]) 
    171  
    172                 print "%s volume is %d" % (ctrl.name() , 0x7FFF-vol) 
    173                 ctrl.setValue(0x7FFF-vol) 
    174  
    175                 # connect the UI element 
    176                 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateMatrixVolume) 
    177  
    178             for ctrl, info in self.VolumeControlsLowRes.iteritems(): 
    179                 vol = self.hw.getDiscrete(self.VolumeControlsLowRes[ctrl][0]) 
    180  
    181                 print "%s volume is %d" % (ctrl.name() , vol) 
    182                 ctrl.setValue(vol) 
    183  
    184                 # connect the UI element 
    185                 QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateLowResVolume) 
    186  
    187             for ctrl, info in self.SelectorControls.iteritems(): 
    188                 state = self.hw.getDiscrete(self.SelectorControls[ctrl][0]) 
    189                 print "%s state is %d" % (ctrl.name() , state) 
    190                 if state: 
    191                     ctrl.setChecked(True) 
    192                 else: 
    193                     ctrl.setChecked(False) 
    194  
    195                 # connect the UI element 
    196                 QObject.connect(ctrl,SIGNAL('stateChanged(int)'),self.updateSelector) 
     206        self.updateValues() 
     207        for ctrl, info in self.VolumeControls.iteritems(): 
     208            # connect the UI element 
     209            QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateMatrixVolume) 
     210 
     211        for ctrl, info in self.VolumeControlsLowRes.iteritems(): 
     212            # connect the UI element 
     213            QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateLowResVolume) 
     214 
     215        for ctrl, info in self.SelectorControls.iteritems(): 
     216            # connect the UI element 
     217            QObject.connect(ctrl,SIGNAL('stateChanged(int)'),self.updateSelector) 
     218 
     219        for ctrl, info in self.TriggerButtonControls.iteritems(): 
     220            # connect the UI element 
     221            QObject.connect(ctrl,SIGNAL('clicked()'),self.triggerButton) 
     222 
  • trunk/libffado/support/mixer/mixer_saffirepro.ui

    r682 r684  
    5353                    </property> 
    5454                    <attribute name="title"> 
    55                         <string>Analog</string> 
     55                        <string>A&amp;nalog</string> 
    5656                    </attribute> 
    5757                    <widget class="QSlider"> 
     
    13111311                    </property> 
    13121312                    <attribute name="title"> 
    1313                         <string>ADAT1</string> 
     1313                        <string>&amp;ADAT1</string> 
    13141314                    </attribute> 
    13151315                    <widget class="QSlider"> 
     
    33333333                <x>10</x> 
    33343334                <y>330</y> 
    3335                 <width>420</width> 
     3335                <width>520</width> 
    33363336                <height>380</height> 
    33373337            </rect> 
     
    33483348                    <x>10</x> 
    33493349                    <y>30</y> 
    3350                     <width>390</width> 
     3350                    <width>490</width> 
    33513351                    <height>340</height> 
    33523352                </rect> 
     
    33783378                    </property> 
    33793379                </widget> 
     3380                <widget class="QLabel"> 
     3381                    <property name="name"> 
     3382                        <cstring>txtOmixO1</cstring> 
     3383                    </property> 
     3384                    <property name="geometry"> 
     3385                        <rect> 
     3386                            <x>30</x> 
     3387                            <y>210</y> 
     3388                            <width>130</width> 
     3389                            <height>21</height> 
     3390                        </rect> 
     3391                    </property> 
     3392                    <property name="text"> 
     3393                        <string>Out1</string> 
     3394                    </property> 
     3395                    <property name="alignment"> 
     3396                        <set>AlignCenter</set> 
     3397                    </property> 
     3398                </widget> 
     3399                <widget class="QLabel"> 
     3400                    <property name="name"> 
     3401                        <cstring>txtOMixPC1O1</cstring> 
     3402                    </property> 
     3403                    <property name="geometry"> 
     3404                        <rect> 
     3405                            <x>30</x> 
     3406                            <y>10</y> 
     3407                            <width>30</width> 
     3408                            <height>21</height> 
     3409                        </rect> 
     3410                    </property> 
     3411                    <property name="text"> 
     3412                        <string>PC1</string> 
     3413                    </property> 
     3414                    <property name="alignment"> 
     3415                        <set>AlignCenter</set> 
     3416                    </property> 
     3417                </widget> 
     3418                <widget class="QLabel"> 
     3419                    <property name="name"> 
     3420                        <cstring>txtOMixIMixO1</cstring> 
     3421                    </property> 
     3422                    <property name="geometry"> 
     3423                        <rect> 
     3424                            <x>120</x> 
     3425                            <y>10</y> 
     3426                            <width>40</width> 
     3427                            <height>21</height> 
     3428                        </rect> 
     3429                    </property> 
     3430                    <property name="text"> 
     3431                        <string>IMixL</string> 
     3432                    </property> 
     3433                    <property name="alignment"> 
     3434                        <set>AlignCenter</set> 
     3435                    </property> 
     3436                </widget> 
     3437                <widget class="QSlider"> 
     3438                    <property name="name"> 
     3439                        <cstring>sldOMixPC2O2</cstring> 
     3440                    </property> 
     3441                    <property name="geometry"> 
     3442                        <rect> 
     3443                            <x>228</x> 
     3444                            <y>40</y> 
     3445                            <width>34</width> 
     3446                            <height>170</height> 
     3447                        </rect> 
     3448                    </property> 
     3449                    <property name="minValue"> 
     3450                        <number>0</number> 
     3451                    </property> 
     3452                    <property name="maxValue"> 
     3453                        <number>32767</number> 
     3454                    </property> 
     3455                    <property name="lineStep"> 
     3456                        <number>10000</number> 
     3457                    </property> 
     3458                    <property name="pageStep"> 
     3459                        <number>1000</number> 
     3460                    </property> 
     3461                    <property name="orientation"> 
     3462                        <enum>Vertical</enum> 
     3463                    </property> 
     3464                    <property name="tickmarks"> 
     3465                        <enum>Both</enum> 
     3466                    </property> 
     3467                    <property name="tickInterval"> 
     3468                        <number>10000</number> 
     3469                    </property> 
     3470                </widget> 
     3471                <widget class="QSlider"> 
     3472                    <property name="name"> 
     3473                        <cstring>sldOMixPC1O1</cstring> 
     3474                    </property> 
     3475                    <property name="geometry"> 
     3476                        <rect> 
     3477                            <x>30</x> 
     3478                            <y>40</y> 
     3479                            <width>34</width> 
     3480                            <height>170</height> 
     3481                        </rect> 
     3482                    </property> 
     3483                    <property name="minValue"> 
     3484                        <number>0</number> 
     3485                    </property> 
     3486                    <property name="maxValue"> 
     3487                        <number>32767</number> 
     3488                    </property> 
     3489                    <property name="lineStep"> 
     3490                        <number>10000</number> 
     3491                    </property> 
     3492                    <property name="pageStep"> 
     3493                        <number>1000</number> 
     3494                    </property> 
     3495                    <property name="orientation"> 
     3496                        <enum>Vertical</enum> 
     3497                    </property> 
     3498                    <property name="tickmarks"> 
     3499                        <enum>Both</enum> 
     3500                    </property> 
     3501                    <property name="tickInterval"> 
     3502                        <number>10000</number> 
     3503                    </property> 
     3504                </widget> 
     3505                <widget class="QLabel"> 
     3506                    <property name="name"> 
     3507                        <cstring>txtOMixIMixO2</cstring> 
     3508                    </property> 
     3509                    <property name="geometry"> 
     3510                        <rect> 
     3511                            <x>318</x> 
     3512                            <y>10</y> 
     3513                            <width>40</width> 
     3514                            <height>21</height> 
     3515                        </rect> 
     3516                    </property> 
     3517                    <property name="text"> 
     3518                        <string>IMixL</string> 
     3519                    </property> 
     3520                    <property name="alignment"> 
     3521                        <set>AlignCenter</set> 
     3522                    </property> 
     3523                </widget> 
     3524                <widget class="QSlider"> 
     3525                    <property name="name"> 
     3526                        <cstring>sldOMixIMixO1</cstring> 
     3527                    </property> 
     3528                    <property name="geometry"> 
     3529                        <rect> 
     3530                            <x>120</x> 
     3531                            <y>40</y> 
     3532                            <width>34</width> 
     3533                            <height>170</height> 
     3534                        </rect> 
     3535                    </property> 
     3536                    <property name="minValue"> 
     3537                        <number>0</number> 
     3538                    </property> 
     3539                    <property name="maxValue"> 
     3540                        <number>32767</number> 
     3541                    </property> 
     3542                    <property name="lineStep"> 
     3543                        <number>10000</number> 
     3544                    </property> 
     3545                    <property name="pageStep"> 
     3546                        <number>1000</number> 
     3547                    </property> 
     3548                    <property name="orientation"> 
     3549                        <enum>Vertical</enum> 
     3550                    </property> 
     3551                    <property name="tickmarks"> 
     3552                        <enum>Both</enum> 
     3553                    </property> 
     3554                    <property name="tickInterval"> 
     3555                        <number>10000</number> 
     3556                    </property> 
     3557                </widget> 
     3558                <widget class="QLabel"> 
     3559                    <property name="name"> 
     3560                        <cstring>txtOmixO2</cstring> 
     3561                    </property> 
     3562                    <property name="geometry"> 
     3563                        <rect> 
     3564                            <x>228</x> 
     3565                            <y>210</y> 
     3566                            <width>130</width> 
     3567                            <height>21</height> 
     3568                        </rect> 
     3569                    </property> 
     3570                    <property name="text"> 
     3571                        <string>Out2</string> 
     3572                    </property> 
     3573                    <property name="alignment"> 
     3574                        <set>AlignCenter</set> 
     3575                    </property> 
     3576                </widget> 
     3577                <widget class="QCheckBox"> 
     3578                    <property name="name"> 
     3579                        <cstring>chkPad12</cstring> 
     3580                    </property> 
     3581                    <property name="geometry"> 
     3582                        <rect> 
     3583                            <x>30</x> 
     3584                            <y>240</y> 
     3585                            <width>110</width> 
     3586                            <height>31</height> 
     3587                        </rect> 
     3588                    </property> 
     3589                    <property name="text"> 
     3590                        <string>&amp;Monitor Pad</string> 
     3591                    </property> 
     3592                </widget> 
     3593                <widget class="QCheckBox"> 
     3594                    <property name="name"> 
     3595                        <cstring>chkMute12</cstring> 
     3596                    </property> 
     3597                    <property name="geometry"> 
     3598                        <rect> 
     3599                            <x>30</x> 
     3600                            <y>270</y> 
     3601                            <width>101</width> 
     3602                            <height>31</height> 
     3603                        </rect> 
     3604                    </property> 
     3605                    <property name="text"> 
     3606                        <string>Mute</string> 
     3607                    </property> 
     3608                </widget> 
     3609                <widget class="QCheckBox"> 
     3610                    <property name="name"> 
     3611                        <cstring>chkDim12</cstring> 
     3612                    </property> 
     3613                    <property name="geometry"> 
     3614                        <rect> 
     3615                            <x>170</x> 
     3616                            <y>240</y> 
     3617                            <width>101</width> 
     3618                            <height>31</height> 
     3619                        </rect> 
     3620                    </property> 
     3621                    <property name="text"> 
     3622                        <string>&amp;Level Dim</string> 
     3623                    </property> 
     3624                </widget> 
     3625                <widget class="QCheckBox"> 
     3626                    <property name="name"> 
     3627                        <cstring>chkHwCtrl12</cstring> 
     3628                    </property> 
     3629                    <property name="geometry"> 
     3630                        <rect> 
     3631                            <x>170</x> 
     3632                            <y>270</y> 
     3633                            <width>190</width> 
     3634                            <height>31</height> 
     3635                        </rect> 
     3636                    </property> 
     3637                    <property name="text"> 
     3638                        <string>Front dial level control</string> 
     3639                    </property> 
     3640                </widget> 
    33803641                <widget class="QSlider"> 
    33813642                    <property name="name"> 
     
    34123673                    </property> 
    34133674                </widget> 
    3414                 <widget class="QLabel"> 
    3415                     <property name="name"> 
    3416                         <cstring>txtOmixO1</cstring> 
    3417                     </property> 
    3418                     <property name="geometry"> 
    3419                         <rect> 
    3420                             <x>30</x> 
    3421                             <y>210</y> 
    3422                             <width>130</width> 
    3423                             <height>21</height> 
    3424                         </rect> 
    3425                     </property> 
    3426                     <property name="text"> 
    3427                         <string>Out1</string> 
     3675                <widget class="QGroupBox"> 
     3676                    <property name="name"> 
     3677                        <cstring>groupLevel12</cstring> 
     3678                    </property> 
     3679                    <property name="geometry"> 
     3680                        <rect> 
     3681                            <x>400</x> 
     3682                            <y>10</y> 
     3683                            <width>71</width> 
     3684                            <height>211</height> 
     3685                        </rect> 
     3686                    </property> 
     3687                    <property name="title"> 
     3688                        <string>Level</string> 
    34283689                    </property> 
    34293690                    <property name="alignment"> 
    3430                         <set>AlignCenter</set> 
    3431                     </property> 
    3432                 </widget> 
    3433                 <widget class="QLabel"> 
    3434                     <property name="name"> 
    3435                         <cstring>txtOMixPC1O1</cstring> 
    3436                     </property> 
    3437                     <property name="geometry"> 
    3438                         <rect> 
    3439                             <x>30</x> 
    3440                             <y>10</y> 
    3441                             <width>30</width> 
    3442                             <height>21</height> 
    3443                         </rect> 
    3444                     </property> 
    3445                     <property name="text"> 
    3446                         <string>PC1</string> 
    3447                     </property> 
    3448                     <property name="alignment"> 
    3449                         <set>AlignCenter</set> 
    3450                     </property> 
    3451                 </widget> 
    3452                 <widget class="QLabel"> 
    3453                     <property name="name"> 
    3454                         <cstring>txtOMixIMixO1</cstring> 
    3455                     </property> 
    3456                     <property name="geometry"> 
    3457                         <rect> 
    3458                             <x>120</x> 
    3459                             <y>10</y> 
    3460                             <width>40</width> 
    3461                             <height>21</height> 
    3462                         </rect> 
    3463                     </property> 
    3464                     <property name="text"> 
    3465                         <string>IMixL</string> 
    3466                     </property> 
    3467                     <property name="alignment"> 
    3468                         <set>AlignCenter</set> 
    3469                     </property> 
    3470                 </widget> 
    3471                 <widget class="QSlider"> 
    3472                     <property name="name"> 
    3473                         <cstring>sldOMixPC2O2</cstring> 
    3474                     </property> 
    3475                     <property name="geometry"> 
    3476                         <rect> 
    3477                             <x>228</x> 
    3478                             <y>40</y> 
    3479                             <width>34</width> 
    3480                             <height>170</height> 
    3481                         </rect> 
    3482                     </property> 
    3483                     <property name="minValue"> 
    3484                         <number>0</number> 
    3485                     </property> 
    3486                     <property name="maxValue"> 
    3487                         <number>32767</number> 
    3488                     </property> 
    3489                     <property name="lineStep"> 
    3490                         <number>10000</number> 
    3491                     </property> 
    3492                     <property name="pageStep"> 
    3493                         <number>1000</number> 
    3494                     </property> 
    3495                     <property name="orientation"> 
    3496                         <enum>Vertical</enum> 
    3497                     </property> 
    3498                     <property name="tickmarks"> 
    3499                         <enum>Both</enum> 
    3500                     </property> 
    3501                     <property name="tickInterval"> 
    3502                         <number>10000</number> 
    3503                     </property> 
    3504                 </widget> 
    3505                 <widget class="QSlider"> 
    3506                     <property name="name"> 
    3507                         <cstring>sldOMixPC1O1</cstring> 
    3508                     </property> 
    3509                     <property name="geometry"> 
    3510                         <rect> 
    3511                             <x>30</x> 
    3512                             <y>40</y> 
    3513                             <width>34</width> 
    3514                             <height>170</height> 
    3515                         </rect> 
    3516                     </property> 
    3517                     <property name="minValue"> 
    3518                         <number>0</number> 
    3519                     </property> 
    3520                     <property name="maxValue"> 
    3521                         <number>32767</number> 
    3522                     </property> 
    3523                     <property name="lineStep"> 
    3524                         <number>10000</number> 
    3525                     </property> 
    3526                     <property name="pageStep"> 
    3527                         <number>1000</number> 
    3528                     </property> 
    3529                     <property name="orientation"> 
    3530                         <enum>Vertical</enum> 
    3531                     </property> 
    3532                     <property name="tickmarks"> 
    3533                         <enum>Both</enum> 
    3534                     </property> 
    3535                     <property name="tickInterval"> 
    3536                         <number>10000</number> 
    3537                     </property> 
    3538                 </widget> 
    3539                 <widget class="QLabel"> 
    3540                     <property name="name"> 
    3541                         <cstring>txtOMixIMixO2</cstring> 
    3542                     </property> 
    3543                     <property name="geometry"> 
    3544                         <rect> 
    3545                             <x>318</x> 
    3546                             <y>10</y> 
    3547                             <width>40</width> 
    3548                             <height>21</height> 
    3549                         </rect> 
    3550                     </property> 
    3551                     <property name="text"> 
    3552                         <string>IMixL</string> 
    3553                     </property> 
    3554                     <property name="alignment"> 
    3555                         <set>AlignCenter</set> 
    3556                     </property> 
    3557                 </widget> 
    3558                 <widget class="QSlider"> 
    3559                     <property name="name"> 
    3560                         <cstring>sldOMixIMixO1</cstring> 
    3561                     </property> 
    3562                     <property name="geometry"> 
    3563                         <rect> 
    3564                             <x>120</x> 
    3565                             <y>40</y> 
    3566                             <width>34</width> 
    3567                             <height>170</height> 
    3568                         </rect> 
    3569                     </property> 
    3570                     <property name="minValue"> 
    3571                         <number>0</number> 
    3572                     </property> 
    3573                     <property name="maxValue"> 
    3574                         <number>32767</number> 
    3575                     </property> 
    3576                     <property name="lineStep"> 
    3577                         <number>10000</number> 
    3578                     </property> 
    3579                     <property name="pageStep"> 
    3580                         <number>1000</number> 
    3581                     </property> 
    3582                     <property name="orientation"> 
    3583                         <enum>Vertical</enum> 
    3584                     </property> 
    3585                     <property name="tickmarks"> 
    3586                         <enum>Both</enum> 
    3587                     </property> 
    3588                     <property name="tickInterval"> 
    3589                         <number>10000</number> 
    3590                     </property> 
    3591                 </widget> 
    3592                 <widget class="QLabel"> 
    3593                     <property name="name"> 
    3594                         <cstring>txtOmixO2</cstring> 
    3595                     </property> 
    3596                     <property name="geometry"> 
    3597                         <rect> 
    3598                             <x>228</x> 
    3599                             <y>210</y> 
    3600                             <width>130</width> 
    3601                             <height>21</height> 
    3602                         </rect> 
    3603                     </property> 
    3604                     <property name="text"> 
    3605                         <string>Out2</string> 
    3606                     </property> 
    3607                     <property name="alignment"> 
    3608                         <set>AlignCenter</set> 
    3609                     </property> 
    3610                 </widget> 
    3611                 <widget class="QCheckBox"> 
    3612                     <property name="name"> 
    3613                         <cstring>chkPad12</cstring> 
    3614                     </property> 
    3615                     <property name="geometry"> 
    3616                         <rect> 
    3617                             <x>30</x> 
    3618                             <y>240</y> 
    3619                             <width>110</width> 
    3620                             <height>31</height> 
    3621                         </rect> 
    3622                     </property> 
    3623                     <property name="text"> 
    3624                         <string>Monitor Pad</string> 
    3625                     </property> 
    3626                 </widget> 
    3627                 <widget class="QCheckBox"> 
    3628                     <property name="name"> 
    3629                         <cstring>chkMute12</cstring> 
    3630                     </property> 
    3631                     <property name="geometry"> 
    3632                         <rect> 
    3633                             <x>30</x> 
    3634                             <y>270</y> 
    3635                             <width>101</width> 
    3636                             <height>31</height> 
    3637                         </rect> 
    3638                     </property> 
    3639                     <property name="text"> 
    3640                         <string>Mute</string> 
    3641                     </property> 
    3642                 </widget> 
    3643                 <widget class="QCheckBox"> 
    3644                     <property name="name"> 
    3645                         <cstring>chkDim12</cstring> 
    3646                     </property> 
    3647                     <property name="geometry"> 
    3648                         <rect> 
    3649                             <x>170</x> 
    3650                             <y>240</y> 
    3651                             <width>101</width> 
    3652                             <height>31</height> 
    3653                         </rect> 
    3654                     </property> 
    3655                     <property name="text"> 
    3656                         <string>Level Dim</string> 
    3657                     </property> 
    3658                 </widget> 
    3659                 <widget class="QCheckBox"> 
    3660                     <property name="name"> 
    3661                         <cstring>chkHwCtrl12</cstring> 
    3662                     </property> 
    3663                     <property name="geometry"> 
    3664                         <rect> 
    3665                             <x>170</x> 
    3666                             <y>270</y> 
    3667                             <width>190</width> 
    3668                             <height>31</height> 
    3669                         </rect> 
    3670                     </property> 
    3671                     <property name="text"> 
    3672                         <string>Front dial level control</string> 
    3673                     </property> 
     3691                        <set>AlignHCenter</set> 
     3692                    </property> 
     3693                    <widget class="QSlider"> 
     3694                        <property name="name"> 
     3695                            <cstring>sldOut12Level</cstring> 
     3696                        </property> 
     3697                        <property name="geometry"> 
     3698                            <rect> 
     3699                                <x>10</x> 
     3700                                <y>30</y> 
     3701                                <width>50</width> 
     3702                                <height>170</height> 
     3703                            </rect> 
     3704                        </property> 
     3705                        <property name="minValue"> 
     3706                            <number>0</number> 
     3707                        </property> 
     3708                        <property name="maxValue"> 
     3709                            <number>255</number> 
     3710                        </property> 
     3711                        <property name="lineStep"> 
     3712                            <number>2</number> 
     3713                        </property> 
     3714                        <property name="pageStep"> 
     3715                            <number>16</number> 
     3716                        </property> 
     3717                        <property name="orientation"> 
     3718                            <enum>Vertical</enum> 
     3719                        </property> 
     3720                        <property name="tickmarks"> 
     3721                            <enum>Both</enum> 
     3722                        </property> 
     3723                        <property name="tickInterval"> 
     3724                            <number>32</number> 
     3725                        </property> 
     3726                    </widget> 
    36743727                </widget> 
    36753728            </widget> 
     
    41014154                    </property> 
    41024155                </widget> 
     4156                <widget class="QGroupBox"> 
     4157                    <property name="name"> 
     4158                        <cstring>groupLevel34</cstring> 
     4159                    </property> 
     4160                    <property name="geometry"> 
     4161                        <rect> 
     4162                            <x>400</x> 
     4163                            <y>10</y> 
     4164                            <width>71</width> 
     4165                            <height>211</height> 
     4166                        </rect> 
     4167                    </property> 
     4168                    <property name="title"> 
     4169                        <string>Level</string> 
     4170                    </property> 
     4171                    <property name="alignment"> 
     4172                        <set>AlignHCenter</set> 
     4173                    </property> 
     4174                    <widget class="QSlider"> 
     4175                        <property name="name"> 
     4176                            <cstring>sldOut34Level</cstring> 
     4177                        </property> 
     4178                        <property name="geometry"> 
     4179                            <rect> 
     4180                                <x>10</x> 
     4181                                <y>30</y> 
     4182                                <width>50</width> 
     4183                                <height>170</height> 
     4184                            </rect> 
     4185                        </property> 
     4186                        <property name="minValue"> 
     4187                            <number>0</number> 
     4188                        </property> 
     4189                        <property name="maxValue"> 
     4190                            <number>255</number> 
     4191                        </property> 
     4192                        <property name="lineStep"> 
     4193                            <number>2</number> 
     4194                        </property> 
     4195                        <property name="pageStep"> 
     4196                            <number>16</number> 
     4197                        </property> 
     4198                        <property name="orientation"> 
     4199                            <enum>Vertical</enum> 
     4200                        </property> 
     4201                        <property name="tickmarks"> 
     4202                            <enum>Both</enum> 
     4203                        </property> 
     4204                        <property name="tickInterval"> 
     4205                            <number>32</number> 
     4206                        </property> 
     4207                    </widget> 
     4208                </widget> 
    41034209            </widget> 
    41044210            <widget class="QWidget"> 
     
    44784584                    </property> 
    44794585                    <property name="text"> 
    4480                         <string>Monitor Pad</string> 
     4586                        <string>&amp;Monitor Pad</string> 
    44814587                    </property> 
    44824588                </widget> 
     
    45284634                        <string>Front dial level control</string> 
    45294635                    </property> 
     4636                </widget> 
     4637                <widget class="QGroupBox"> 
     4638                    <property name="name"> 
     4639                        <cstring>groupLevel56</cstring> 
     4640                    </property> 
     4641                    <property name="geometry"> 
     4642                        <rect> 
     4643                            <x>400</x> 
     4644                            <y>10</y> 
     4645                            <width>71</width> 
     4646                            <height>211</height> 
     4647                        </rect> 
     4648                    </property> 
     4649                    <property name="title"> 
     4650                        <string>Level</string> 
     4651                    </property> 
     4652                    <property name="alignment"> 
     4653                        <set>AlignHCenter</set> 
     4654                    </property> 
     4655                    <widget class="QSlider"> 
     4656                        <property name="name"> 
     4657                            <cstring>sldOut56Level</cstring> 
     4658                        </property> 
     4659                        <property name="geometry"> 
     4660                            <rect> 
     4661                                <x>10</x> 
     4662                                <y>30</y> 
     4663                                <width>50</width> 
     4664                                <height>170</height> 
     4665                            </rect> 
     4666                        </property> 
     4667                        <property name="minValue"> 
     4668                            <number>0</number> 
     4669                        </property> 
     4670                        <property name="maxValue"> 
     4671                            <number>255</number> 
     4672                        </property> 
     4673                        <property name="lineStep"> 
     4674                            <number>2</number> 
     4675                        </property> 
     4676                        <property name="pageStep"> 
     4677                            <number>16</number> 
     4678                        </property> 
     4679                        <property name="orientation"> 
     4680                            <enum>Vertical</enum> 
     4681                        </property> 
     4682                        <property name="tickmarks"> 
     4683                            <enum>Both</enum> 
     4684                        </property> 
     4685                        <property name="tickInterval"> 
     4686                            <number>32</number> 
     4687                        </property> 
     4688                    </widget> 
    45304689                </widget> 
    45314690            </widget> 
     
    49065065                    </property> 
    49075066                    <property name="text"> 
    4908                         <string>Monitor Pad</string> 
     5067                        <string>&amp;Monitor Pad</string> 
    49095068                    </property> 
    49105069                </widget> 
     
    49565115                        <string>Front dial level control</string> 
    49575116                    </property> 
     5117                </widget> 
     5118                <widget class="QGroupBox"> 
     5119                    <property name="name"> 
     5120                        <cstring>groupLevel78</cstring> 
     5121                    </property> 
     5122                    <property name="geometry"> 
     5123                        <rect> 
     5124                            <x>400</x> 
     5125                            <y>10</y> 
     5126                            <width>71</width> 
     5127                            <height>211</height> 
     5128                        </rect> 
     5129                    </property> 
     5130                    <property name="title"> 
     5131                        <string>Level</string> 
     5132                    </property> 
     5133                    <property name="alignment"> 
     5134                        <set>AlignHCenter</set> 
     5135                    </property> 
     5136                    <widget class="QSlider"> 
     5137                        <property name="name"> 
     5138                            <cstring>sldOut78Level</cstring> 
     5139                        </property> 
     5140                        <property name="geometry"> 
     5141                            <rect> 
     5142                                <x>10</x> 
     5143                                <y>30</y> 
     5144                                <width>50</width> 
     5145                                <height>170</height> 
     5146                            </rect> 
     5147                        </property> 
     5148                        <property name="minValue"> 
     5149                            <number>0</number> 
     5150                        </property> 
     5151                        <property name="maxValue"> 
     5152                            <number>255</number> 
     5153                        </property> 
     5154                        <property name="lineStep"> 
     5155                            <number>2</number> 
     5156                        </property> 
     5157                        <property name="pageStep"> 
     5158                            <number>16</number> 
     5159                        </property> 
     5160                        <property name="orientation"> 
     5161                            <enum>Vertical</enum> 
     5162                        </property> 
     5163                        <property name="tickmarks"> 
     5164                            <enum>Both</enum> 
     5165                        </property> 
     5166                        <property name="tickInterval"> 
     5167                            <number>32</number> 
     5168                        </property> 
     5169                    </widget> 
    49585170                </widget> 
    49595171            </widget> 
     
    53305542        <property name="geometry"> 
    53315543            <rect> 
    5332                 <x>440</x> 
     5544                <x>541</x> 
    53335545                <y>330</y> 
    5334                 <width>411</width> 
     5546                <width>310</width> 
    53355547                <height>380</height> 
    53365548            </rect> 
     
    53415553        <widget class="QCheckBox"> 
    53425554            <property name="name"> 
    5343                 <cstring>chkPhantom58</cstring> 
     5555                <cstring>chkPhantom14</cstring> 
    53445556            </property> 
    53455557            <property name="geometry"> 
    53465558                <rect> 
    53475559                    <x>20</x> 
    5348                     <y>60</y> 
    5349                     <width>321</width> 
     5560                    <y>30</y> 
     5561                    <width>240</width> 
    53505562                    <height>31</height> 
    53515563                </rect> 
    53525564            </property> 
    53535565            <property name="text"> 
    5354                 <string>Phantom Power on Input &amp;5-8</string> 
     5566                <string>Phantom Power on Input 1-4</string> 
    53555567            </property> 
    53565568        </widget> 
     
    53635575                    <x>20</x> 
    53645576                    <y>90</y> 
    5365                     <width>321</width> 
     5577                    <width>230</width> 
    53665578                    <height>31</height> 
    53675579                </rect> 
     
    53795591                    <x>20</x> 
    53805592                    <y>120</y> 
    5381                     <width>321</width> 
     5593                    <width>230</width> 
    53825594                    <height>31</height> 
    53835595                </rect> 
     
    53955607                    <x>20</x> 
    53965608                    <y>150</y> 
    5397                     <width>321</width> 
     5609                    <width>230</width> 
    53985610                    <height>31</height> 
    53995611                </rect> 
     
    54015613            <property name="text"> 
    54025614                <string>AC&amp;3 Passthrough</string> 
     5615            </property> 
     5616            <property name="accel"> 
     5617                <string>Alt+3</string> 
     5618            </property> 
     5619        </widget> 
     5620        <widget class="QPushButton"> 
     5621            <property name="name"> 
     5622                <cstring>btnIdentify</cstring> 
     5623            </property> 
     5624            <property name="geometry"> 
     5625                <rect> 
     5626                    <x>10</x> 
     5627                    <y>300</y> 
     5628                    <width>150</width> 
     5629                    <height>31</height> 
     5630                </rect> 
     5631            </property> 
     5632            <property name="text"> 
     5633                <string>Identify Device</string> 
     5634            </property> 
     5635            <property name="accel"> 
     5636                <string></string> 
     5637            </property> 
     5638        </widget> 
     5639        <widget class="QPushButton"> 
     5640            <property name="name"> 
     5641                <cstring>btnReboot</cstring> 
     5642            </property> 
     5643            <property name="geometry"> 
     5644                <rect> 
     5645                    <x>10</x> 
     5646                    <y>340</y> 
     5647                    <width>150</width> 
     5648                    <height>31</height> 
     5649                </rect> 
     5650            </property> 
     5651            <property name="text"> 
     5652                <string>Re&amp;boot Device</string> 
     5653            </property> 
     5654            <property name="accel"> 
     5655                <string>Alt+B</string> 
     5656            </property> 
     5657        </widget> 
     5658        <widget class="QPushButton"> 
     5659            <property name="name"> 
     5660                <cstring>btnRefresh</cstring> 
     5661            </property> 
     5662            <property name="geometry"> 
     5663                <rect> 
     5664                    <x>219</x> 
     5665                    <y>340</y> 
     5666                    <width>80</width> 
     5667                    <height>31</height> 
     5668                </rect> 
     5669            </property> 
     5670            <property name="text"> 
     5671                <string>Refresh</string> 
     5672            </property> 
     5673            <property name="accel"> 
     5674                <string></string> 
    54035675            </property> 
    54045676        </widget> 
     
    54115683                    <x>20</x> 
    54125684                    <y>180</y> 
    5413                     <width>321</width> 
     5685                    <width>230</width> 
    54145686                    <height>31</height> 
    54155687                </rect> 
    54165688            </property> 
    54175689            <property name="text"> 
    5418                 <string>MIDI Thru</string> 
     5690                <string>&amp;MIDI Thru</string> 
     5691            </property> 
     5692            <property name="accel"> 
     5693                <string>Alt+M</string> 
    54195694            </property> 
    54205695        </widget> 
    54215696        <widget class="QCheckBox"> 
    54225697            <property name="name"> 
    5423                 <cstring>chkPhantom14</cstring> 
     5698                <cstring>chkHighVoltage</cstring> 
    54245699            </property> 
    54255700            <property name="geometry"> 
    54265701                <rect> 
    54275702                    <x>20</x> 
    5428                     <y>30</y> 
    5429                     <width>321</width> 
     5703                    <y>210</y> 
     5704                    <width>230</width> 
    54305705                    <height>31</height> 
    54315706                </rect> 
    54325707            </property> 
    54335708            <property name="text"> 
    5434                 <string>Phantom Power on Input 1-4</string> 
     5709                <string>Use high voltage supply</string> 
     5710            </property> 
     5711            <property name="accel"> 
     5712                <string></string> 
     5713            </property> 
     5714        </widget> 
     5715        <widget class="QCheckBox"> 
     5716            <property name="name"> 
     5717                <cstring>chkPhantom58</cstring> 
     5718            </property> 
     5719            <property name="geometry"> 
     5720                <rect> 
     5721                    <x>20</x> 
     5722                    <y>60</y> 
     5723                    <width>240</width> 
     5724                    <height>31</height> 
     5725                </rect> 
     5726            </property> 
     5727            <property name="text"> 
     5728                <string>Phantom Power on Input &amp;5-8</string> 
     5729            </property> 
     5730            <property name="accel"> 
     5731                <string>Alt+5</string> 
    54355732            </property> 
    54365733        </widget> 
    54375734    </widget> 
    54385735</widget> 
     5736<connections> 
     5737    <connection> 
     5738        <sender>btnRefresh</sender> 
     5739        <signal>clicked()</signal> 
     5740        <receiver>SaffireProMixerUI</receiver> 
     5741        <slot>updateValues()</slot> 
     5742    </connection> 
     5743</connections> 
    54395744<slots> 
    54405745    <slot>init()</slot> 
     5746    <slot>updateValues()</slot> 
    54415747</slots> 
    54425748<layoutdefaults spacing="6" margin="11"/>