Changeset 1622
- Timestamp:
- 08/16/09 06:53:12 (14 years ago)
- Files:
-
- trunk/libffado/src/rme/fireface_hw.cpp (modified) (1 diff)
- trunk/libffado/src/rme/fireface_settings_ctrls.cpp (modified) (4 diffs)
- trunk/libffado/src/rme/rme_avdevice.cpp (modified) (1 diff)
- trunk/libffado/src/rme/rme_avdevice.h (modified) (1 diff)
- trunk/libffado/src/rme/rme_avdevice_settings.cpp (modified) (2 diffs)
- trunk/libffado/support/mixer-qt4/mixer_rme.py (modified) (3 diffs)
- trunk/libffado/support/mixer-qt4/mixer_rme.ui (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/rme/fireface_hw.cpp
r1616 r1622 58 58 settings.input_level = FF_SWPARAM_ILEVEL_LOGAIN; 59 59 settings.output_level = FF_SWPARAM_OLEVEL_HIGAIN; 60 settings.phones_level = FF_SWPARAM_PHONESLEVEL_HIGAIN; 60 61 61 62 // Set amplifier gains trunk/libffado/src/rme/fireface_settings_ctrls.cpp
r1616 r1622 91 91 } 92 92 break; 93 case RME_CTRL_INPUT_LEVEL: 94 if (m_parent.setInputLevel(v)) { 95 m_value = v; 96 } 97 break; 98 case RME_CTRL_OUTPUT_LEVEL: 99 if (m_parent.setOutputLevel(v)) { 100 m_value = v; 101 } 102 break; 93 103 case RME_CTRL_FF400_PAD_SW: 94 104 // Object's "m_info" field is the channel … … 101 111 if (m_parent.setInputInstrOpt(m_info, v)) { 102 112 m_value = (v != 0); 113 } 114 break; 115 case RME_CTRL_PHONES_LEVEL: 116 if (m_parent.setPhonesLevel(v)) { 117 m_value = v; 103 118 } 104 119 break; … … 136 151 return val; 137 152 break; 153 case RME_CTRL_INPUT_LEVEL: 154 return m_parent.getInputLevel(); 155 break; 156 case RME_CTRL_OUTPUT_LEVEL: 157 return m_parent.getOutputLevel(); 158 break; 138 159 case RME_CTRL_FF400_PAD_SW: 139 160 return m_parent.getInputPadOpt(m_info); … … 141 162 case RME_CTRL_FF400_INSTR_SW: 142 163 return m_parent.getInputInstrOpt(m_info); 164 break; 165 case RME_CTRL_PHONES_LEVEL: 166 return m_parent.getPhonesLevel(); 143 167 break; 144 168 trunk/libffado/src/rme/rme_avdevice.cpp
r1616 r1622 130 130 new RmeSettingsCtrl(*this, RME_CTRL_PHANTOM_SW, 0, 131 131 "Phantom", "Phantom switches", "")); 132 result &= m_ControlContainer->addElement( 133 new RmeSettingsCtrl(*this, RME_CTRL_INPUT_LEVEL, 0, 134 "Input_level", "Input level", "")); 135 result &= m_ControlContainer->addElement( 136 new RmeSettingsCtrl(*this, RME_CTRL_OUTPUT_LEVEL, 0, 137 "Output_level", "Output level", "")); 138 result &= m_ControlContainer->addElement( 139 new RmeSettingsCtrl(*this, RME_CTRL_PHONES_LEVEL, 0, 140 "Phones_level", "Phones level", "")); 141 132 142 if (m_rme_model == RME_MODEL_FIREFACE400) { 133 143 // Instrument input options trunk/libffado/src/rme/rme_avdevice.h
r1616 r1622 95 95 signed int getPhantom(unsigned int channel); 96 96 signed int setPhantom(unsigned int channel, unsigned int status); 97 signed int getInputLevel(void); 98 signed int setInputLevel(unsigned int level); 99 signed int getOutputLevel(void); 100 signed int setOutputLevel(unsigned int level); 101 signed int getPhonesLevel(void); 102 signed int setPhonesLevel(unsigned int level); 97 103 signed int getInputPadOpt(unsigned int channel); 98 104 signed int setInputPadOpt(unsigned int channel, unsigned int status); trunk/libffado/src/rme/rme_avdevice_settings.cpp
r1616 r1622 48 48 49 49 settings.mic_phantom[channel] = (status != 0); 50 set_hardware_params(); 51 52 return 0; 53 } 54 55 signed int 56 Device::getInputLevel(void) { 57 return settings.input_level; 58 } 59 60 signed int 61 Device::setInputLevel(unsigned int level) { 62 63 if (level<FF_SWPARAM_ILEVEL_LOGAIN || level>FF_SWPARAM_ILEVEL_m10dBV) { 64 debugOutput(DEBUG_LEVEL_WARNING, "Invalid input level ID %d\n", level); 65 return -1; 66 } 67 settings.input_level = level; 68 set_hardware_params(); 69 70 return 0; 71 } 72 73 signed int 74 Device::getOutputLevel(void) { 75 return settings.output_level; 76 } 77 78 signed int 79 Device::setOutputLevel(unsigned int level) { 80 81 if (level<FF_SWPARAM_OLEVEL_HIGAIN || level>FF_SWPARAM_OLEVEL_m10dBV) { 82 debugOutput(DEBUG_LEVEL_WARNING, "Invalid output level ID %d\n", level); 83 return -1; 84 } 85 settings.output_level = level; 86 set_hardware_params(); 87 88 return 0; 89 } 90 91 signed int 92 Device::getPhonesLevel(void) { 93 return settings.phones_level; 94 } 95 96 signed int 97 Device::setPhonesLevel(unsigned int level) { 98 99 if (level<FF_SWPARAM_PHONESLEVEL_HIGAIN || level>FF_SWPARAM_PHONESLEVEL_m10dBV) { 100 debugOutput(DEBUG_LEVEL_WARNING, "Invalid phones level ID %d\n", level); 101 return -1; 102 } 103 settings.phones_level = level; 50 104 set_hardware_params(); 51 105 … … 108 162 signed int 109 163 Device::setAmpGain(unsigned int index, signed int val) { 110 quadlet_t regval = 0;111 164 112 165 if (m_rme_model != RME_MODEL_FIREFACE400) { trunk/libffado/support/mixer-qt4/mixer_rme.py
r1616 r1622 56 56 } 57 57 58 self.Radiobuttons={ 59 self.level_in_lo_gain: ['/Control/Input_level', 1], 60 self.level_in_p4dBu: ['/Control/Input_level', 2], 61 self.level_in_m10dBV: ['/Control/Input_level', 3], 62 63 self.level_out_hi_gain: ['/Control/Output_level', 1], 64 self.level_out_p4dBu: ['/Control/Output_level', 2], 65 self.level_out_m10dBV: ['/Control/Output_level', 3], 66 67 self.phones_hi_gain: ['/Control/Phones_level', 1], 68 self.phones_p4dBu: ['/Control/Phones_level', 2], 69 self.phones_m10dBV: ['/Control/Phones_level', 3], 70 } 71 72 58 73 self.Gains={ 59 74 self.gain_mic1: ['/Control/Gains', 0], … … 83 98 log.debug("switch %s set to %d" % (self.Switches[sender][0], a0)) 84 99 self.hw.setDiscrete(self.Switches[sender][0], a0) 100 101 # Public slot: update generic radiobuttons 102 def updateRadiobutton(self, a0): 103 sender = self.sender() 104 if (a0 != 0): 105 # Only change the control state on a button being "checked" 106 log.debug("radiobutton group %s set to %d" % (self.Radiobuttons[sender][0], self.Radiobuttons[sender][1])) 107 self.hw.setDiscrete(self.Radiobuttons[sender][0], self.Radiobuttons[sender][1]) 85 108 86 109 # Public slot: update gains … … 160 183 QObject.connect(ctrl, SIGNAL('toggled(bool)'), self.updateSwitch) 161 184 185 for ctrl, info in self.Radiobuttons.iteritems(): 186 if (not(ctrl.isEnabled())): 187 continue; 188 # This is a touch wasteful since it means we retrieve the control 189 # value once per radio button rather than once per radio button 190 # group. In time we might introduce radiobutton groupings in the 191 # self.* datastructures to avoid this, but for the moment this is 192 # easy and it works. 193 val = self.hw.getDiscrete(info[0]) 194 if (val == info[1]): 195 val = 1 196 else: 197 val = 0 198 ctrl.setChecked(val) 199 log.debug("Radiobutton %s[%d] is %d" % (info[0], info[1], val)) 200 QObject.connect(ctrl, SIGNAL('toggled(bool)'), self.updateRadiobutton) 201 162 202 for ctrl, info in self.Gains.iteritems(): 163 203 if (not(ctrl.isEnabled())): trunk/libffado/support/mixer-qt4/mixer_rme.ui
r1616 r1622 282 282 <layout class="QVBoxLayout" name="verticalLayout_8" > 283 283 <item> 284 <widget class="QRadioButton" name=" radioButton_9" >284 <widget class="QRadioButton" name="level_in_lo_gain" > 285 285 <property name="text" > 286 286 <string>Lo gain</string> … … 289 289 </item> 290 290 <item> 291 <widget class="QRadioButton" name=" radioButton_10" >291 <widget class="QRadioButton" name="level_in_p4dBu" > 292 292 <property name="text" > 293 293 <string>+4 dBu</string> … … 296 296 </item> 297 297 <item> 298 <widget class="QRadioButton" name=" radioButton_11" >298 <widget class="QRadioButton" name="level_in_m10dBV" > 299 299 <property name="text" > 300 300 <string>-10 dBV</string> … … 565 565 <layout class="QVBoxLayout" name="verticalLayout_9" > 566 566 <item> 567 <widget class="QRadioButton" name=" radioButton_12" >567 <widget class="QRadioButton" name="level_out_hi_gain" > 568 568 <property name="text" > 569 569 <string>Hi gain</string> … … 572 572 </item> 573 573 <item> 574 <widget class="QRadioButton" name=" radioButton_13" >574 <widget class="QRadioButton" name="level_out_p4dBu" > 575 575 <property name="text" > 576 576 <string>+4 dBu</string> … … 579 579 </item> 580 580 <item> 581 <widget class="QRadioButton" name=" radioButton_14" >581 <widget class="QRadioButton" name="level_out_m10dBV" > 582 582 <property name="text" > 583 583 <string>-10 dBV</string> … … 611 611 <layout class="QVBoxLayout" name="verticalLayout_10" > 612 612 <item> 613 <widget class="QRadioButton" name=" radioButton_15" >613 <widget class="QRadioButton" name="phones_hi_gain" > 614 614 <property name="text" > 615 615 <string>Hi gain</string> … … 618 618 </item> 619 619 <item> 620 <widget class="QRadioButton" name=" radioButton_16" >620 <widget class="QRadioButton" name="phones_p4dBu" > 621 621 <property name="text" > 622 622 <string>+4 dBU</string> … … 625 625 </item> 626 626 <item> 627 <widget class="QRadioButton" name=" radioButton_17" >627 <widget class="QRadioButton" name="phones_m10dBV" > 628 628 <property name="text" > 629 629 <string>-10 dBV</string>