Changeset 1615
- Timestamp:
- 08/10/09 06:35:03 (14 years ago)
- Files:
-
- trunk/libffado/doc/rme_notes/rme_config_register_map.txt (modified) (2 diffs)
- trunk/libffado/src/rme/fireface_def.h (modified) (1 diff)
- trunk/libffado/src/rme/fireface_hw.cpp (modified) (2 diffs)
- trunk/libffado/src/rme/rme_avdevice.cpp (modified) (1 diff)
- trunk/libffado/support/mixer-qt4/mixer_rme.py (modified) (1 diff)
- trunk/libffado/support/mixer-qt4/mixer_rme.ui (modified) (26 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/doc/rme_notes/rme_config_register_map.txt
r1614 r1615 2 2 ============================================ 3 3 4 Version: 0.1 54 Version: 0.16 5 5 Author: Jonathan Woithe 6 Date: 8August 20096 Date: 10 August 2009 7 7 8 8 … … 212 212 213 213 Status 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 216 215 bits 9-0: on a 4-quadlet read when in autosync mode, these bits contain 217 216 SR/250, where SR is the sample rate to be passed to the trunk/libffado/src/rme/fireface_def.h
r1609 r1615 259 259 #define SR0_WCLK_LOCK 0x40000000 260 260 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. 268 263 #define SR0_STREAMING_FREQ_MASK 0x000003ff 269 264 trunk/libffado/src/rme/fireface_hw.cpp
r1609 r1615 116 116 return -1; 117 117 118 state->is_streaming = (stat0 & SR0_IS_STREAMING) != 0;118 state->is_streaming = is_streaming; 119 119 120 120 state->clock_mode = (settings.clock_mode == FF_SWPARAM_CLOCK_MODE_MASTER)?FF_STATE_CLOCKMODE_MASTER:FF_STATE_CLOCKMODE_AUTOSYNC; … … 448 448 { 449 449 // 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; 454 451 } 455 452 trunk/libffado/src/rme/rme_avdevice.cpp
r1610 r1615 407 407 // externally clocked the frequency is limited to the external clock 408 408 // 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) { 410 410 // FIXME: if synced to TCO, is autosync_freq valid? 411 411 frequencies.push_back(state.autosync_freq); 412 412 } else 413 if ( hardware_is_streaming()) {413 if (state.is_streaming) { 414 414 unsigned int fixed_mult = multiplier_of_freq(m_software_freq); 415 415 for (j=0; j<3; j++) { trunk/libffado/support/mixer-qt4/mixer_rme.py
r1611 r1615 116 116 self.sync_check_adat2_status.setEnabled(False) 117 117 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 119 120 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) 121 123 self.phones_level_group.setEnabled(False) 122 124 trunk/libffado/support/mixer-qt4/mixer_rme.ui
r1613 r1615 6 6 <x>0</x> 7 7 <y>0</y> 8 <width> 797</width>9 <height> 689</height>8 <width>637</width> 9 <height>781</height> 10 10 </rect> 11 11 </property> … … 16 16 <item> 17 17 <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> 18 24 <property name="currentIndex" > 19 25 <number>0</number> … … 23 29 <string>Control</string> 24 30 </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> 26 197 <item> 27 198 <widget class="QFrame" name="frame_4" > … … 38 209 <string>Phantom</string> 39 210 </property> 40 <layout class="Q VBoxLayout" name="verticalLayout" >41 <item >211 <layout class="QGridLayout" name="gridLayout_7" > 212 <item rowspan="2" row="0" column="0" colspan="3" > 42 213 <widget class="QCheckBox" name="phantom_0" > 43 214 <property name="text" > … … 46 217 </widget> 47 218 </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" > 49 227 <widget class="QCheckBox" name="phantom_1" > 50 228 <property name="text" > … … 53 231 </widget> 54 232 </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" > 63 234 <widget class="QCheckBox" name="phantom_3" > 64 235 <property name="text" > … … 67 238 </widget> 68 239 </item> 69 <item >240 <item row="3" column="0" > 70 241 <spacer name="verticalSpacer_12" > 71 242 <property name="orientation" > … … 76 247 <width>20</width> 77 248 <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>142 249 </size> 143 250 </property> … … 325 432 <item> 326 433 <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> 327 440 <property name="frameShape" > 328 441 <enum>QFrame::NoFrame</enum> … … 357 470 <enum>Qt::Vertical</enum> 358 471 </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> 363 479 </size> 364 480 </property> … … 407 523 <enum>Qt::Vertical</enum> 408 524 </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> 413 532 </size> 414 533 </property> … … 445 564 </widget> 446 565 </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> 447 582 </layout> 448 583 </widget> … … 474 609 </property> 475 610 </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> 476 627 </item> 477 628 </layout> … … 560 711 </widget> 561 712 </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> 562 726 </layout> 563 727 </widget> … … 624 788 </property> 625 789 </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> 626 803 </item> 627 804 </layout> … … 683 860 <item> 684 861 <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> 685 868 <property name="frameShape" > 686 869 <enum>QFrame::NoFrame</enum> … … 692 875 <item> 693 876 <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> 694 883 <property name="title" > 695 884 <string>SPDIF frequency</string> … … 708 897 <enum>Qt::Vertical</enum> 709 898 </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> 714 906 </size> 715 907 </property> … … 721 913 <item> 722 914 <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> 723 921 <property name="title" > 724 922 <string>Word clock</string> … … 737 935 <enum>Qt::Vertical</enum> 738 936 </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> 743 944 </size> 744 945 </property> … … 750 951 <item> 751 952 <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> 752 959 <property name="title" > 753 960 <string>System clock</string> … … 787 994 <enum>Qt::Vertical</enum> 788 995 </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> 793 1003 </size> 794 1004 </property> … … 800 1010 <item> 801 1011 <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> 802 1018 <property name="title" > 803 1019 <string>Limit bandwidth</string> … … 828 1044 <enum>Qt::Vertical</enum> 829 1045 </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> 834 1053 </size> 835 1054 </property> … … 843 1062 </item> 844 1063 </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> 845 1070 </widget> 846 1071 <widget class="QWidget" name="mixer" > … … 852 1077 </item> 853 1078 </layout> 1079 <zorder>tabWidget</zorder> 854 1080 </widget> 855 1081 <resources/>