Changeset 1615

Show
Ignore:
Timestamp:
08/10/09 06:35:03 (12 years ago)
Author:
jwoithe
Message:

RME: Rearrange control pane in mixer. Add controls for input gains on Fireface 400.
RME: Fix bug which prevented driver from correctly reporting the available samplerates.
RME: Correct a misunderstanding about the device streaming status' availability from hardware (essentially it's not available and needs to be cached in software).
RME: Minor corrections to device documentation.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/doc/rme_notes/rme_config_register_map.txt

    r1614 r1615  
    22============================================ 
    33 
    4 Version: 0.15 
     4Version: 0.16 
    55Author: Jonathan Woithe 
    6 Date: 8 August 2009 
     6Date: 10 August 2009 
    77 
    88 
     
    212212 
    213213Status register 0: 
    214   bit 0: on a 2-quadlet read, this indicates whether the device is streaming 
    215   bits 1-9: on a 2-quadlet read these bits are all zero 
     214  bits 9-0: on a 2-quadlet read these bits are all zero 
    216215  bits 9-0: on a 4-quadlet read when in autosync mode, these bits contain 
    217216            SR/250, where SR is the sample rate to be passed to the 
  • trunk/libffado/src/rme/fireface_def.h

    r1609 r1615  
    259259#define SR0_WCLK_LOCK           0x40000000 
    260260 
    261 // It seems the definition of SR0 is a little different depending on whether 
    262 // 2 or 4 status registers are read.  In the case of a request for 2, the 
    263 // following additional bits are defined. 
    264 #define SR0_IS_STREAMING        0x00000001 
    265 // If 4 quadlets are requested (as is done when checking the streaming 
    266 // system status), the lowest 10 bits instead represent sample_rate/250 if 
    267 // locked to an external clock source. 
     261// The lowest 10 bits of SR0 represent sample_rate/250 if locked to an 
     262// external clock source. 
    268263#define SR0_STREAMING_FREQ_MASK 0x000003ff 
    269264 
  • trunk/libffado/src/rme/fireface_hw.cpp

    r1609 r1615  
    116116        return -1; 
    117117 
    118     state->is_streaming = (stat0 & SR0_IS_STREAMING) != 0
     118    state->is_streaming = is_streaming
    119119 
    120120    state->clock_mode = (settings.clock_mode == FF_SWPARAM_CLOCK_MODE_MASTER)?FF_STATE_CLOCKMODE_MASTER:FF_STATE_CLOCKMODE_AUTOSYNC; 
     
    448448{ 
    449449    // Return 1 if the hardware is streaming, 0 if not. 
    450     unsigned int s1, s2; 
    451     if (get_hardware_status(&s1, &s2) != 0) 
    452         return 0; 
    453     return (s1 & SR0_IS_STREAMING) != 0; 
     450    return is_streaming; 
    454451} 
    455452 
  • trunk/libffado/src/rme/rme_avdevice.cpp

    r1610 r1615  
    407407    // externally clocked the frequency is limited to the external clock 
    408408    // frequency.  If the device is running the multiplier is fixed. 
    409     if (state.clock_mode == FF_STATE_CLOCKMODE_MASTER) { 
     409    if (state.clock_mode == FF_STATE_CLOCKMODE_AUTOSYNC) { 
    410410        // FIXME: if synced to TCO, is autosync_freq valid? 
    411411        frequencies.push_back(state.autosync_freq); 
    412412    } else 
    413     if (hardware_is_streaming()) { 
     413    if (state.is_streaming) { 
    414414        unsigned int fixed_mult = multiplier_of_freq(m_software_freq); 
    415415        for (j=0; j<3; j++) { 
  • trunk/libffado/support/mixer-qt4/mixer_rme.py

    r1611 r1615  
    116116            self.sync_check_adat2_status.setEnabled(False) 
    117117 
    118         # Only the FF400 has specific channel 3/4 options 
     118        # Only the FF400 has specific channel 3/4 options, input gain 
     119        # controls and switchable phones level 
    119120        if (self.model != RME_MODEL_FF400): 
    120             self.channel_3_4_options_group.setEnabled(False) 
     121            self.disable_hide(self.input_gains_group) 
     122            self.disable_hide(self.channel_3_4_options_group) 
    121123            self.phones_level_group.setEnabled(False) 
    122124 
  • trunk/libffado/support/mixer-qt4/mixer_rme.ui

    r1613 r1615  
    66    <x>0</x> 
    77    <y>0</y> 
    8     <width>797</width> 
    9     <height>689</height> 
     8    <width>637</width> 
     9    <height>781</height> 
    1010   </rect> 
    1111  </property> 
     
    1616   <item> 
    1717    <widget class="QTabWidget" name="tabWidget" > 
     18     <property name="sizePolicy" > 
     19      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > 
     20       <horstretch>0</horstretch> 
     21       <verstretch>0</verstretch> 
     22      </sizepolicy> 
     23     </property> 
    1824     <property name="currentIndex" > 
    1925      <number>0</number> 
     
    2329       <string>Control</string> 
    2430      </attribute> 
    25       <layout class="QVBoxLayout" name="verticalLayout_5" > 
     31      <layout class="QVBoxLayout" name="verticalLayout" > 
     32       <item> 
     33        <widget class="QFrame" name="frame_5" > 
     34         <property name="frameShape" > 
     35          <enum>QFrame::NoFrame</enum> 
     36         </property> 
     37         <property name="frameShadow" > 
     38          <enum>QFrame::Raised</enum> 
     39         </property> 
     40         <layout class="QHBoxLayout" name="horizontalLayout_5" > 
     41          <item> 
     42           <widget class="QGroupBox" name="input_gains_group" > 
     43            <property name="title" > 
     44             <string>Input gains</string> 
     45            </property> 
     46            <layout class="QGridLayout" name="gridLayout_8" > 
     47             <item row="0" column="0" > 
     48              <widget class="QLabel" name="label_9" > 
     49               <property name="sizePolicy" > 
     50                <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > 
     51                 <horstretch>0</horstretch> 
     52                 <verstretch>0</verstretch> 
     53                </sizepolicy> 
     54               </property> 
     55               <property name="text" > 
     56                <string>Mic 1</string> 
     57               </property> 
     58              </widget> 
     59             </item> 
     60             <item row="0" column="1" > 
     61              <widget class="QSlider" name="gain_mic1" > 
     62               <property name="orientation" > 
     63                <enum>Qt::Horizontal</enum> 
     64               </property> 
     65              </widget> 
     66             </item> 
     67             <item row="1" column="0" > 
     68              <widget class="QLabel" name="label_10" > 
     69               <property name="sizePolicy" > 
     70                <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > 
     71                 <horstretch>0</horstretch> 
     72                 <verstretch>0</verstretch> 
     73                </sizepolicy> 
     74               </property> 
     75               <property name="text" > 
     76                <string>Mic 2</string> 
     77               </property> 
     78              </widget> 
     79             </item> 
     80             <item row="1" column="1" > 
     81              <widget class="QSlider" name="gain_mic2" > 
     82               <property name="orientation" > 
     83                <enum>Qt::Horizontal</enum> 
     84               </property> 
     85              </widget> 
     86             </item> 
     87             <item row="2" column="0" > 
     88              <widget class="QLabel" name="label_24" > 
     89               <property name="sizePolicy" > 
     90                <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > 
     91                 <horstretch>0</horstretch> 
     92                 <verstretch>0</verstretch> 
     93                </sizepolicy> 
     94               </property> 
     95               <property name="text" > 
     96                <string>Input 3</string> 
     97               </property> 
     98              </widget> 
     99             </item> 
     100             <item row="2" column="1" > 
     101              <widget class="QSlider" name="gain_input3" > 
     102               <property name="orientation" > 
     103                <enum>Qt::Horizontal</enum> 
     104               </property> 
     105              </widget> 
     106             </item> 
     107             <item row="3" column="0" > 
     108              <widget class="QLabel" name="label_23" > 
     109               <property name="sizePolicy" > 
     110                <sizepolicy vsizetype="Preferred" hsizetype="Minimum" > 
     111                 <horstretch>0</horstretch> 
     112                 <verstretch>0</verstretch> 
     113                </sizepolicy> 
     114               </property> 
     115               <property name="text" > 
     116                <string>Input 4</string> 
     117               </property> 
     118              </widget> 
     119             </item> 
     120             <item row="3" column="1" > 
     121              <widget class="QSlider" name="gain_input4" > 
     122               <property name="orientation" > 
     123                <enum>Qt::Horizontal</enum> 
     124               </property> 
     125              </widget> 
     126             </item> 
     127            </layout> 
     128           </widget> 
     129          </item> 
     130          <item> 
     131           <widget class="QGroupBox" name="channel_3_4_options_group" > 
     132            <property name="title" > 
     133             <string>Channel 3/4 options</string> 
     134            </property> 
     135            <layout class="QGridLayout" name="gridLayout_4" > 
     136             <item row="0" column="0" colspan="2" > 
     137              <widget class="QLabel" name="label_18" > 
     138               <property name="text" > 
     139                <string>Chan 3</string> 
     140               </property> 
     141              </widget> 
     142             </item> 
     143             <item row="0" column="2" > 
     144              <widget class="QCheckBox" name="ff400_chan3_opt_instr" > 
     145               <property name="text" > 
     146                <string>Instr</string> 
     147               </property> 
     148              </widget> 
     149             </item> 
     150             <item row="0" column="3" > 
     151              <widget class="QCheckBox" name="ff400_chan3_opt_pad" > 
     152               <property name="text" > 
     153                <string>Pad</string> 
     154               </property> 
     155              </widget> 
     156             </item> 
     157             <item row="2" column="0" > 
     158              <widget class="QLabel" name="label_19" > 
     159               <property name="text" > 
     160                <string>Chan 4</string> 
     161               </property> 
     162              </widget> 
     163             </item> 
     164             <item row="2" column="3" > 
     165              <widget class="QCheckBox" name="ff400_chan4_opt_pad" > 
     166               <property name="text" > 
     167                <string>Pad</string> 
     168               </property> 
     169              </widget> 
     170             </item> 
     171             <item row="2" column="2" > 
     172              <widget class="QCheckBox" name="ff400_chan4_opt_instr" > 
     173               <property name="text" > 
     174                <string>Instr</string> 
     175               </property> 
     176              </widget> 
     177             </item> 
     178             <item row="3" column="2" > 
     179              <spacer name="verticalSpacer_9" > 
     180               <property name="orientation" > 
     181                <enum>Qt::Vertical</enum> 
     182               </property> 
     183               <property name="sizeHint" stdset="0" > 
     184                <size> 
     185                 <width>20</width> 
     186                 <height>40</height> 
     187                </size> 
     188               </property> 
     189              </spacer> 
     190             </item> 
     191            </layout> 
     192           </widget> 
     193          </item> 
     194         </layout> 
     195        </widget> 
     196       </item> 
    26197       <item> 
    27198        <widget class="QFrame" name="frame_4" > 
     
    38209             <string>Phantom</string> 
    39210            </property> 
    40             <layout class="QVBoxLayout" name="verticalLayout" > 
    41              <item
     211            <layout class="QGridLayout" name="gridLayout_7" > 
     212             <item rowspan="2" row="0" column="0" colspan="3"
    42213              <widget class="QCheckBox" name="phantom_0" > 
    43214               <property name="text" > 
     
    46217              </widget> 
    47218             </item> 
    48              <item> 
     219             <item row="1" column="1" colspan="2" > 
     220              <widget class="QCheckBox" name="phantom_2" > 
     221               <property name="text" > 
     222                <string>Mic 3</string> 
     223               </property> 
     224              </widget> 
     225             </item> 
     226             <item row="2" column="0" > 
    49227              <widget class="QCheckBox" name="phantom_1" > 
    50228               <property name="text" > 
     
    53231              </widget> 
    54232             </item> 
    55              <item> 
    56               <widget class="QCheckBox" name="phantom_2" > 
    57                <property name="text" > 
    58                 <string>Mic 3</string> 
    59                </property> 
    60               </widget> 
    61              </item> 
    62              <item> 
     233             <item row="2" column="1" > 
    63234              <widget class="QCheckBox" name="phantom_3" > 
    64235               <property name="text" > 
     
    67238              </widget> 
    68239             </item> 
    69              <item
     240             <item row="3" column="0"
    70241              <spacer name="verticalSpacer_12" > 
    71242               <property name="orientation" > 
     
    76247                 <width>20</width> 
    77248                 <height>0</height> 
    78                 </size> 
    79                </property> 
    80               </spacer> 
    81              </item> 
    82             </layout> 
    83            </widget> 
    84           </item> 
    85           <item> 
    86            <widget class="QGroupBox" name="channel_3_4_options_group" > 
    87             <property name="title" > 
    88              <string>Channel 3/4 options</string> 
    89             </property> 
    90             <layout class="QGridLayout" name="gridLayout_4" > 
    91              <item row="0" column="0" colspan="2" > 
    92               <widget class="QLabel" name="label_18" > 
    93                <property name="text" > 
    94                 <string>Chan 3</string> 
    95                </property> 
    96               </widget> 
    97              </item> 
    98              <item row="0" column="2" > 
    99               <widget class="QCheckBox" name="ff400_chan3_opt_instr" > 
    100                <property name="text" > 
    101                 <string>Instr</string> 
    102                </property> 
    103               </widget> 
    104              </item> 
    105              <item row="0" column="3" > 
    106               <widget class="QCheckBox" name="ff400_chan3_opt_pad" > 
    107                <property name="text" > 
    108                 <string>Pad</string> 
    109                </property> 
    110               </widget> 
    111              </item> 
    112              <item row="2" column="0" > 
    113               <widget class="QLabel" name="label_19" > 
    114                <property name="text" > 
    115                 <string>Chan 4</string> 
    116                </property> 
    117               </widget> 
    118              </item> 
    119              <item row="2" column="3" > 
    120               <widget class="QCheckBox" name="ff400_chan4_opt_pad" > 
    121                <property name="text" > 
    122                 <string>Pad</string> 
    123                </property> 
    124               </widget> 
    125              </item> 
    126              <item row="2" column="2" > 
    127               <widget class="QCheckBox" name="ff400_chan4_opt_instr" > 
    128                <property name="text" > 
    129                 <string>Instr</string> 
    130                </property> 
    131               </widget> 
    132              </item> 
    133              <item row="3" column="2" > 
    134               <spacer name="verticalSpacer_9" > 
    135                <property name="orientation" > 
    136                 <enum>Qt::Vertical</enum> 
    137                </property> 
    138                <property name="sizeHint" stdset="0" > 
    139                 <size> 
    140                  <width>20</width> 
    141                  <height>40</height> 
    142249                </size> 
    143250               </property> 
     
    325432       <item> 
    326433        <widget class="QFrame" name="frame" > 
     434         <property name="sizePolicy" > 
     435          <sizepolicy vsizetype="Minimum" hsizetype="Preferred" > 
     436           <horstretch>0</horstretch> 
     437           <verstretch>0</verstretch> 
     438          </sizepolicy> 
     439         </property> 
    327440         <property name="frameShape" > 
    328441          <enum>QFrame::NoFrame</enum> 
     
    357470                <enum>Qt::Vertical</enum> 
    358471               </property> 
    359                <property name="sizeHint" stdset="0" > 
    360                 <size> 
    361                  <width>20</width> 
    362                  <height>40</height> 
     472               <property name="sizeType" > 
     473                <enum>QSizePolicy::MinimumExpanding</enum> 
     474               </property> 
     475               <property name="sizeHint" stdset="0" > 
     476                <size> 
     477                 <width>20</width> 
     478                 <height>0</height> 
    363479                </size> 
    364480               </property> 
     
    407523                <enum>Qt::Vertical</enum> 
    408524               </property> 
    409                <property name="sizeHint" stdset="0" > 
    410                 <size> 
    411                  <width>20</width> 
    412                  <height>40</height> 
     525               <property name="sizeType" > 
     526                <enum>QSizePolicy::MinimumExpanding</enum> 
     527               </property> 
     528               <property name="sizeHint" stdset="0" > 
     529                <size> 
     530                 <width>20</width> 
     531                 <height>0</height> 
    413532                </size> 
    414533               </property> 
     
    445564              </widget> 
    446565             </item> 
     566             <item> 
     567              <spacer name="verticalSpacer_13" > 
     568               <property name="orientation" > 
     569                <enum>Qt::Vertical</enum> 
     570               </property> 
     571               <property name="sizeType" > 
     572                <enum>QSizePolicy::MinimumExpanding</enum> 
     573               </property> 
     574               <property name="sizeHint" stdset="0" > 
     575                <size> 
     576                 <width>20</width> 
     577                 <height>0</height> 
     578                </size> 
     579               </property> 
     580              </spacer> 
     581             </item> 
    447582            </layout> 
    448583           </widget> 
     
    474609               </property> 
    475610              </widget> 
     611             </item> 
     612             <item> 
     613              <spacer name="verticalSpacer_14" > 
     614               <property name="orientation" > 
     615                <enum>Qt::Vertical</enum> 
     616               </property> 
     617               <property name="sizeType" > 
     618                <enum>QSizePolicy::MinimumExpanding</enum> 
     619               </property> 
     620               <property name="sizeHint" stdset="0" > 
     621                <size> 
     622                 <width>20</width> 
     623                 <height>0</height> 
     624                </size> 
     625               </property> 
     626              </spacer> 
    476627             </item> 
    477628            </layout> 
     
    560711              </widget> 
    561712             </item> 
     713             <item> 
     714              <spacer name="verticalSpacer_15" > 
     715               <property name="orientation" > 
     716                <enum>Qt::Vertical</enum> 
     717               </property> 
     718               <property name="sizeHint" stdset="0" > 
     719                <size> 
     720                 <width>20</width> 
     721                 <height>0</height> 
     722                </size> 
     723               </property> 
     724              </spacer> 
     725             </item> 
    562726            </layout> 
    563727           </widget> 
     
    624788               </property> 
    625789              </widget> 
     790             </item> 
     791             <item row="4" column="0" > 
     792              <spacer name="verticalSpacer_16" > 
     793               <property name="orientation" > 
     794                <enum>Qt::Vertical</enum> 
     795               </property> 
     796               <property name="sizeHint" stdset="0" > 
     797                <size> 
     798                 <width>20</width> 
     799                 <height>0</height> 
     800                </size> 
     801               </property> 
     802              </spacer> 
    626803             </item> 
    627804            </layout> 
     
    683860       <item> 
    684861        <widget class="QFrame" name="frame_3" > 
     862         <property name="sizePolicy" > 
     863          <sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" > 
     864           <horstretch>0</horstretch> 
     865           <verstretch>0</verstretch> 
     866          </sizepolicy> 
     867         </property> 
    685868         <property name="frameShape" > 
    686869          <enum>QFrame::NoFrame</enum> 
     
    692875          <item> 
    693876           <widget class="QGroupBox" name="groupBox_8" > 
     877            <property name="sizePolicy" > 
     878             <sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" > 
     879              <horstretch>0</horstretch> 
     880              <verstretch>0</verstretch> 
     881             </sizepolicy> 
     882            </property> 
    694883            <property name="title" > 
    695884             <string>SPDIF frequency</string> 
     
    708897                <enum>Qt::Vertical</enum> 
    709898               </property> 
    710                <property name="sizeHint" stdset="0" > 
    711                 <size> 
    712                  <width>20</width> 
    713                  <height>40</height> 
     899               <property name="sizeType" > 
     900                <enum>QSizePolicy::MinimumExpanding</enum> 
     901               </property> 
     902               <property name="sizeHint" stdset="0" > 
     903                <size> 
     904                 <width>20</width> 
     905                 <height>0</height> 
    714906                </size> 
    715907               </property> 
     
    721913          <item> 
    722914           <widget class="QGroupBox" name="groupBox_9" > 
     915            <property name="sizePolicy" > 
     916             <sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" > 
     917              <horstretch>0</horstretch> 
     918              <verstretch>0</verstretch> 
     919             </sizepolicy> 
     920            </property> 
    723921            <property name="title" > 
    724922             <string>Word clock</string> 
     
    737935                <enum>Qt::Vertical</enum> 
    738936               </property> 
    739                <property name="sizeHint" stdset="0" > 
    740                 <size> 
    741                  <width>20</width> 
    742                  <height>40</height> 
     937               <property name="sizeType" > 
     938                <enum>QSizePolicy::MinimumExpanding</enum> 
     939               </property> 
     940               <property name="sizeHint" stdset="0" > 
     941                <size> 
     942                 <width>20</width> 
     943                 <height>0</height> 
    743944                </size> 
    744945               </property> 
     
    750951          <item> 
    751952           <widget class="QGroupBox" name="groupBox_10" > 
     953            <property name="sizePolicy" > 
     954             <sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" > 
     955              <horstretch>0</horstretch> 
     956              <verstretch>0</verstretch> 
     957             </sizepolicy> 
     958            </property> 
    752959            <property name="title" > 
    753960             <string>System clock</string> 
     
    787994                <enum>Qt::Vertical</enum> 
    788995               </property> 
    789                <property name="sizeHint" stdset="0" > 
    790                 <size> 
    791                  <width>20</width> 
    792                  <height>40</height> 
     996               <property name="sizeType" > 
     997                <enum>QSizePolicy::MinimumExpanding</enum> 
     998               </property> 
     999               <property name="sizeHint" stdset="0" > 
     1000                <size> 
     1001                 <width>20</width> 
     1002                 <height>0</height> 
    7931003                </size> 
    7941004               </property> 
     
    8001010          <item> 
    8011011           <widget class="QGroupBox" name="groupBox_16" > 
     1012            <property name="sizePolicy" > 
     1013             <sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" > 
     1014              <horstretch>0</horstretch> 
     1015              <verstretch>0</verstretch> 
     1016             </sizepolicy> 
     1017            </property> 
    8021018            <property name="title" > 
    8031019             <string>Limit bandwidth</string> 
     
    8281044                <enum>Qt::Vertical</enum> 
    8291045               </property> 
    830                <property name="sizeHint" stdset="0" > 
    831                 <size> 
    832                  <width>20</width> 
    833                  <height>40</height> 
     1046               <property name="sizeType" > 
     1047                <enum>QSizePolicy::MinimumExpanding</enum> 
     1048               </property> 
     1049               <property name="sizeHint" stdset="0" > 
     1050                <size> 
     1051                 <width>20</width> 
     1052                 <height>0</height> 
    8341053                </size> 
    8351054               </property> 
     
    8431062       </item> 
    8441063      </layout> 
     1064      <zorder>frame_4</zorder> 
     1065      <zorder>frame</zorder> 
     1066      <zorder>frame_2</zorder> 
     1067      <zorder>frame_3</zorder> 
     1068      <zorder>verticalSpacer_17</zorder> 
     1069      <zorder>frame_5</zorder> 
    8451070     </widget> 
    8461071     <widget class="QWidget" name="mixer" > 
     
    8521077   </item> 
    8531078  </layout> 
     1079  <zorder>tabWidget</zorder> 
    8541080 </widget> 
    8551081 <resources/>