Changeset 973

Show
Ignore:
Timestamp:
03/23/08 10:35:01 (16 years ago)
Author:
ppalmers
Message:

make quatafire mixer more useful

Files:

Legend:

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

    r864 r973  
    218218MixerFBFeature::setValue(double v) 
    219219{ 
     220    return setValue(0, v); 
     221} 
     222 
     223bool 
     224MixerFBFeature::setValue(int idx, double v) 
     225{ 
    220226    int volume=(int)v; 
    221227    debugOutput(DEBUG_LEVEL_NORMAL,"Set feature volume %d to %d...\n", 
     
    229235    fbCmd.setSubunitId( 0x00 ); 
    230236    fbCmd.setCommandType( AVCCommand::eCT_Control ); 
    231     fbCmd.m_pFBFeature->m_audioChannelNumber=0; // m_channel 
     237    fbCmd.m_pFBFeature->m_audioChannelNumber=idx; // m_channel 
    232238    fbCmd.m_pFBFeature->m_controlSelector=FunctionBlockFeature::eCSE_Feature_Volume; 
    233239    fbCmd.m_pFBFeature->m_pVolume->m_volume=volume; 
     
    253259double 
    254260MixerFBFeature::getValue() 
     261{ 
     262    return getValue(0); 
     263} 
     264 
     265double 
     266MixerFBFeature::getValue(int idx) 
    255267{ 
    256268    debugOutput(DEBUG_LEVEL_NORMAL,"Get feature volume %d...\n", 
     
    264276    fbCmd.setSubunitId( 0x00 ); 
    265277    fbCmd.setCommandType( AVCCommand::eCT_Status ); 
    266     fbCmd.m_pFBFeature->m_audioChannelNumber=0
     278    fbCmd.m_pFBFeature->m_audioChannelNumber=idx
    267279    fbCmd.m_pFBFeature->m_controlSelector=FunctionBlockFeature::eCSE_Feature_Volume; // FIXME 
    268280    fbCmd.m_pFBFeature->m_pVolume->m_volume=0; 
  • trunk/libffado/src/bebob/bebob_mixer.h

    r864 r973  
    7474public: 
    7575    MixerFBFeature(Mixer& parent, FunctionBlockFeature&); 
    76      
     76 
    7777    virtual bool setValue(double v); 
    7878    virtual double getValue(); 
    79      
     79    virtual bool setValue(int idx, double v); 
     80    virtual double getValue(int idx); 
     81 
    8082private: 
    8183    Mixer&                  m_Parent; 
     
    8890public: 
    8991    EnhancedMixerFBFeature(Mixer& parent, FunctionBlockEnhancedMixer&); 
    90      
     92 
    9193    virtual bool setValue(double v); 
    9294    virtual double getValue(); 
    93      
     95 
    9496private: 
    9597    Mixer&                      m_Parent; 
     
    102104public: 
    103105    MixerFBSelector(Mixer& parent, FunctionBlockSelector&); 
    104      
     106 
    105107    virtual bool setValue(int v); 
    106108    virtual int getValue(); 
    107      
     109 
    108110private: 
    109111    Mixer&                  m_Parent; 
  • trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp

    r965 r973  
    476476double FocusriteMatrixMixer::setValue( const int row, const int col, const double val ) 
    477477{ 
    478     int32_t v=val; 
    479     struct sCellInfo c=m_CellInfo.at(row).at(col); 
     478    int32_t v = (int32_t)val; 
     479    struct sCellInfo c = m_CellInfo.at(row).at(col); 
    480480 
    481481    debugOutput(DEBUG_LEVEL_VERBOSE, "setValue for id %d row %d col %d to %lf (%ld)\n",  
  • trunk/libffado/src/libcontrol/BasicElements.cpp

    r958 r973  
    5050    debugOutput( DEBUG_LEVEL_VERBOSE, "%s setValue(%lf)\n", 
    5151        getName().c_str(), v); 
    52      
    5352    m_Value=v; 
    5453    return true; 
     
    6059    debugOutput( DEBUG_LEVEL_VERBOSE, "%s getValue()=%lf\n", 
    6160        getName().c_str(), m_Value); 
    62      
    6361    return m_Value; 
     62} 
     63 
     64bool 
     65Continuous::setValue(int idx, double v) 
     66{ 
     67    debugOutput( DEBUG_LEVEL_VERBOSE, "%s setValue(%d, %lf)\n", 
     68        getName().c_str(), idx, v); 
     69    return setValue(v); 
     70} 
     71 
     72double 
     73Continuous::getValue(int idx) 
     74{ 
     75    double retval = getValue(); 
     76    debugOutput( DEBUG_LEVEL_VERBOSE, "%s getValue()=%lf\n", 
     77        getName().c_str(), retval); 
     78    return retval; 
    6479} 
    6580 
     
    90105    debugOutput( DEBUG_LEVEL_VERBOSE, "%s setValue(%d)\n", 
    91106        getName().c_str(), v); 
    92      
    93107    m_Value=v; 
    94108    return true; 
     
    100114    debugOutput( DEBUG_LEVEL_VERBOSE, "%s getValue()=%d\n", 
    101115        getName().c_str(), m_Value); 
    102      
    103116    return m_Value; 
     117} 
     118bool 
     119Discrete::setValue(int idx, int v) 
     120{ 
     121    debugOutput( DEBUG_LEVEL_VERBOSE, "%s setValue(%d, %d)\n", 
     122        getName().c_str(), idx, v); 
     123    return setValue(v); 
     124} 
     125 
     126int 
     127Discrete::getValue(int idx) 
     128{ 
     129    int retval = getValue(); 
     130    debugOutput( DEBUG_LEVEL_VERBOSE, "%s getValue()=%d\n", 
     131        getName().c_str(), retval); 
     132    return retval; 
    104133} 
    105134 
  • trunk/libffado/src/libcontrol/BasicElements.h

    r965 r973  
    4747    virtual bool setValue(double v); 
    4848    virtual double getValue(); 
     49    virtual bool setValue(int idx, double v); 
     50    virtual double getValue(int idx); 
    4951 
    5052    virtual void show(); 
     
    6769    virtual bool setValue(int v); 
    6870    virtual int getValue(); 
     71    virtual bool setValue(int idx, int v); 
     72    virtual int getValue(int idx); 
    6973 
    7074    virtual void show(); 
  • trunk/libffado/support/dbus/control-interface.xml

    r965 r973  
    5353          <arg type="d" name="value" direction="out"/> 
    5454      </method> 
     55      <method name="setValueIdx"> 
     56          <arg type="i" name="idx" direction="in"/> 
     57          <arg type="d" name="value" direction="in"/> 
     58          <arg type="d" name="value" direction="out"/> 
     59      </method> 
     60      <method name="getValueIdx"> 
     61          <arg type="i" name="idx" direction="in"/> 
     62          <arg type="d" name="value" direction="out"/> 
     63      </method> 
    5564  </interface> 
    5665 
     
    6170      </method> 
    6271      <method name="getValue"> 
     72          <arg type="i" name="value" direction="out"/> 
     73      </method> 
     74      <method name="setValueIdx"> 
     75          <arg type="i" name="idx" direction="in"/> 
     76          <arg type="i" name="value" direction="in"/> 
     77          <arg type="i" name="value" direction="out"/> 
     78      </method> 
     79      <method name="getValueIdx"> 
     80          <arg type="i" name="idx" direction="in"/> 
    6381          <arg type="i" name="value" direction="out"/> 
    6482      </method> 
  • trunk/libffado/support/dbus/controlserver.cpp

    r965 r973  
    219219} 
    220220 
     221DBus::Double 
     222Continuous::setValueIdx( const DBus::Int32 & idx, const DBus::Double& value ) 
     223{ 
     224    m_Slave.setValue(idx, value); 
     225/*     
     226    SleepRelativeUsec(1000*500); 
     227     
     228    debugOutput( DEBUG_LEVEL_VERBOSE, "setValue(%lf) => %lf\n", value, m_Slave.getValue() ); 
     229     
     230    return m_Slave.getValue();*/ 
     231    return value; 
     232} 
     233 
     234DBus::Double 
     235Continuous::getValueIdx( const DBus::Int32 & idx ) 
     236{ 
     237    double val = m_Slave.getValue(idx); 
     238    debugOutput( DEBUG_LEVEL_VERBOSE, "getValue(%d) => %lf\n", idx, val ); 
     239    return val; 
     240} 
     241 
    221242// --- Discrete 
    222243 
     
    249270} 
    250271 
     272DBus::Int32 
     273Discrete::setValueIdx( const DBus::Int32& idx, const DBus::Int32& value ) 
     274{ 
     275    m_Slave.setValue(idx, value); 
     276     
     277/*    SleepRelativeUsec(1000*500); 
     278    debugOutput( DEBUG_LEVEL_VERBOSE, "setValue(%d) => %d\n", value, m_Slave.getValue() ); 
     279     
     280    return m_Slave.getValue();*/ 
     281    return value; 
     282} 
     283 
     284DBus::Int32 
     285Discrete::getValueIdx( const DBus::Int32& idx ) 
     286{ 
     287    int32_t val = m_Slave.getValue(idx); 
     288    debugOutput( DEBUG_LEVEL_VERBOSE, "getValue(%d) => %d\n", idx, val ); 
     289    return val; 
     290} 
     291 
    251292// --- Text 
    252293 
  • trunk/libffado/support/dbus/controlserver.h

    r965 r973  
    9797    DBus::Double setValue( const DBus::Double & value ); 
    9898    DBus::Double getValue( ); 
     99    DBus::Double setValueIdx( const DBus::Int32 & idx, 
     100                              const DBus::Double & value ); 
     101    DBus::Double getValueIdx( const DBus::Int32 & idx ); 
    99102 
    100103private: 
     
    113116    DBus::Int32 setValue( const DBus::Int32 & value ); 
    114117    DBus::Int32 getValue( ); 
     118    DBus::Int32 setValueIdx( const DBus::Int32 & idx, 
     119                             const DBus::Int32 & value ); 
     120    DBus::Int32 getValueIdx( const DBus::Int32 & idx ); 
    115121 
    116122private: 
  • trunk/libffado/support/mixer/ffadomixer.in

    r971 r973  
    6363        self.bus=dbus.SessionBus() 
    6464 
    65     def setContignuous(self, subpath, v): 
     65    def setContignuous(self, subpath, v, idx=None): 
    6666        try: 
    6767            path = self.basepath + subpath 
    6868            dev = self.bus.get_object(self.servername, path) 
    6969            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Continuous') 
    70             dev_cont.setValue(v) 
     70            if idx == None: 
     71                dev_cont.setValue(v) 
     72            else: 
     73                dev_cont.setValueIdx(idx,v) 
    7174        except: 
    7275            print "Failed to set Continuous %s on server %s" % (path, self.servername) 
    7376 
    74     def getContignuous(self, subpath): 
     77    def getContignuous(self, subpath, idx=None): 
    7578        try: 
    7679            path = self.basepath + subpath 
    7780            dev = self.bus.get_object(self.servername, path) 
    7881            dev_cont = dbus.Interface(dev, dbus_interface='org.ffado.Control.Element.Continuous') 
    79             return dev_cont.getValue() 
     82            if idx == None: 
     83                return dev_cont.getValue() 
     84            else: 
     85                return dev_cont.getValueIdx(idx) 
    8086        except: 
    8187            print "Failed to get Continuous %s on server %s" % (path, self.servername) 
  • trunk/libffado/support/mixer/mixer_quatafire.py

    r971 r973  
    3232 
    3333            self.VolumeControls={ 
    34                     self.sldFeature1: ['/Mixer/Feature_1'], 
    35                     self.sldFeature2: ['/Mixer/Feature_2'], 
    36                     self.sldFeature3: ['/Mixer/Feature_3'], 
    37                     self.sldFeature4: ['/Mixer/Feature_4'], 
     34                    self.sldCh1: ['/Mixer/Feature_1', 1], 
     35                    self.sldCh2: ['/Mixer/Feature_1', 2], 
     36                    self.sldCh34: ['/Mixer/Feature_2', 0], 
     37                    self.sldCh56: ['/Mixer/Feature_3', 0], 
     38                    self.sldDawAll: ['/Mixer/Feature_4', 0], 
     39                    self.sldDawCH1: ['/Mixer/Feature_4', 1], 
     40                    self.sldDawCH2: ['/Mixer/Feature_4', 2], 
     41                    self.sldDawCH3: ['/Mixer/Feature_4', 3], 
     42                    self.sldDawCH4: ['/Mixer/Feature_4', 4], 
     43                    self.sldDawCH5: ['/Mixer/Feature_4', 5], 
     44                    self.sldDawCH6: ['/Mixer/Feature_4', 6], 
     45                    self.sldDawCH7: ['/Mixer/Feature_4', 7], 
     46                    self.sldDawCH8: ['/Mixer/Feature_4', 8], 
     47                    } 
     48            self.PanControls={ 
     49                    self.dialCh1: ['/Mixer/Feature_1'], 
     50                    self.dialCh2: ['/Mixer/Feature_1'], 
     51                    self.dialCh34: ['/Mixer/Feature_2'], 
     52                    self.dialCh56: ['/Mixer/Feature_3'], 
    3853                    } 
    3954 
     
    4257        vol = -a0 
    4358        print "setting %s volume to %d" % (self.VolumeControls[sender][0], vol) 
    44         self.hw.setContignuous(self.VolumeControls[sender][0], vol) 
     59        self.hw.setContignuous(self.VolumeControls[sender][0], vol, self.VolumeControls[sender][1]) 
     60         
     61    def updatePan(self,a0): 
     62        sender = self.sender() 
     63        pan_left = -a0 
     64        if pan_left < 0: 
     65            pan_left = 0 
     66 
     67        pan_right = a0 
     68        if pan_right < 0: 
     69            pan_right = 0 
     70 
     71        print "setting %s pan left to %d" % (self.PanControls[sender][0], -pan_left) 
     72        self.hw.setContignuous(self.PanControls[sender][0], -pan_left, 1) 
     73        print "setting %s pan right to %d" % (self.PanControls[sender][0], -pan_right) 
     74        self.hw.setContignuous(self.PanControls[sender][0], -pan_right, 2) 
    4575 
    4676    def initValues(self): 
    4777        for ctrl, info in self.VolumeControls.iteritems(): 
    48             vol = self.hw.getContignuous(self.VolumeControls[ctrl][0]
    49  
    50             print "%s volume is %d" % (ctrl.name() , 0x7FFF-vol) 
    51             ctrl.setValue(0x7FFF-vol) 
     78            vol = self.hw.getContignuous(self.VolumeControls[ctrl][0], self.VolumeControls[ctrl][1]
     79            val = -vol 
     80            print "%s volume is %d, set to %d" % (ctrl.name(), vol, val) 
     81            ctrl.setValue(val) 
    5282 
    5383            # connect the UI element 
    5484            QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updateVolume) 
    5585 
     86        for ctrl, info in self.PanControls.iteritems(): 
     87            pan_left = self.hw.getContignuous(self.PanControls[ctrl][0], 1) 
     88            pan_right = self.hw.getContignuous(self.PanControls[ctrl][0], 2) 
     89 
     90            print "%s pan left is %d" % (ctrl.name() , pan_left) 
     91            print "%s pan right is %d" % (ctrl.name() , pan_right) 
     92 
     93            if pan_left == 0: 
     94                ctrl.setValue(0x7FFF-pan_left) 
     95            else: 
     96                ctrl.setValue(-(0x7FFF-pan_right)) 
     97 
     98            # connect the UI element 
     99            QObject.connect(ctrl,SIGNAL('valueChanged(int)'),self.updatePan) 
     100 
  • trunk/libffado/support/mixer/mixer_quatafire.ui

    r971 r973  
    2626            <x>0</x> 
    2727            <y>0</y> 
    28             <width>247</width> 
    29             <height>397</height> 
     28            <width>805</width> 
     29            <height>360</height> 
    3030        </rect> 
    3131    </property> 
     
    3333        <string>ESI QuataFire610 Mixer</string> 
    3434    </property> 
    35     <widget class="QLabel"> 
     35    <widget class="QGroupBox"> 
    3636        <property name="name"> 
    37             <cstring>textLabel1</cstring> 
     37            <cstring>groupBox2</cstring> 
    3838        </property> 
    3939        <property name="geometry"> 
     
    4141                <x>10</x> 
    4242                <y>10</y> 
    43                 <width>201</width> 
    44                 <height>30</height> 
     43                <width>300</width> 
     44                <height>340</height> 
    4545            </rect> 
    4646        </property> 
    47         <property name="text"> 
    48             <string>Note: work-in-progress</string> 
     47        <property name="title"> 
     48            <string>Input Mix</string> 
    4949        </property> 
     50        <widget class="QSlider"> 
     51            <property name="name"> 
     52                <cstring>sldCh2</cstring> 
     53            </property> 
     54            <property name="geometry"> 
     55                <rect> 
     56                    <x>70</x> 
     57                    <y>90</y> 
     58                    <width>50</width> 
     59                    <height>200</height> 
     60                </rect> 
     61            </property> 
     62            <property name="minValue"> 
     63                <number>0</number> 
     64            </property> 
     65            <property name="maxValue"> 
     66                <number>32767</number> 
     67            </property> 
     68            <property name="lineStep"> 
     69                <number>10000</number> 
     70            </property> 
     71            <property name="pageStep"> 
     72                <number>1000</number> 
     73            </property> 
     74            <property name="orientation"> 
     75                <enum>Vertical</enum> 
     76            </property> 
     77            <property name="tickmarks"> 
     78                <enum>Both</enum> 
     79            </property> 
     80            <property name="tickInterval"> 
     81                <number>10000</number> 
     82            </property> 
     83        </widget> 
     84        <widget class="QDial"> 
     85            <property name="name"> 
     86                <cstring>dialCh56</cstring> 
     87            </property> 
     88            <property name="geometry"> 
     89                <rect> 
     90                    <x>230</x> 
     91                    <y>30</y> 
     92                    <width>50</width> 
     93                    <height>50</height> 
     94                </rect> 
     95            </property> 
     96            <property name="minValue"> 
     97                <number>-32768</number> 
     98            </property> 
     99            <property name="maxValue"> 
     100                <number>32768</number> 
     101            </property> 
     102            <property name="lineStep"> 
     103                <number>1000</number> 
     104            </property> 
     105            <property name="pageStep"> 
     106                <number>10000</number> 
     107            </property> 
     108        </widget> 
     109        <widget class="QLabel"> 
     110            <property name="name"> 
     111                <cstring>textLabel1_3</cstring> 
     112            </property> 
     113            <property name="geometry"> 
     114                <rect> 
     115                    <x>160</x> 
     116                    <y>300</y> 
     117                    <width>50</width> 
     118                    <height>23</height> 
     119                </rect> 
     120            </property> 
     121            <property name="text"> 
     122                <string>IN3/4</string> 
     123            </property> 
     124            <property name="alignment"> 
     125                <set>AlignCenter</set> 
     126            </property> 
     127        </widget> 
     128        <widget class="QSlider"> 
     129            <property name="name"> 
     130                <cstring>sldCh34</cstring> 
     131            </property> 
     132            <property name="geometry"> 
     133                <rect> 
     134                    <x>160</x> 
     135                    <y>90</y> 
     136                    <width>50</width> 
     137                    <height>200</height> 
     138                </rect> 
     139            </property> 
     140            <property name="minValue"> 
     141                <number>0</number> 
     142            </property> 
     143            <property name="maxValue"> 
     144                <number>32767</number> 
     145            </property> 
     146            <property name="lineStep"> 
     147                <number>10000</number> 
     148            </property> 
     149            <property name="pageStep"> 
     150                <number>1000</number> 
     151            </property> 
     152            <property name="orientation"> 
     153                <enum>Vertical</enum> 
     154            </property> 
     155            <property name="tickmarks"> 
     156                <enum>Both</enum> 
     157            </property> 
     158            <property name="tickInterval"> 
     159                <number>10000</number> 
     160            </property> 
     161        </widget> 
     162        <widget class="QLabel"> 
     163            <property name="name"> 
     164                <cstring>textLabel1_3_2</cstring> 
     165            </property> 
     166            <property name="geometry"> 
     167                <rect> 
     168                    <x>230</x> 
     169                    <y>300</y> 
     170                    <width>50</width> 
     171                    <height>23</height> 
     172                </rect> 
     173            </property> 
     174            <property name="text"> 
     175                <string>IN5/6</string> 
     176            </property> 
     177            <property name="alignment"> 
     178                <set>AlignCenter</set> 
     179            </property> 
     180        </widget> 
     181        <widget class="QSlider"> 
     182            <property name="name"> 
     183                <cstring>sldCh56</cstring> 
     184            </property> 
     185            <property name="geometry"> 
     186                <rect> 
     187                    <x>230</x> 
     188                    <y>90</y> 
     189                    <width>50</width> 
     190                    <height>200</height> 
     191                </rect> 
     192            </property> 
     193            <property name="minValue"> 
     194                <number>0</number> 
     195            </property> 
     196            <property name="maxValue"> 
     197                <number>32767</number> 
     198            </property> 
     199            <property name="lineStep"> 
     200                <number>10000</number> 
     201            </property> 
     202            <property name="pageStep"> 
     203                <number>1000</number> 
     204            </property> 
     205            <property name="orientation"> 
     206                <enum>Vertical</enum> 
     207            </property> 
     208            <property name="tickmarks"> 
     209                <enum>Both</enum> 
     210            </property> 
     211            <property name="tickInterval"> 
     212                <number>10000</number> 
     213            </property> 
     214        </widget> 
     215        <widget class="QDial"> 
     216            <property name="name"> 
     217                <cstring>dialCh1</cstring> 
     218            </property> 
     219            <property name="geometry"> 
     220                <rect> 
     221                    <x>10</x> 
     222                    <y>30</y> 
     223                    <width>50</width> 
     224                    <height>50</height> 
     225                </rect> 
     226            </property> 
     227            <property name="minValue"> 
     228                <number>-32768</number> 
     229            </property> 
     230            <property name="maxValue"> 
     231                <number>32768</number> 
     232            </property> 
     233            <property name="lineStep"> 
     234                <number>1000</number> 
     235            </property> 
     236            <property name="pageStep"> 
     237                <number>10000</number> 
     238            </property> 
     239        </widget> 
     240        <widget class="QDial"> 
     241            <property name="name"> 
     242                <cstring>dialCh2</cstring> 
     243            </property> 
     244            <property name="geometry"> 
     245                <rect> 
     246                    <x>70</x> 
     247                    <y>30</y> 
     248                    <width>50</width> 
     249                    <height>50</height> 
     250                </rect> 
     251            </property> 
     252            <property name="minValue"> 
     253                <number>-32768</number> 
     254            </property> 
     255            <property name="maxValue"> 
     256                <number>32768</number> 
     257            </property> 
     258            <property name="lineStep"> 
     259                <number>1000</number> 
     260            </property> 
     261            <property name="pageStep"> 
     262                <number>10000</number> 
     263            </property> 
     264        </widget> 
     265        <widget class="QLabel"> 
     266            <property name="name"> 
     267                <cstring>textLabel1_2</cstring> 
     268            </property> 
     269            <property name="geometry"> 
     270                <rect> 
     271                    <x>70</x> 
     272                    <y>300</y> 
     273                    <width>50</width> 
     274                    <height>23</height> 
     275                </rect> 
     276            </property> 
     277            <property name="text"> 
     278                <string>MIC2</string> 
     279            </property> 
     280            <property name="alignment"> 
     281                <set>AlignCenter</set> 
     282            </property> 
     283        </widget> 
     284        <widget class="QDial"> 
     285            <property name="name"> 
     286                <cstring>dialCh34</cstring> 
     287            </property> 
     288            <property name="geometry"> 
     289                <rect> 
     290                    <x>160</x> 
     291                    <y>30</y> 
     292                    <width>50</width> 
     293                    <height>50</height> 
     294                </rect> 
     295            </property> 
     296            <property name="minValue"> 
     297                <number>-32768</number> 
     298            </property> 
     299            <property name="maxValue"> 
     300                <number>32768</number> 
     301            </property> 
     302            <property name="lineStep"> 
     303                <number>1000</number> 
     304            </property> 
     305            <property name="pageStep"> 
     306                <number>10000</number> 
     307            </property> 
     308        </widget> 
     309        <widget class="QSlider"> 
     310            <property name="name"> 
     311                <cstring>sldCh1</cstring> 
     312            </property> 
     313            <property name="geometry"> 
     314                <rect> 
     315                    <x>10</x> 
     316                    <y>90</y> 
     317                    <width>50</width> 
     318                    <height>200</height> 
     319                </rect> 
     320            </property> 
     321            <property name="minValue"> 
     322                <number>0</number> 
     323            </property> 
     324            <property name="maxValue"> 
     325                <number>32767</number> 
     326            </property> 
     327            <property name="lineStep"> 
     328                <number>10000</number> 
     329            </property> 
     330            <property name="pageStep"> 
     331                <number>1000</number> 
     332            </property> 
     333            <property name="orientation"> 
     334                <enum>Vertical</enum> 
     335            </property> 
     336            <property name="tickmarks"> 
     337                <enum>Both</enum> 
     338            </property> 
     339            <property name="tickInterval"> 
     340                <number>10000</number> 
     341            </property> 
     342        </widget> 
     343        <widget class="QLabel"> 
     344            <property name="name"> 
     345                <cstring>textLabel1</cstring> 
     346            </property> 
     347            <property name="geometry"> 
     348                <rect> 
     349                    <x>10</x> 
     350                    <y>300</y> 
     351                    <width>50</width> 
     352                    <height>23</height> 
     353                </rect> 
     354            </property> 
     355            <property name="text"> 
     356                <string>MIC1</string> 
     357            </property> 
     358            <property name="alignment"> 
     359                <set>AlignCenter</set> 
     360            </property> 
     361        </widget> 
    50362    </widget> 
    51     <widget class="QSlider"> 
     363    <widget class="QGroupBox"> 
    52364        <property name="name"> 
    53             <cstring>sldFeature1</cstring> 
     365            <cstring>groupBox4</cstring> 
    54366        </property> 
    55367        <property name="geometry"> 
    56368            <rect> 
    57                 <x>30</x> 
    58                 <y>50</y> 
    59                 <width>34</width> 
    60                 <height>270</height> 
     369                <x>320</x> 
     370                <y>10</y> 
     371                <width>480</width> 
     372                <height>341</height> 
    61373            </rect> 
    62374        </property> 
    63         <property name="minValue"> 
    64             <number>0</number
     375        <property name="title"> 
     376            <string>DAW Volume Control</string
    65377        </property> 
    66         <property name="maxValue"> 
    67             <number>32767</number> 
    68         </property> 
    69         <property name="lineStep"> 
    70             <number>10000</number> 
    71         </property> 
    72         <property name="pageStep"> 
    73             <number>1000</number> 
    74         </property> 
    75         <property name="orientation"> 
    76             <enum>Vertical</enum> 
    77         </property> 
    78         <property name="tickmarks"> 
    79             <enum>Both</enum> 
    80         </property> 
    81         <property name="tickInterval"> 
    82             <number>10000</number> 
    83         </property> 
    84     </widget> 
    85     <widget class="QSlider"> 
    86         <property name="name"> 
    87             <cstring>sldFeature2</cstring> 
    88         </property> 
    89         <property name="geometry"> 
    90             <rect> 
    91                 <x>80</x> 
    92                 <y>50</y> 
    93                 <width>34</width> 
    94                 <height>270</height> 
    95             </rect> 
    96         </property> 
    97         <property name="minValue"> 
    98             <number>0</number> 
    99         </property> 
    100         <property name="maxValue"> 
    101             <number>32767</number> 
    102         </property> 
    103         <property name="lineStep"> 
    104             <number>10000</number> 
    105         </property> 
    106         <property name="pageStep"> 
    107             <number>1000</number> 
    108         </property> 
    109         <property name="orientation"> 
    110             <enum>Vertical</enum> 
    111         </property> 
    112         <property name="tickmarks"> 
    113             <enum>Both</enum> 
    114         </property> 
    115         <property name="tickInterval"> 
    116             <number>10000</number> 
    117         </property> 
    118     </widget> 
    119     <widget class="QSlider"> 
    120         <property name="name"> 
    121             <cstring>sldFeature3</cstring> 
    122         </property> 
    123         <property name="geometry"> 
    124             <rect> 
    125                 <x>130</x> 
    126                 <y>50</y> 
    127                 <width>34</width> 
    128                 <height>270</height> 
    129             </rect> 
    130         </property> 
    131         <property name="minValue"> 
    132             <number>0</number> 
    133         </property> 
    134         <property name="maxValue"> 
    135             <number>32767</number> 
    136         </property> 
    137         <property name="lineStep"> 
    138             <number>10000</number> 
    139         </property> 
    140         <property name="pageStep"> 
    141             <number>1000</number> 
    142         </property> 
    143         <property name="orientation"> 
    144             <enum>Vertical</enum> 
    145         </property> 
    146         <property name="tickmarks"> 
    147             <enum>Both</enum> 
    148         </property> 
    149         <property name="tickInterval"> 
    150             <number>10000</number> 
    151         </property> 
    152     </widget> 
    153     <widget class="QSlider"> 
    154         <property name="name"> 
    155             <cstring>sldFeature4</cstring> 
    156         </property> 
    157         <property name="geometry"> 
    158             <rect> 
    159                 <x>180</x> 
    160                 <y>50</y> 
    161                 <width>34</width> 
    162                 <height>270</height> 
    163             </rect> 
    164         </property> 
    165         <property name="minValue"> 
    166             <number>0</number> 
    167         </property> 
    168         <property name="maxValue"> 
    169             <number>32767</number> 
    170         </property> 
    171         <property name="lineStep"> 
    172             <number>10000</number> 
    173         </property> 
    174         <property name="pageStep"> 
    175             <number>1000</number> 
    176         </property> 
    177         <property name="orientation"> 
    178             <enum>Vertical</enum> 
    179         </property> 
    180         <property name="tickmarks"> 
    181             <enum>Both</enum> 
    182         </property> 
    183         <property name="tickInterval"> 
    184             <number>10000</number> 
    185         </property> 
     378        <widget class="QLabel"> 
     379            <property name="name"> 
     380                <cstring>textLabel1_4</cstring> 
     381            </property> 
     382            <property name="geometry"> 
     383                <rect> 
     384                    <x>20</x> 
     385                    <y>300</y> 
     386                    <width>40</width> 
     387                    <height>23</height> 
     388                </rect> 
     389            </property> 
     390            <property name="text"> 
     391                <string>ALL</string> 
     392            </property> 
     393            <property name="alignment"> 
     394                <set>AlignCenter</set> 
     395            </property> 
     396        </widget> 
     397        <widget class="QLabel"> 
     398            <property name="name"> 
     399                <cstring>textLabel1_4_3</cstring> 
     400            </property> 
     401            <property name="geometry"> 
     402                <rect> 
     403                    <x>120</x> 
     404                    <y>300</y> 
     405                    <width>40</width> 
     406                    <height>23</height> 
     407                </rect> 
     408            </property> 
     409            <property name="text"> 
     410                <string>CH2</string> 
     411            </property> 
     412            <property name="alignment"> 
     413                <set>AlignCenter</set> 
     414            </property> 
     415        </widget> 
     416        <widget class="QLabel"> 
     417            <property name="name"> 
     418                <cstring>textLabel1_4_2_2</cstring> 
     419            </property> 
     420            <property name="geometry"> 
     421                <rect> 
     422                    <x>170</x> 
     423                    <y>300</y> 
     424                    <width>40</width> 
     425                    <height>23</height> 
     426                </rect> 
     427            </property> 
     428            <property name="text"> 
     429                <string>CH3</string> 
     430            </property> 
     431            <property name="alignment"> 
     432                <set>AlignCenter</set> 
     433            </property> 
     434        </widget> 
     435        <widget class="QLabel"> 
     436            <property name="name"> 
     437                <cstring>textLabel1_4_4</cstring> 
     438            </property> 
     439            <property name="geometry"> 
     440                <rect> 
     441                    <x>220</x> 
     442                    <y>300</y> 
     443                    <width>40</width> 
     444                    <height>23</height> 
     445                </rect> 
     446            </property> 
     447            <property name="text"> 
     448                <string>CH4</string> 
     449            </property> 
     450            <property name="alignment"> 
     451                <set>AlignCenter</set> 
     452            </property> 
     453        </widget> 
     454        <widget class="QLabel"> 
     455            <property name="name"> 
     456                <cstring>textLabel1_4_2_3</cstring> 
     457            </property> 
     458            <property name="geometry"> 
     459                <rect> 
     460                    <x>270</x> 
     461                    <y>300</y> 
     462                    <width>40</width> 
     463                    <height>23</height> 
     464                </rect> 
     465            </property> 
     466            <property name="text"> 
     467                <string>CH5</string> 
     468            </property> 
     469            <property name="alignment"> 
     470                <set>AlignCenter</set> 
     471            </property> 
     472        </widget> 
     473        <widget class="QLabel"> 
     474            <property name="name"> 
     475                <cstring>textLabel1_4_3_2</cstring> 
     476            </property> 
     477            <property name="geometry"> 
     478                <rect> 
     479                    <x>320</x> 
     480                    <y>300</y> 
     481                    <width>40</width> 
     482                    <height>23</height> 
     483                </rect> 
     484            </property> 
     485            <property name="text"> 
     486                <string>CH6</string> 
     487            </property> 
     488            <property name="alignment"> 
     489                <set>AlignCenter</set> 
     490            </property> 
     491        </widget> 
     492        <widget class="QLabel"> 
     493            <property name="name"> 
     494                <cstring>textLabel1_4_2_2_2</cstring> 
     495            </property> 
     496            <property name="geometry"> 
     497                <rect> 
     498                    <x>370</x> 
     499                    <y>300</y> 
     500                    <width>40</width> 
     501                    <height>23</height> 
     502                </rect> 
     503            </property> 
     504            <property name="text"> 
     505                <string>CH7</string> 
     506            </property> 
     507            <property name="alignment"> 
     508                <set>AlignCenter</set> 
     509            </property> 
     510        </widget> 
     511        <widget class="QLabel"> 
     512            <property name="name"> 
     513                <cstring>textLabel1_4_2</cstring> 
     514            </property> 
     515            <property name="geometry"> 
     516                <rect> 
     517                    <x>70</x> 
     518                    <y>300</y> 
     519                    <width>40</width> 
     520                    <height>23</height> 
     521                </rect> 
     522            </property> 
     523            <property name="text"> 
     524                <string>CH1</string> 
     525            </property> 
     526            <property name="alignment"> 
     527                <set>AlignCenter</set> 
     528            </property> 
     529        </widget> 
     530        <widget class="QLabel"> 
     531            <property name="name"> 
     532                <cstring>textLabel1_4_2_2_2_2</cstring> 
     533            </property> 
     534            <property name="geometry"> 
     535                <rect> 
     536                    <x>420</x> 
     537                    <y>300</y> 
     538                    <width>40</width> 
     539                    <height>23</height> 
     540                </rect> 
     541            </property> 
     542            <property name="text"> 
     543                <string>CH8</string> 
     544            </property> 
     545            <property name="alignment"> 
     546                <set>AlignCenter</set> 
     547            </property> 
     548        </widget> 
     549        <widget class="QSlider"> 
     550            <property name="name"> 
     551                <cstring>sldDawAll</cstring> 
     552            </property> 
     553            <property name="geometry"> 
     554                <rect> 
     555                    <x>20</x> 
     556                    <y>40</y> 
     557                    <width>40</width> 
     558                    <height>250</height> 
     559                </rect> 
     560            </property> 
     561            <property name="minValue"> 
     562                <number>0</number> 
     563            </property> 
     564            <property name="maxValue"> 
     565                <number>32767</number> 
     566            </property> 
     567            <property name="lineStep"> 
     568                <number>10000</number> 
     569            </property> 
     570            <property name="pageStep"> 
     571                <number>1000</number> 
     572            </property> 
     573            <property name="orientation"> 
     574                <enum>Vertical</enum> 
     575            </property> 
     576            <property name="tickmarks"> 
     577                <enum>Both</enum> 
     578            </property> 
     579            <property name="tickInterval"> 
     580                <number>10000</number> 
     581            </property> 
     582        </widget> 
     583        <widget class="QSlider"> 
     584            <property name="name"> 
     585                <cstring>sldDawCH1</cstring> 
     586            </property> 
     587            <property name="geometry"> 
     588                <rect> 
     589                    <x>70</x> 
     590                    <y>40</y> 
     591                    <width>40</width> 
     592                    <height>250</height> 
     593                </rect> 
     594            </property> 
     595            <property name="minValue"> 
     596                <number>0</number> 
     597            </property> 
     598            <property name="maxValue"> 
     599                <number>32767</number> 
     600            </property> 
     601            <property name="lineStep"> 
     602                <number>10000</number> 
     603            </property> 
     604            <property name="pageStep"> 
     605                <number>1000</number> 
     606            </property> 
     607            <property name="orientation"> 
     608                <enum>Vertical</enum> 
     609            </property> 
     610            <property name="tickmarks"> 
     611                <enum>Both</enum> 
     612            </property> 
     613            <property name="tickInterval"> 
     614                <number>10000</number> 
     615            </property> 
     616        </widget> 
     617        <widget class="QSlider"> 
     618            <property name="name"> 
     619                <cstring>sldDawCH2</cstring> 
     620            </property> 
     621            <property name="geometry"> 
     622                <rect> 
     623                    <x>120</x> 
     624                    <y>40</y> 
     625                    <width>40</width> 
     626                    <height>250</height> 
     627                </rect> 
     628            </property> 
     629            <property name="minValue"> 
     630                <number>0</number> 
     631            </property> 
     632            <property name="maxValue"> 
     633                <number>32767</number> 
     634            </property> 
     635            <property name="lineStep"> 
     636                <number>10000</number> 
     637            </property> 
     638            <property name="pageStep"> 
     639                <number>1000</number> 
     640            </property> 
     641            <property name="orientation"> 
     642                <enum>Vertical</enum> 
     643            </property> 
     644            <property name="tickmarks"> 
     645                <enum>Both</enum> 
     646            </property> 
     647            <property name="tickInterval"> 
     648                <number>10000</number> 
     649            </property> 
     650        </widget> 
     651        <widget class="QSlider"> 
     652            <property name="name"> 
     653                <cstring>sldDawCH3</cstring> 
     654            </property> 
     655            <property name="geometry"> 
     656                <rect> 
     657                    <x>170</x> 
     658                    <y>40</y> 
     659                    <width>40</width> 
     660                    <height>250</height> 
     661                </rect> 
     662            </property> 
     663            <property name="minValue"> 
     664                <number>0</number> 
     665            </property> 
     666            <property name="maxValue"> 
     667                <number>32767</number> 
     668            </property> 
     669            <property name="lineStep"> 
     670                <number>10000</number> 
     671            </property> 
     672            <property name="pageStep"> 
     673                <number>1000</number> 
     674            </property> 
     675            <property name="orientation"> 
     676                <enum>Vertical</enum> 
     677            </property> 
     678            <property name="tickmarks"> 
     679                <enum>Both</enum> 
     680            </property> 
     681            <property name="tickInterval"> 
     682                <number>10000</number> 
     683            </property> 
     684        </widget> 
     685        <widget class="QSlider"> 
     686            <property name="name"> 
     687                <cstring>sldDawCH4</cstring> 
     688            </property> 
     689            <property name="geometry"> 
     690                <rect> 
     691                    <x>220</x> 
     692                    <y>40</y> 
     693                    <width>40</width> 
     694                    <height>250</height> 
     695                </rect> 
     696            </property> 
     697            <property name="minValue"> 
     698                <number>0</number> 
     699            </property> 
     700            <property name="maxValue"> 
     701                <number>32767</number> 
     702            </property> 
     703            <property name="lineStep"> 
     704                <number>10000</number> 
     705            </property> 
     706            <property name="pageStep"> 
     707                <number>1000</number> 
     708            </property> 
     709            <property name="orientation"> 
     710                <enum>Vertical</enum> 
     711            </property> 
     712            <property name="tickmarks"> 
     713                <enum>Both</enum> 
     714            </property> 
     715            <property name="tickInterval"> 
     716                <number>10000</number> 
     717            </property> 
     718        </widget> 
     719        <widget class="QSlider"> 
     720            <property name="name"> 
     721                <cstring>sldDawCH5</cstring> 
     722            </property> 
     723            <property name="geometry"> 
     724                <rect> 
     725                    <x>270</x> 
     726                    <y>40</y> 
     727                    <width>40</width> 
     728                    <height>250</height> 
     729                </rect> 
     730            </property> 
     731            <property name="minValue"> 
     732                <number>0</number> 
     733            </property> 
     734            <property name="maxValue"> 
     735                <number>32767</number> 
     736            </property> 
     737            <property name="lineStep"> 
     738                <number>10000</number> 
     739            </property> 
     740            <property name="pageStep"> 
     741                <number>1000</number> 
     742            </property> 
     743            <property name="orientation"> 
     744                <enum>Vertical</enum> 
     745            </property> 
     746            <property name="tickmarks"> 
     747                <enum>Both</enum> 
     748            </property> 
     749            <property name="tickInterval"> 
     750                <number>10000</number> 
     751            </property> 
     752        </widget> 
     753        <widget class="QSlider"> 
     754            <property name="name"> 
     755                <cstring>sldDawCH6</cstring> 
     756            </property> 
     757            <property name="geometry"> 
     758                <rect> 
     759                    <x>320</x> 
     760                    <y>40</y> 
     761                    <width>40</width> 
     762                    <height>250</height> 
     763                </rect> 
     764            </property> 
     765            <property name="minValue"> 
     766                <number>0</number> 
     767            </property> 
     768            <property name="maxValue"> 
     769                <number>32767</number> 
     770            </property> 
     771            <property name="lineStep"> 
     772                <number>10000</number> 
     773            </property> 
     774            <property name="pageStep"> 
     775                <number>1000</number> 
     776            </property> 
     777            <property name="orientation"> 
     778                <enum>Vertical</enum> 
     779            </property> 
     780            <property name="tickmarks"> 
     781                <enum>Both</enum> 
     782            </property> 
     783            <property name="tickInterval"> 
     784                <number>10000</number> 
     785            </property> 
     786        </widget> 
     787        <widget class="QSlider"> 
     788            <property name="name"> 
     789                <cstring>sldDawCH7</cstring> 
     790            </property> 
     791            <property name="geometry"> 
     792                <rect> 
     793                    <x>370</x> 
     794                    <y>40</y> 
     795                    <width>40</width> 
     796                    <height>250</height> 
     797                </rect> 
     798            </property> 
     799            <property name="minValue"> 
     800                <number>0</number> 
     801            </property> 
     802            <property name="maxValue"> 
     803                <number>32767</number> 
     804            </property> 
     805            <property name="lineStep"> 
     806                <number>10000</number> 
     807            </property> 
     808            <property name="pageStep"> 
     809                <number>1000</number> 
     810            </property> 
     811            <property name="orientation"> 
     812                <enum>Vertical</enum> 
     813            </property> 
     814            <property name="tickmarks"> 
     815                <enum>Both</enum> 
     816            </property> 
     817            <property name="tickInterval"> 
     818                <number>10000</number> 
     819            </property> 
     820        </widget> 
     821        <widget class="QSlider"> 
     822            <property name="name"> 
     823                <cstring>sldDawCH8</cstring> 
     824            </property> 
     825            <property name="geometry"> 
     826                <rect> 
     827                    <x>420</x> 
     828                    <y>40</y> 
     829                    <width>40</width> 
     830                    <height>250</height> 
     831                </rect> 
     832            </property> 
     833            <property name="minValue"> 
     834                <number>0</number> 
     835            </property> 
     836            <property name="maxValue"> 
     837                <number>32767</number> 
     838            </property> 
     839            <property name="lineStep"> 
     840                <number>10000</number> 
     841            </property> 
     842            <property name="pageStep"> 
     843                <number>1000</number> 
     844            </property> 
     845            <property name="orientation"> 
     846                <enum>Vertical</enum> 
     847            </property> 
     848            <property name="tickmarks"> 
     849                <enum>Both</enum> 
     850            </property> 
     851            <property name="tickInterval"> 
     852                <number>10000</number> 
     853            </property> 
     854        </widget> 
    186855    </widget> 
    187856</widget>