Changeset 1509

Show
Ignore:
Timestamp:
12/18/08 15:03:47 (12 years ago)
Author:
jwoithe
Message:

- MOTU: Refactor mixer control logic to make things clearer. Please test to ensure the changes haven't caused regressions for suppoted devices.
- MOTU: Implement buttons for the Ultralite's phase inversion controls. Connect Ultralite trimgain mixer controls to their respective dbus paths. These additional Ultralite controls have a much greater chance of working now - please test.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/libffado-2.0/src/motu/motu_avdevice.cpp

    r1506 r1509  
    656656        } 
    657657        if (type & MOTU_CTRL_INPUT_PHASE_INV) { 
    658             snprintf(name, 100, "%s%s", ctrl->name, "phaseinv"); 
    659             snprintf(label,100, "%s%s", ctrl->label,"phaseinv"); 
     658            snprintf(name, 100, "%s%s", ctrl->name, "invert"); 
     659            snprintf(label,100, "%s%s", ctrl->label,"invert"); 
    660660            result &= m_MixerContainer->addElement( 
    661661                new InputGainPadInv(*this, ctrl->dev_register, MOTU_CTRL_MODE_PHASE_INV, 
  • branches/libffado-2.0/support/mixer-qt4/mixer_motu.py

    r1506 r1509  
    236236            self.ana3_trimgain:  ['/Mixer/Control/Ana3_trimgain'], 
    237237            self.ana4_trimgain:  ['/Mixer/Control/Ana4_trimgain'], 
     238            self.ana5_trimgain:  ['/Mixer/Control/Ana5_trimgain'], 
     239            self.ana6_trimgain:  ['/Mixer/Control/Ana6_trimgain'], 
     240            self.ana7_trimgain:  ['/Mixer/Control/Ana7_trimgain'], 
     241            self.ana8_trimgain:  ['/Mixer/Control/Ana8_trimgain'], 
     242            self.spdif1_trimgain:  ['/Mixer/Control/Spdif1_trimgain'], 
     243            self.spdif2_trimgain:  ['/Mixer/Control/Spdif2_trimgain'], 
    238244        } 
    239245 
     
    414420            self.ana3_pad:       ['/Mixer/Control/Ana3_pad'], 
    415421            self.ana4_pad:       ['/Mixer/Control/Ana4_pad'], 
     422            self.ana5_pad:       ['/Mixer/Control/Ana5_pad'], 
     423            self.ana6_pad:       ['/Mixer/Control/Ana6_pad'], 
     424            self.ana7_pad:       ['/Mixer/Control/Ana7_pad'], 
     425            self.ana8_pad:       ['/Mixer/Control/Ana8_pad'], 
     426            self.ana1_invert:    ['/Mixer/Control/Ana1_invert'], 
     427            self.ana2_invert:    ['/Mixer/Control/Ana2_invert'], 
     428            self.ana3_invert:    ['/Mixer/Control/Ana3_invert'], 
     429            self.ana4_invert:    ['/Mixer/Control/Ana4_invert'], 
     430            self.ana5_invert:    ['/Mixer/Control/Ana5_invert'], 
     431            self.ana6_invert:    ['/Mixer/Control/Ana6_invert'], 
     432            self.ana7_invert:    ['/Mixer/Control/Ana7_invert'], 
     433            self.ana8_invert:    ['/Mixer/Control/Ana8_invert'], 
     434            self.spdif1_invert:  ['/Mixer/Control/Spdif1_invert'], 
     435            self.spdif2_invert:  ['/Mixer/Control/Spdif2_invert'], 
     436            self.ana1_level:     ['/Mixer/Control/Ana1_level'], 
     437            self.ana2_level:     ['/Mixer/Control/Ana2_level'], 
     438            self.ana3_level:     ['/Mixer/Control/Ana3_level'], 
     439            self.ana4_level:     ['/Mixer/Control/Ana4_level'], 
    416440            self.ana5_level:     ['/Mixer/Control/Ana5_level'], 
    417441            self.ana6_level:     ['/Mixer/Control/Ana6_level'], 
    418442            self.ana7_level:     ['/Mixer/Control/Ana7_level'], 
    419443            self.ana8_level:     ['/Mixer/Control/Ana8_level'], 
     444            self.ana1_boost:     ['/Mixer/Control/Ana1_boost'], 
     445            self.ana2_boost:     ['/Mixer/Control/Ana2_boost'], 
     446            self.ana3_boost:     ['/Mixer/Control/Ana3_boost'], 
     447            self.ana4_boost:     ['/Mixer/Control/Ana4_boost'], 
    420448            self.ana5_boost:     ['/Mixer/Control/Ana5_boost'], 
    421449            self.ana6_boost:     ['/Mixer/Control/Ana6_boost'], 
    422450            self.ana7_boost:     ['/Mixer/Control/Ana7_boost'], 
    423451            self.ana8_boost:     ['/Mixer/Control/Ana8_boost'], 
    424  
    425             # Some interfaces have level/boost on analog 1-4 in place of trimgain/pad 
    426             self.ana1_level:     ['/Mixer/Control/Ana1_level'], 
    427             self.ana2_level:     ['/Mixer/Control/Ana2_level'], 
    428             self.ana3_level:     ['/Mixer/Control/Ana3_level'], 
    429             self.ana4_level:     ['/Mixer/Control/Ana4_level'], 
    430             self.ana1_boost:     ['/Mixer/Control/Ana1_boost'], 
    431             self.ana2_boost:     ['/Mixer/Control/Ana2_boost'], 
    432             self.ana3_boost:     ['/Mixer/Control/Ana3_boost'], 
    433             self.ana4_boost:     ['/Mixer/Control/Ana4_boost'], 
    434  
    435452        } 
    436453 
     
    706723            self.mix4_adat8.setEnabled(False) 
    707724 
    708         # Ensure the correct input controls are active for a given interface 
    709         if (self.model == MOTU_MODEL_TRAVELER): 
     725        # Ensure the correct input controls are active for a given interface. 
     726        # Only the Ultralite has phase inversion switches. 
     727        if (not(self.model == MOTU_MODEL_ULTRALITE)): 
     728            self.disable_hide(self.ana1_invert) 
     729            self.disable_hide(self.ana2_invert) 
     730            self.disable_hide(self.ana3_invert) 
     731            self.disable_hide(self.ana4_invert) 
     732            self.disable_hide(self.ana5_invert) 
     733            self.disable_hide(self.ana6_invert) 
     734            self.disable_hide(self.ana7_invert) 
     735            self.disable_hide(self.ana8_invert) 
     736            self.disable_hide(self.spdif1_invert) 
     737            self.disable_hide(self.spdif2_invert) 
     738        # The Traveler has pad switches for analog 1-4 only; other interfaces 
     739        # don't have pad switches at all. 
     740        if (not(self.model == MOTU_MODEL_TRAVELER)): 
     741            self.disable_hide(self.ana1_pad) 
     742            self.disable_hide(self.ana2_pad) 
     743            self.disable_hide(self.ana3_pad) 
     744            self.disable_hide(self.ana4_pad) 
     745        self.disable_hide(self.ana5_pad) 
     746        self.disable_hide(self.ana6_pad) 
     747        self.disable_hide(self.ana7_pad) 
     748        self.disable_hide(self.ana8_pad) 
     749        # The Traveler has level and boost switchs for analog 5-8.  The Ultralite 
     750        # doesn't implement them.  All other interfaces have them over analog 1-8. 
     751        if (self.model==MOTU_MODEL_TRAVELER or self.model==MOTU_MODEL_ULTRALITE): 
    710752            self.disable_hide(self.ana1_level) 
    711753            self.disable_hide(self.ana2_level) 
     
    716758            self.disable_hide(self.ana3_boost) 
    717759            self.disable_hide(self.ana4_boost) 
     760        if (self.model == MOTU_MODEL_ULTRALITE): 
     761            self.disable_hide(self.ana5_level) 
     762            self.disable_hide(self.ana6_level) 
     763            self.disable_hide(self.ana7_level) 
     764            self.disable_hide(self.ana8_level) 
     765            self.disable_hide(self.ana5_boost) 
     766            self.disable_hide(self.ana6_boost) 
     767            self.disable_hide(self.ana7_boost) 
     768            self.disable_hide(self.ana8_boost) 
     769        # The Traveler has trimgain for analog 1-4.  The Ultralite has trimgain for 
     770        # analog 1-8 and SPDIF 1-2.  All other interfaces don't have trimgain. 
     771        if (not(self.model==MOTU_MODEL_TRAVELER or self.model==MOTU_MODEL_ULTRALITE)): 
     772            self.disable_hide(self.ana1_trimgain) 
     773            self.disable_hide(self.ana1_trimgain_label) 
     774            self.disable_hide(self.ana2_trimgain) 
     775            self.disable_hide(self.ana2_trimgain_label) 
     776            self.disable_hide(self.ana3_trimgain) 
     777            self.disable_hide(self.ana3_trimgain_label) 
     778            self.disable_hide(self.ana4_trimgain) 
     779            self.disable_hide(self.ana4_trimgain_label) 
     780        if (not(self.model == MOTU_MODEL_ULTRALITE)): 
    718781            self.disable_hide(self.ana5_trimgain) 
    719782            self.disable_hide(self.ana5_trimgain_label) 
     
    724787            self.disable_hide(self.ana8_trimgain) 
    725788            self.disable_hide(self.ana8_trimgain_label) 
    726             self.disable_hide(self.ana5_pad) 
    727             self.disable_hide(self.ana6_pad) 
    728             self.disable_hide(self.ana7_pad) 
    729             self.disable_hide(self.ana8_pad) 
    730         elif (self.model == MOTU_MODEL_ULTRALITE): 
    731             self.disable_hide(self.ana1_level) 
    732             self.disable_hide(self.ana2_level) 
    733             self.disable_hide(self.ana3_level) 
    734             self.disable_hide(self.ana4_level) 
    735             self.disable_hide(self.ana5_level) 
    736             self.disable_hide(self.ana6_level) 
    737             self.disable_hide(self.ana7_level) 
    738             self.disable_hide(self.ana8_level) 
    739             self.disable_hide(self.ana1_boost) 
    740             self.disable_hide(self.ana2_boost) 
    741             self.disable_hide(self.ana3_boost) 
    742             self.disable_hide(self.ana4_boost) 
    743             self.disable_hide(self.ana5_boost) 
    744             self.disable_hide(self.ana6_boost) 
    745             self.disable_hide(self.ana7_boost) 
    746             self.disable_hide(self.ana8_boost) 
    747  
    748             # FIXME: Need to set the label of the pad controls to "Phase Inv" or 
    749             # something similar 
    750  
    751         else: 
    752             self.disable_hide(self.ana1_trimgain) 
    753             self.disable_hide(self.ana1_trimgain_label) 
    754             self.disable_hide(self.ana2_trimgain) 
    755             self.disable_hide(self.ana2_trimgain_label) 
    756             self.disable_hide(self.ana3_trimgain) 
    757             self.disable_hide(self.ana3_trimgain_label) 
    758             self.disable_hide(self.ana4_trimgain) 
    759             self.disable_hide(self.ana4_trimgain_label) 
    760             self.disable_hide(self.ana1_pad) 
    761             self.disable_hide(self.ana2_pad) 
    762             self.disable_hide(self.ana3_pad) 
    763             self.disable_hide(self.ana4_pad) 
    764             self.disable_hide(self.ana5_trimgain) 
    765             self.disable_hide(self.ana5_trimgain_label) 
    766             self.disable_hide(self.ana6_trimgain) 
    767             self.disable_hide(self.ana6_trimgain_label) 
    768             self.disable_hide(self.ana7_trimgain) 
    769             self.disable_hide(self.ana7_trimgain_label) 
    770             self.disable_hide(self.ana8_trimgain) 
    771             self.disable_hide(self.ana8_trimgain_label) 
    772             self.disable_hide(self.ana5_pad) 
    773             self.disable_hide(self.ana6_pad) 
    774             self.disable_hide(self.ana7_pad) 
    775             self.disable_hide(self.ana8_pad) 
    776         # Only the Ultralite has digital trim controls over the SPDIF channels 
    777         if (not(self.model == MOTU_MODEL_ULTRALITE)): 
    778789            self.disable_hide(self.spdif1_trimgain); 
    779790            self.disable_hide(self.spdif1_trimgain_label); 
  • branches/libffado-2.0/support/mixer-qt4/mixer_motu.ui

    r1494 r1509  
    501501            </item> 
    502502            <item> 
     503             <widget class="QToolButton" name="ana1_invert" > 
     504              <property name="text" > 
     505               <string>Invert</string> 
     506              </property> 
     507              <property name="checkable" > 
     508               <bool>true</bool> 
     509              </property> 
     510             </widget> 
     511            </item> 
     512            <item> 
    503513             <widget class="QToolButton" name="ana1_boost" > 
    504514              <property name="enabled" > 
     
    613623            </item> 
    614624            <item> 
     625             <widget class="QToolButton" name="ana2_invert" > 
     626              <property name="text" > 
     627               <string>Invert</string> 
     628              </property> 
     629              <property name="checkable" > 
     630               <bool>true</bool> 
     631              </property> 
     632             </widget> 
     633            </item> 
     634            <item> 
    615635             <widget class="QToolButton" name="ana2_boost" > 
    616636              <property name="enabled" > 
     
    725745            </item> 
    726746            <item> 
     747             <widget class="QToolButton" name="ana3_invert" > 
     748              <property name="text" > 
     749               <string>Invert</string> 
     750              </property> 
     751              <property name="checkable" > 
     752               <bool>true</bool> 
     753              </property> 
     754             </widget> 
     755            </item> 
     756            <item> 
    727757             <widget class="QToolButton" name="ana3_boost" > 
    728758              <property name="enabled" > 
     
    837867            </item> 
    838868            <item> 
     869             <widget class="QToolButton" name="ana4_invert" > 
     870              <property name="text" > 
     871               <string>Invert</string> 
     872              </property> 
     873              <property name="checkable" > 
     874               <bool>true</bool> 
     875              </property> 
     876             </widget> 
     877            </item> 
     878            <item> 
    839879             <widget class="QToolButton" name="ana4_boost" > 
    840880              <property name="enabled" > 
     
    949989            </item> 
    950990            <item> 
     991             <widget class="QToolButton" name="ana5_invert" > 
     992              <property name="text" > 
     993               <string>Invert</string> 
     994              </property> 
     995              <property name="checkable" > 
     996               <bool>true</bool> 
     997              </property> 
     998             </widget> 
     999            </item> 
     1000            <item> 
    9511001             <widget class="QToolButton" name="ana5_boost" > 
    9521002              <property name="enabled" > 
     
    10611111            </item> 
    10621112            <item> 
     1113             <widget class="QToolButton" name="ana6_invert" > 
     1114              <property name="text" > 
     1115               <string>Invert</string> 
     1116              </property> 
     1117              <property name="checkable" > 
     1118               <bool>true</bool> 
     1119              </property> 
     1120             </widget> 
     1121            </item> 
     1122            <item> 
    10631123             <widget class="QToolButton" name="ana6_boost" > 
    10641124              <property name="enabled" > 
     
    11731233            </item> 
    11741234            <item> 
     1235             <widget class="QToolButton" name="ana7_invert" > 
     1236              <property name="text" > 
     1237               <string>Invert</string> 
     1238              </property> 
     1239              <property name="checkable" > 
     1240               <bool>true</bool> 
     1241              </property> 
     1242              <property name="checked" > 
     1243               <bool>false</bool> 
     1244              </property> 
     1245             </widget> 
     1246            </item> 
     1247            <item> 
    11751248             <widget class="QToolButton" name="ana7_boost" > 
    11761249              <property name="enabled" > 
     
    12851358            </item> 
    12861359            <item> 
     1360             <widget class="QToolButton" name="ana8_invert" > 
     1361              <property name="text" > 
     1362               <string>Invert</string> 
     1363              </property> 
     1364              <property name="checkable" > 
     1365               <bool>true</bool> 
     1366              </property> 
     1367             </widget> 
     1368            </item> 
     1369            <item> 
    12871370             <widget class="QToolButton" name="ana8_boost" > 
    12881371              <property name="enabled" > 
     
    13821465            </item> 
    13831466            <item> 
     1467             <widget class="QToolButton" name="spdif1_invert" > 
     1468              <property name="text" > 
     1469               <string>Invert</string> 
     1470              </property> 
     1471              <property name="checkable" > 
     1472               <bool>true</bool> 
     1473              </property> 
     1474             </widget> 
     1475            </item> 
     1476            <item> 
    13841477             <spacer name="verticalSpacer" > 
    13851478              <property name="orientation" > 
     
    14581551              <property name="wordWrap" > 
    14591552               <bool>false</bool> 
     1553              </property> 
     1554             </widget> 
     1555            </item> 
     1556            <item> 
     1557             <widget class="QToolButton" name="spdif2_invert" > 
     1558              <property name="text" > 
     1559               <string>Invert</string> 
     1560              </property> 
     1561              <property name="checkable" > 
     1562               <bool>true</bool> 
    14601563              </property> 
    14611564             </widget>