diff options
Diffstat (limited to 'Ryujinx/Ui/Windows/SettingsWindow.cs')
-rw-r--r-- | Ryujinx/Ui/Windows/SettingsWindow.cs | 28 |
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(); } } |