From da5385686cb00584666372bdee25d68d1dbe2f42 Mon Sep 17 00:00:00 2001 From: Megamouse <studienricky89@googlemail.com> Date: Sat, 20 Oct 2018 10:11:47 +0200 Subject: [PATCH] Qt: add master volume slider to the audio tab --- rpcs3/Json/tooltips.json | 3 +- rpcs3/rpcs3qt/emu_settings.h | 2 ++ rpcs3/rpcs3qt/settings_dialog.cpp | 10 +++++++ rpcs3/rpcs3qt/settings_dialog.ui | 46 +++++++++++++++++++++++++++---- 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/rpcs3/Json/tooltips.json b/rpcs3/Json/tooltips.json index d9e35067e3..b5d3bc8368 100644 --- a/rpcs3/Json/tooltips.json +++ b/rpcs3/Json/tooltips.json @@ -4,7 +4,8 @@ "audioOutBox_Linux": "PulseAudio uses the recommended native Linux sound system and has good compatibility and sound quality. If it is unavailable on your system, ALSA is the next best alternative. \nOpenAL uses a cross-platform approach but will have poor audio quality and stuttering sound in most games.", "audioDump": "Saves all audio as a raw wave file. If unsure, leave this unchecked.", "convert": "Uses 16-bit audio samples instead of default 32-bit floating point.\nUse with buggy audio drivers if you have no sound or completely broken sound.", - "downmix": "Uses stereo audio output instead of default 7.1 surround sound.\nUse with stereo audio devices. Disable it only if you are using a surround sound audio system." + "downmix": "Uses stereo audio output instead of default 7.1 surround sound.\nUse with stereo audio devices. Disable it only if you are using a surround sound audio system.", + "masterVolume": "Controls the overall volume of the emulation." }, "cpu": { "PPU": { diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index 80d68b8071..9f4722e145 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -100,6 +100,7 @@ public: DumpToFile, ConvertTo16Bit, DownmixStereo, + MasterVolume, // Input / Output PadHandler, @@ -300,6 +301,7 @@ private: { DumpToFile, { "Audio", "Dump to file"}}, { ConvertTo16Bit, { "Audio", "Convert to 16 bit"}}, { DownmixStereo, { "Audio", "Downmix to Stereo"}}, + { MasterVolume, { "Audio", "Master Volume"}}, // Input / Output { PadHandler, { "Input/Output", "Pad"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 8df5029a89..fa47bd3f19 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -722,6 +722,16 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std: xemu_settings->EnhanceCheckBox(ui->downmix, emu_settings::DownmixStereo); SubscribeTooltip(ui->downmix, json_audio["downmix"].toString()); + // Sliders + + xemu_settings->EnhanceSlider(ui->masterVolume, emu_settings::MasterVolume); + SubscribeTooltip(ui->masterVolume, json_audio["masterVolume"].toString()); + ui->masterVolumeLabel->setText(tr("Master: %0%").arg(ui->masterVolume->value())); + connect(ui->masterVolume, &QSlider::valueChanged, [this](int value) + { + ui->masterVolumeLabel->setText(tr("Master: %0%").arg(value)); + }); + // _____ __ ____ _______ _ // |_ _| / / / __ \ |__ __| | | // | | / / | | | | | | __ _| |__ diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 0c1a3e2053..306d165401 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>703</width> - <height>499</height> + <width>752</width> + <height>576</height> </rect> </property> <property name="sizePolicy"> @@ -783,7 +783,7 @@ <attribute name="title"> <string>Audio</string> </attribute> - <layout class="QVBoxLayout" name="verticalLayout_26"> + <layout class="QVBoxLayout" name="verticalLayout_26" stretch="0,1,0"> <item> <layout class="QHBoxLayout" name="horizontalLayout_9" stretch="1,1,1"> <item> @@ -836,15 +836,49 @@ </layout> </item> <item> - <widget class="QWidget" name="widget_8" native="true"/> + <layout class="QVBoxLayout" name="verticalLayout_37"> + <item> + <widget class="QGroupBox" name="groupBox_6"> + <property name="title"> + <string>Volume</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_74"> + <item> + <widget class="QLabel" name="masterVolumeLabel"> + <property name="text"> + <string>Master: 0%</string> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="masterVolume"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer_4"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::MinimumExpanding</enum> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> </item> <item> - <widget class="QWidget" name="widget_2" native="true"/> + <layout class="QVBoxLayout" name="verticalLayout_71"/> </item> </layout> </item> <item> - <spacer name="verticalSpacer_6"> + <spacer name="verticalSpacer_19"> <property name="orientation"> <enum>Qt::Vertical</enum> </property>