UI - Add Volume Controls + Mute Toggle (F2) (#2871)
* Add the ability to toggle mute in the status bar. * Add the ability to toggle mute in the status bar. * Formatting fixes * Add hotkey (F2) to mute * Add default hotkey to config.json * Add ability to change volume via slider. * Fix Headless * Fix SDL2 Problem : Credits to d3xMachina * Remove unnecessary work * Address gdk comments * Toggling with Hotkey now properly restores volume to original level. * Toggling with Hotkey now properly restores volume to original level. * Update UI to show Volume % instead of Muted/Unmuted * Clean up the volume ui a bit. * Undo unintentionally committed code. * Implement AudRen Support * Restore intiial volume level in function definition. * Finalize UI * Finalize UI * Use clamp for bounds check * Use Math.Clamp for volume in soundio * Address comments by gdkchan * Address remaining comments * Fix missing semicolon * Address remaining gdkchan comment * Fix comment * Change /* to // * Allow volume slider to change volume immediately. Also force label text to cast to int to prevent decimals from showing in status bar * Remove blank line * Undo setting of volume level when "Cancel" is pressed. * Fix allignment for settings window code
This commit is contained in:
parent
e7c2dc8ec3
commit
cb43cc7e32
35 changed files with 411 additions and 94 deletions
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue