aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx/Ui/Windows/SettingsWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx/Ui/Windows/SettingsWindow.cs')
-rw-r--r--Ryujinx/Ui/Windows/SettingsWindow.cs28
1 files changed, 27 insertions, 1 deletions
diff --git a/Ryujinx/Ui/Windows/SettingsWindow.cs b/Ryujinx/Ui/Windows/SettingsWindow.cs
index da2301f0..c5aeebda 100644
--- a/Ryujinx/Ui/Windows/SettingsWindow.cs
+++ b/Ryujinx/Ui/Windows/SettingsWindow.cs
@@ -30,7 +30,8 @@ namespace Ryujinx.Ui.Windows
private readonly TimeZoneContentManager _timeZoneContentManager;
private readonly HashSet<string> _validTzRegions;
- private long _systemTimeOffset;
+ private long _systemTimeOffset;
+ private float _previousVolumeLevel;
#pragma warning disable CS0649, IDE0044
[GUI] CheckButton _errorLogToggle;
@@ -65,6 +66,8 @@ namespace Ryujinx.Ui.Windows
[GUI] EntryCompletion _systemTimeZoneCompletion;
[GUI] Box _audioBackendBox;
[GUI] ComboBox _audioBackendSelect;
+ [GUI] Label _audioVolumeLabel;
+ [GUI] Scale _audioVolumeSlider;
[GUI] SpinButton _systemTimeYearSpin;
[GUI] SpinButton _systemTimeMonthSpin;
[GUI] SpinButton _systemTimeDaySpin;
@@ -364,6 +367,20 @@ namespace Ryujinx.Ui.Windows
_audioBackendBox.Add(_audioBackendSelect);
_audioBackendSelect.Show();
+ _previousVolumeLevel = ConfigurationState.Instance.System.AudioVolume;
+ _audioVolumeLabel = new Label("Volume: ");
+ _audioVolumeSlider = new Scale(Orientation.Horizontal, 0, 100, 1);
+ _audioVolumeLabel.MarginStart = 10;
+ _audioVolumeSlider.ValuePos = PositionType.Right;
+ _audioVolumeSlider.WidthRequest = 200;
+
+ _audioVolumeSlider.Value = _previousVolumeLevel * 100;
+ _audioVolumeSlider.ValueChanged += VolumeSlider_OnChange;
+ _audioBackendBox.Add(_audioVolumeLabel);
+ _audioBackendBox.Add(_audioVolumeSlider);
+ _audioVolumeLabel.Show();
+ _audioVolumeSlider.Show();
+
bool openAlIsSupported = false;
bool soundIoIsSupported = false;
bool sdl2IsSupported = false;
@@ -498,6 +515,9 @@ namespace Ryujinx.Ui.Windows
ConfigurationState.Instance.Graphics.BackendThreading.Value = backendThreading;
ConfigurationState.Instance.Graphics.ResScale.Value = int.Parse(_resScaleCombo.ActiveId);
ConfigurationState.Instance.Graphics.ResScaleCustom.Value = resScaleCustom;
+ ConfigurationState.Instance.System.AudioVolume.Value = (float)_audioVolumeSlider.Value / 100.0f;
+
+ _previousVolumeLevel = ConfigurationState.Instance.System.AudioVolume.Value;
if (_audioBackendSelect.GetActiveIter(out TreeIter activeIter))
{
@@ -651,6 +671,11 @@ namespace Ryujinx.Ui.Windows
controllerWindow.Show();
}
+ private void VolumeSlider_OnChange(object sender, EventArgs args)
+ {
+ ConfigurationState.Instance.System.AudioVolume.Value = (float)(_audioVolumeSlider.Value / 100);
+ }
+
private void SaveToggle_Activated(object sender, EventArgs args)
{
SaveSettings();
@@ -664,6 +689,7 @@ namespace Ryujinx.Ui.Windows
private void CloseToggle_Activated(object sender, EventArgs args)
{
+ ConfigurationState.Instance.System.AudioVolume.Value = _previousVolumeLevel;
Dispose();
}
}