Changeset 164866e


Ignore:
Timestamp:
03/24/15 12:09:53 (4 months ago)
Author:
Ken Moore <ken@…>
Branches:
master, enter/10, releng/10.1.2
Children:
2edb2d5
Parents:
72ab7c4
Message:

Add a new page to pc-firstboot for configuring the audio output device on the system.

Location:
src-qt5/pc-firstbootgui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src-qt5/pc-firstbootgui/firstboot.cpp

    rb3df0a4 r164866e  
    3939    connect(linePW,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckUser())); 
    4040    connect(linePW2,SIGNAL(textChanged(const QString)),this,SLOT(slotCheckUser())); 
    41     connect(line_PCpass, SIGNAL(testChanged(const QString)), this, SLOT(slotCheckUser())) ; 
    42     connect(line_PCpass_repeat, SIGNAL(testChanged(const QString)), this, SLOT(slotCheckUser())) ; 
     41    connect(line_PCpass, SIGNAL(textChanged(const QString)), this, SLOT(slotCheckUser())) ; 
     42    connect(line_PCpass_repeat, SIGNAL(textChanged(const QString)), this, SLOT(slotCheckUser())) ; 
    4343    connect(push_PC_device, SIGNAL(clicked()), this, SLOT(slotGetPCDevice()) ); 
    4444     
     45    connect(tool_testAudio, SIGNAL(clicked()), this, SLOT(slotPlayAudioTest()) ); 
     46    connect(slider_volume, SIGNAL(valueChanged(int)), this, SLOT(slotAudioVolumeChanged()) ); 
     47    connect(combo_audiodevice, SIGNAL(currentIndexChanged(int)), this, SLOT(slotSetAudioDev()) ); 
    4548    backButton->setText(tr("&Back")); 
    4649    nextButton->setText(tr("&Next")); 
     
    97100    // This makes the status text more "visible" instead of using the blue background 
    98101    statusBar()->setStyleSheet("background: white"); 
     102     
     103    //Load the audio settings values 
     104    combo_audiodevice->clear(); 
     105    QStringList devs = pcbsd::Utils::runShellCommand("pc-sysconfig list-audiodev").join("").split(", "); 
     106    int def = -1; bool found = false; 
     107    for(int i=0; i<devs.length(); i++){ 
     108      combo_audiodevice->addItem(devs[i], devs[i].section(":",0,0)); //<full text>, <pcmID> 
     109      if(devs[i].contains(" default")){ found = true; def = i; } 
     110    } 
     111    if(def<0 && !devs.isEmpty()){ def=0; } 
     112    if(def<0){ 
     113      //No audio devices found - disable this functionality 
     114      Page_Audio->setEnabled(false); //just do the whole page - nothing will work 
     115    }else{ 
     116      combo_audiodevice->setCurrentIndex(def); //make sure this item is initially selected 
     117      if(!found){ slotSetAudioDev(); } //make sure to run the setup command initially 
     118    } 
     119    slider_volume->setValue(100); 
     120    slotAudioVolumeChanged(); //update the volume % label 
     121     
    99122} 
    100123 
     
    273296 
    274297   // Check if we have a wireless device 
    275    if ( installStackWidget->currentIndex() == 3) { 
     298   if ( installStackWidget->currentIndex() == 4) { 
    276299     if ( system("ifconfig wlan0") == 0 ) { 
    277300       haveWifi = true; 
     
    285308 
    286309   // If not doing a wireless connection 
    287    if ( installStackWidget->currentIndex() == 3 && ! haveWifi) { 
    288       installStackWidget->setCurrentIndex(5); 
     310   if ( installStackWidget->currentIndex() == 4 && ! haveWifi) { 
     311      installStackWidget->setCurrentIndex(6); 
    289312      // Save the settings 
    290313      saveSettings(); 
     
    499522} 
    500523 
     524// Set the current audio device 
     525void Installer::slotSetAudioDev(){ 
     526   //Get the currently selected device 
     527  QString dev = combo_audiodevice->currentData().toString(); 
     528  if(dev.isEmpty()){ return; } 
     529  //Now set the device 
     530  QProcess::execute("pc-sysconfig \"setdefaultaudiodevice "+dev+"\""); 
     531} 
     532    
     533//Update the audio volume percentage 
     534void Installer::slotAudioVolumeChanged(){ 
     535  label_volume->setText( QString::number(slider_volume->value())+"%" );  
     536} 
     537 
     538// Play the test audio clip 
     539void Installer::slotPlayAudioTest(){ 
     540  //Ensure the volume is set to te specified value 
     541  QProcess::execute("mixer vol "+QString::number(slider_volume->value())); 
     542  //Now play the audio clip 
     543  QProcess::startDetached("mplayer /usr/local/share/sounds/testsound.ogg"); 
     544} 
     545 
    501546void Installer::saveSettings() 
    502547{ 
  • src-qt5/pc-firstbootgui/firstboot.h

    rb3df0a4 r164866e  
    6060    void slotGetPCDevice(); 
    6161     
     62    // Set the current audio device 
     63    void slotSetAudioDev(); 
     64     
     65    // Update the audio volume label 
     66    void slotAudioVolumeChanged(); 
     67     
     68    // Play the test audio clip 
     69    void slotPlayAudioTest(); 
     70     
    6271private: 
    6372    void proceed(bool); 
  • src-qt5/pc-firstbootgui/firstboot.ui

    r6af504d r164866e  
    4646      </property> 
    4747      <property name="currentIndex"> 
    48        <number>3</number> 
     48       <number>4</number> 
    4949      </property> 
    5050      <widget class="QWidget" name="Page_Welcome"> 
     
    10811081       </layout> 
    10821082      </widget> 
     1083      <widget class="QWidget" name="Page_Audio"> 
     1084       <layout class="QGridLayout" name="gridLayout_11"> 
     1085        <item row="3" column="1"> 
     1086         <layout class="QHBoxLayout" name="horizontalLayout_8"> 
     1087          <item> 
     1088           <widget class="QToolButton" name="tool_testAudio"> 
     1089            <property name="text"> 
     1090             <string>Test</string> 
     1091            </property> 
     1092           </widget> 
     1093          </item> 
     1094         </layout> 
     1095        </item> 
     1096        <item row="5" column="1"> 
     1097         <spacer name="verticalSpacer_8"> 
     1098          <property name="orientation"> 
     1099           <enum>Qt::Vertical</enum> 
     1100          </property> 
     1101          <property name="sizeHint" stdset="0"> 
     1102           <size> 
     1103            <width>20</width> 
     1104            <height>178</height> 
     1105           </size> 
     1106          </property> 
     1107         </spacer> 
     1108        </item> 
     1109        <item row="2" column="2"> 
     1110         <spacer name="horizontalSpacer_28"> 
     1111          <property name="orientation"> 
     1112           <enum>Qt::Horizontal</enum> 
     1113          </property> 
     1114          <property name="sizeHint" stdset="0"> 
     1115           <size> 
     1116            <width>254</width> 
     1117            <height>20</height> 
     1118           </size> 
     1119          </property> 
     1120         </spacer> 
     1121        </item> 
     1122        <item row="2" column="1"> 
     1123         <layout class="QFormLayout" name="formLayout_3"> 
     1124          <property name="fieldGrowthPolicy"> 
     1125           <enum>QFormLayout::AllNonFixedFieldsGrow</enum> 
     1126          </property> 
     1127          <item row="0" column="0"> 
     1128           <widget class="QLabel" name="label_29"> 
     1129            <property name="text"> 
     1130             <string>Output Device:</string> 
     1131            </property> 
     1132           </widget> 
     1133          </item> 
     1134          <item row="0" column="1"> 
     1135           <widget class="QComboBox" name="combo_audiodevice"/> 
     1136          </item> 
     1137          <item row="1" column="0"> 
     1138           <widget class="QLabel" name="label_30"> 
     1139            <property name="text"> 
     1140             <string>Testing Volume:</string> 
     1141            </property> 
     1142           </widget> 
     1143          </item> 
     1144          <item row="1" column="1"> 
     1145           <layout class="QHBoxLayout" name="horizontalLayout_9"> 
     1146            <item> 
     1147             <widget class="QSlider" name="slider_volume"> 
     1148              <property name="maximum"> 
     1149               <number>100</number> 
     1150              </property> 
     1151              <property name="value"> 
     1152               <number>50</number> 
     1153              </property> 
     1154              <property name="orientation"> 
     1155               <enum>Qt::Horizontal</enum> 
     1156              </property> 
     1157             </widget> 
     1158            </item> 
     1159            <item> 
     1160             <widget class="QLabel" name="label_volume"> 
     1161              <property name="sizePolicy"> 
     1162               <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> 
     1163                <horstretch>0</horstretch> 
     1164                <verstretch>0</verstretch> 
     1165               </sizepolicy> 
     1166              </property> 
     1167              <property name="text"> 
     1168               <string notr="true">??%</string> 
     1169              </property> 
     1170             </widget> 
     1171            </item> 
     1172           </layout> 
     1173          </item> 
     1174         </layout> 
     1175        </item> 
     1176        <item row="2" column="0"> 
     1177         <spacer name="horizontalSpacer_27"> 
     1178          <property name="orientation"> 
     1179           <enum>Qt::Horizontal</enum> 
     1180          </property> 
     1181          <property name="sizeHint" stdset="0"> 
     1182           <size> 
     1183            <width>254</width> 
     1184            <height>20</height> 
     1185           </size> 
     1186          </property> 
     1187         </spacer> 
     1188        </item> 
     1189        <item row="1" column="1"> 
     1190         <widget class="QLabel" name="label_27"> 
     1191          <property name="font"> 
     1192           <font> 
     1193            <weight>75</weight> 
     1194            <bold>true</bold> 
     1195           </font> 
     1196          </property> 
     1197          <property name="text"> 
     1198           <string>Configure Audio Output</string> 
     1199          </property> 
     1200         </widget> 
     1201        </item> 
     1202        <item row="0" column="1"> 
     1203         <spacer name="verticalSpacer_3"> 
     1204          <property name="orientation"> 
     1205           <enum>Qt::Vertical</enum> 
     1206          </property> 
     1207          <property name="sizeHint" stdset="0"> 
     1208           <size> 
     1209            <width>20</width> 
     1210            <height>179</height> 
     1211           </size> 
     1212          </property> 
     1213         </spacer> 
     1214        </item> 
     1215        <item row="4" column="1"> 
     1216         <widget class="QLabel" name="label_28"> 
     1217          <property name="text"> 
     1218           <string>Note: Audio settings can also be adjusted later through the PC-BSD audio mixer.</string> 
     1219          </property> 
     1220          <property name="wordWrap"> 
     1221           <bool>true</bool> 
     1222          </property> 
     1223         </widget> 
     1224        </item> 
     1225       </layout> 
     1226      </widget> 
    10831227      <widget class="QWidget" name="Page_Wifi"> 
    10841228       <layout class="QGridLayout" name="gridLayout_8"> 
Note: See TracChangeset for help on using the changeset viewer.