Changeset 2033

Show
Ignore:
Timestamp:
02/03/12 03:15:10 (9 years ago)
Author:
jwoithe
Message:

rme: implement SPDIF output option control via ffado-mixer. Again, I haven't the means to confirm whether these settings have the desired effect on the SPDIF bitstream yet.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/rme/fireface_settings_ctrls.cpp

    r2032 r2033  
    120120            } 
    121121            break; 
     122        case RME_CTRL_SPDIF_OUTPUT_OPTICAL: 
     123            if (m_parent.setSpdifOutputIsOptical(v!=0) == 0) { 
     124               m_value = (v != 0); 
     125            } 
     126            break; 
     127        case RME_CTRL_SPDIF_OUTPUT_PRO: 
     128            if (m_parent.setSpdifOutputProOn(v!=0) == 0) { 
     129               m_value = (v != 0); 
     130            } 
     131            break; 
     132        case RME_CTRL_SPDIF_OUTPUT_EMPHASIS: 
     133            if (m_parent.setSpdifOutputEmphasisOn(v!=0) == 0) { 
     134               m_value = (v != 0); 
     135            } 
     136            break; 
     137        case RME_CTRL_SPDIF_OUTPUT_NONAUDIO: 
     138            if (m_parent.setSpdifOutputNonAudioOn(v!=0) == 0) { 
     139               m_value = (v != 0); 
     140            } 
     141            break; 
    122142        case RME_CTRL_PHONES_LEVEL: 
    123143            if (m_parent.setPhonesLevel(v)) { 
     
    173193            i = m_parent.getSpdifInputMode(); 
    174194            return i==FF_SWPARAM_SPDIF_INPUT_COAX?0:1; 
     195            break; 
     196        case RME_CTRL_SPDIF_OUTPUT_OPTICAL: 
     197            return m_parent.getSpdifOutputIsOptical(); 
     198            break; 
     199        case RME_CTRL_SPDIF_OUTPUT_PRO: 
     200            return m_parent.getSpdifOutputProOn(); 
     201            break; 
     202        case RME_CTRL_SPDIF_OUTPUT_EMPHASIS: 
     203            return m_parent.getSpdifOutputEmphasisOn(); 
     204            break; 
     205        case RME_CTRL_SPDIF_OUTPUT_NONAUDIO: 
     206            return m_parent.getSpdifOutputNonAudioOn(); 
    175207            break; 
    176208        case RME_CTRL_PHONES_LEVEL: 
  • trunk/libffado/src/rme/fireface_settings_ctrls.h

    r2016 r2033  
    3333#define RME_CTRL_PHANTOM_SW            0x0001 
    3434#define RME_CTRL_SPDIF_INPUT_MODE      0x0002 
    35 #define RME_CTRL_SPDIF_OUTPUT_OPTIONS  0x0003 
    36 #define RME_CTRL_CLOCK_MODE            0x0004 
    37 #define RME_CTRL_SYNC_REF              0x0005 
    38 #define RME_CTRL_DEV_OPTIONS           0x0006 
    39 #define RME_CTRL_LIMIT_BANDWIDTH       0x0007 
    40 #define RME_CTRL_INPUT_LEVEL           0x0008 
    41 #define RME_CTRL_OUTPUT_LEVEL          0x0009 
    42 #define RME_CTRL_INSTRUMENT_OPTIONS    0x000a 
    43 #define RME_CTRL_WCLK_SINGLE_SPEED     0x000b 
    44 #define RME_CTRL_PHONES_LEVEL          0x000c 
    45 #define RME_CTRL_INPUT0_OPTIONS        0x000d 
    46 #define RME_CTRL_INPUT1_OPTIONS        0x000e 
    47 #define RME_CTRL_INPUT2_OPTIONS        0x000f 
    48 #define RME_CTRL_FF400_PAD_SW          0x0010 
    49 #define RME_CTRL_FF400_INSTR_SW        0x0011 
     35#define RME_CTRL_SPDIF_OUTPUT_OPTICAL  0x0003 
     36#define RME_CTRL_SPDIF_OUTPUT_PRO      0x0004 
     37#define RME_CTRL_SPDIF_OUTPUT_EMPHASIS 0x0005 
     38#define RME_CTRL_SPDIF_OUTPUT_NONAUDIO 0x0006 
     39#define RME_CTRL_CLOCK_MODE            0x0007 
     40#define RME_CTRL_SYNC_REF              0x0008 
     41#define RME_CTRL_DEV_OPTIONS           0x0009 
     42#define RME_CTRL_LIMIT_BANDWIDTH       0x000a 
     43#define RME_CTRL_INPUT_LEVEL           0x000b 
     44#define RME_CTRL_OUTPUT_LEVEL          0x000c 
     45#define RME_CTRL_INSTRUMENT_OPTIONS    0x000d 
     46#define RME_CTRL_WCLK_SINGLE_SPEED     0x000e 
     47#define RME_CTRL_PHONES_LEVEL          0x000f 
     48#define RME_CTRL_INPUT0_OPTIONS        0x0010 
     49#define RME_CTRL_INPUT1_OPTIONS        0x0011 
     50#define RME_CTRL_INPUT2_OPTIONS        0x0012 
     51#define RME_CTRL_FF400_PAD_SW          0x0013 
     52#define RME_CTRL_FF400_INSTR_SW        0x0014 
    5053 
    5154#define RME_CTRL_INFO_MODEL            0x0100 
  • trunk/libffado/src/rme/rme_avdevice.cpp

    r2032 r2033  
    164164            "SPDIF_input_mode", "SPDIF input mode", "")); 
    165165    result &= m_ControlContainer->addElement( 
     166        new RmeSettingsCtrl(*this, RME_CTRL_SPDIF_OUTPUT_OPTICAL, 0, 
     167            "SPDIF_output_optical", "SPDIF output optical", "")); 
     168    result &= m_ControlContainer->addElement( 
     169        new RmeSettingsCtrl(*this, RME_CTRL_SPDIF_OUTPUT_EMPHASIS, 0, 
     170            "SPDIF_output_emphasis", "SPDIF output emphasis", "")); 
     171    result &= m_ControlContainer->addElement( 
     172        new RmeSettingsCtrl(*this, RME_CTRL_SPDIF_OUTPUT_PRO, 0, 
     173            "SPDIF_output_pro", "SPDIF output pro", "")); 
     174    result &= m_ControlContainer->addElement( 
     175        new RmeSettingsCtrl(*this, RME_CTRL_SPDIF_OUTPUT_NONAUDIO, 0, 
     176            "SPDIF_output_nonaudio", "SPDIF output non-audio", "")); 
     177    result &= m_ControlContainer->addElement( 
    166178        new RmeSettingsCtrl(*this, RME_CTRL_PHONES_LEVEL, 0, 
    167179            "Phones_level", "Phones level", "")); 
  • trunk/libffado/src/rme/rme_avdevice.h

    r2032 r2033  
    118118    signed int getSpdifInputMode(void); 
    119119    signed int setSpdifInputMode(signed int mode); 
     120    signed int getSpdifOutputIsOptical(void); 
     121    signed int setSpdifOutputIsOptical(signed int enable); 
     122    signed int getSpdifOutputEmphasisOn(void); 
     123    signed int setSpdifOutputEmphasisOn(signed int enable); 
     124    signed int getSpdifOutputNonAudioOn(void); 
     125    signed int setSpdifOutputNonAudioOn(signed int enable); 
     126    signed int getSpdifOutputProOn(void); 
     127    signed int setSpdifOutputProOn(signed int enable); 
    120128    signed int getAmpGain(unsigned int index); 
    121129    signed int setAmpGain(unsigned int index, signed int val); 
  • trunk/libffado/src/rme/rme_avdevice_settings.cpp

    r2032 r2033  
    157157    set_hardware_params(); 
    158158    return 0; 
     159} 
     160 
     161signed int 
     162Device::getSpdifOutputIsOptical(void) { 
     163    return settings->spdif_output_mode == FF_SWPARAM_SPDIF_OUTPUT_OPTICAL; 
     164} 
     165signed int 
     166Device::setSpdifOutputIsOptical(signed int enable) { 
     167  settings->spdif_output_mode = enable==1?FF_SWPARAM_SPDIF_OUTPUT_OPTICAL:FF_SWPARAM_SPDIF_OUTPUT_COAX; 
     168  set_hardware_params(); 
     169  return 0; 
     170} 
     171signed int 
     172Device::getSpdifOutputEmphasisOn(void) { 
     173    return settings->spdif_output_emphasis == FF_SWPARAM_SPDIF_OUTPUT_EMPHASIS_ON; 
     174} 
     175signed int 
     176Device::setSpdifOutputEmphasisOn(signed int enable) { 
     177  settings->spdif_output_emphasis = enable==1?FF_SWPARAM_SPDIF_OUTPUT_EMPHASIS_ON:0; 
     178  set_hardware_params(); 
     179  return 0; 
     180} 
     181signed int 
     182Device::getSpdifOutputNonAudioOn(void) { 
     183    return settings->spdif_output_nonaudio == FF_SWPARAM_SPDIF_OUTPUT_NONAUDIO_ON; 
     184} 
     185signed int 
     186Device::setSpdifOutputNonAudioOn(signed int enable) { 
     187  settings->spdif_output_nonaudio = enable==1?FF_SWPARAM_SPDIF_OUTPUT_NONAUDIO_ON:0; 
     188  set_hardware_params(); 
     189  return 0; 
     190} 
     191signed int 
     192Device::getSpdifOutputProOn(void) { 
     193    return settings->spdif_output_pro == FF_SWPARAM_SPDIF_OUTPUT_PRO_ON; 
     194} 
     195signed int 
     196Device::setSpdifOutputProOn(signed int enable) { 
     197  settings->spdif_output_pro = enable==1?FF_SWPARAM_SPDIF_OUTPUT_PRO_ON:0; 
     198  set_hardware_params(); 
     199  return 0; 
    159200} 
    160201 
  • trunk/libffado/support/mixer-qt4/ffado/mixer/rme.py

    r2032 r2033  
    5858            self.ff400_chan4_opt_instr: ['/Control/Chan4_opt_instr'], 
    5959            self.ff400_chan4_opt_pad:   ['/Control/Chan4_opt_pad'], 
     60 
     61            self.spdif_output_optical:  ['/Control/SPDIF_output_optical', 0], 
     62            self.spdif_output_emphasis: ['/Control/SPDIF_output_emphasis', 0], 
     63            self.spdif_output_pro:      ['/Control/SPDIF_output_pro', 0], 
     64            self.spdif_output_nonaudio: ['/Control/SPDIF_output_nonaudio', 0], 
    6065        } 
    6166 
  • trunk/libffado/support/mixer-qt4/ffado/mixer/rme.ui

    r2032 r2033  
    513513            <layout class="QGridLayout" name="gridLayout_6"> 
    514514             <item row="0" column="0"> 
    515               <widget class="QCheckBox" name="checkBox"> 
     515              <widget class="QCheckBox" name="spdif_output_optical"> 
    516516               <property name="text"> 
    517517                <string>Optical</string> 
     
    520520             </item> 
    521521             <item row="0" column="1"> 
    522               <widget class="QCheckBox" name="checkBox_3"> 
     522              <widget class="QCheckBox" name="spdif_output_emphasis"> 
    523523               <property name="text"> 
    524524                <string>Emphasis</string> 
     
    527527             </item> 
    528528             <item row="1" column="0"> 
    529               <widget class="QCheckBox" name="checkBox_2"> 
     529              <widget class="QCheckBox" name="spdif_output_pro"> 
    530530               <property name="text"> 
    531531                <string>Professional</string> 
     
    534534             </item> 
    535535             <item row="1" column="1"> 
    536               <widget class="QCheckBox" name="checkBox_4"> 
     536              <widget class="QCheckBox" name="spdif_output_nonaudio"> 
    537537               <property name="text"> 
    538538                <string>Non-audio</string>