Config: Audio sink configuration (#1798)

This commit is contained in:
Maribel 2016-05-18 23:01:03 +01:00 committed by bunnei
parent 7a7488a0bb
commit d014873916
6 changed files with 134 additions and 0 deletions

View file

@ -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

View file

@ -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>

View 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();
}

View 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;
};

View 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>

View file

@ -25,5 +25,6 @@ void ConfigureDialog::setConfiguration() {
void ConfigureDialog::applyConfiguration() {
ui->generalTab->applyConfiguration();
ui->audioTab->applyConfiguration();
ui->debugTab->applyConfiguration();
}