Config: Audio sink configuration (#1798)
This commit is contained in:
		@@ -20,6 +20,7 @@ set(SRCS
 | 
			
		||||
            util/spinbox.cpp
 | 
			
		||||
            util/util.cpp
 | 
			
		||||
            bootmanager.cpp
 | 
			
		||||
            configure_audio.cpp
 | 
			
		||||
            configure_debug.cpp
 | 
			
		||||
            configure_dialog.cpp
 | 
			
		||||
            configure_general.cpp
 | 
			
		||||
@@ -51,6 +52,7 @@ set(HEADERS
 | 
			
		||||
            util/spinbox.h
 | 
			
		||||
            util/util.h
 | 
			
		||||
            bootmanager.h
 | 
			
		||||
            configure_audio.h
 | 
			
		||||
            configure_debug.h
 | 
			
		||||
            configure_dialog.h
 | 
			
		||||
            configure_general.h
 | 
			
		||||
@@ -69,6 +71,7 @@ set(UIS
 | 
			
		||||
            debugger/profiler.ui
 | 
			
		||||
            debugger/registers.ui
 | 
			
		||||
            configure.ui
 | 
			
		||||
            configure_audio.ui
 | 
			
		||||
            configure_debug.ui
 | 
			
		||||
            configure_general.ui
 | 
			
		||||
            hotkeys.ui
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,11 @@
 | 
			
		||||
       <string>Input</string>
 | 
			
		||||
      </attribute>
 | 
			
		||||
     </widget>
 | 
			
		||||
      <widget class="ConfigureAudio" name="audioTab">
 | 
			
		||||
        <attribute name="title">
 | 
			
		||||
          <string>Audio</string>
 | 
			
		||||
        </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
     <widget class="ConfigureDebug" name="debugTab">
 | 
			
		||||
      <attribute name="title">
 | 
			
		||||
       <string>Debug</string>
 | 
			
		||||
@@ -52,6 +57,12 @@
 | 
			
		||||
   <header>configure_general.h</header>
 | 
			
		||||
   <container>1</container>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>ConfigureAudio</class>
 | 
			
		||||
   <extends>QWidget</extends>
 | 
			
		||||
   <header>configure_audio.h</header>
 | 
			
		||||
   <container>1</container>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>ConfigureDebug</class>
 | 
			
		||||
   <extends>QWidget</extends>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								src/citra_qt/configure_audio.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/citra_qt/configure_audio.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
// Copyright 2016 Citra Emulator Project
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "audio_core/sink_details.h"
 | 
			
		||||
 | 
			
		||||
#include "citra_qt/configure_audio.h"
 | 
			
		||||
#include "ui_configure_audio.h"
 | 
			
		||||
 | 
			
		||||
#include "core/settings.h"
 | 
			
		||||
 | 
			
		||||
ConfigureAudio::ConfigureAudio(QWidget* parent) :
 | 
			
		||||
        QWidget(parent),
 | 
			
		||||
        ui(std::make_unique<Ui::ConfigureAudio>())
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
 | 
			
		||||
    ui->output_sink_combo_box->clear();
 | 
			
		||||
    ui->output_sink_combo_box->addItem("auto");
 | 
			
		||||
    for (const auto& sink_detail : AudioCore::g_sink_details) {
 | 
			
		||||
        ui->output_sink_combo_box->addItem(sink_detail.id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this->setConfiguration();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ConfigureAudio::~ConfigureAudio() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureAudio::setConfiguration() {
 | 
			
		||||
    for (int index = 0; index < ui->output_sink_combo_box->count(); index++) {
 | 
			
		||||
        if (ui->output_sink_combo_box->itemText(index).toStdString() == Settings::values.sink_id) {
 | 
			
		||||
            ui->output_sink_combo_box->setCurrentIndex(index);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ui->output_sink_combo_box->setCurrentIndex(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureAudio::applyConfiguration() {
 | 
			
		||||
    Settings::values.sink_id = ui->output_sink_combo_box->itemText(ui->output_sink_combo_box->currentIndex()).toStdString();
 | 
			
		||||
    Settings::Apply();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								src/citra_qt/configure_audio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/citra_qt/configure_audio.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
// Copyright 2016 Citra Emulator Project
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class ConfigureAudio;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ConfigureAudio : public QWidget {
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ConfigureAudio(QWidget* parent = nullptr);
 | 
			
		||||
    ~ConfigureAudio();
 | 
			
		||||
 | 
			
		||||
    void applyConfiguration();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void setConfiguration();
 | 
			
		||||
 | 
			
		||||
    std::unique_ptr<Ui::ConfigureAudio> ui;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										48
									
								
								src/citra_qt/configure_audio.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/citra_qt/configure_audio.ui
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>ConfigureAudio</class>
 | 
			
		||||
 <widget class="QWidget" name="ConfigureAudio">
 | 
			
		||||
  <layout class="QVBoxLayout">
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QGroupBox">
 | 
			
		||||
     <property name="title">
 | 
			
		||||
      <string>Audio</string>
 | 
			
		||||
     </property>
 | 
			
		||||
     <layout class="QVBoxLayout">
 | 
			
		||||
      <item>
 | 
			
		||||
       <layout class="QHBoxLayout">
 | 
			
		||||
        <item>
 | 
			
		||||
         <widget class="QLabel">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Output Engine:</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item>
 | 
			
		||||
         <widget class="QComboBox" name="output_sink_combo_box">
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </item>
 | 
			
		||||
     </layout>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer>
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>40</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources />
 | 
			
		||||
 <connections />
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -25,5 +25,6 @@ void ConfigureDialog::setConfiguration() {
 | 
			
		||||
 | 
			
		||||
void ConfigureDialog::applyConfiguration() {
 | 
			
		||||
    ui->generalTab->applyConfiguration();
 | 
			
		||||
    ui->audioTab->applyConfiguration();
 | 
			
		||||
    ui->debugTab->applyConfiguration();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user