Move mute toggling to view-model

This commit is contained in:
Matt Nadareski
2021-07-03 16:21:14 -07:00
parent 09f4adad51
commit 701d4e7c1c
2 changed files with 23 additions and 18 deletions

View File

@@ -35,11 +35,6 @@ namespace RedBookPlayer.GUI
/// </summary>
private Timer _updateTimer;
/// <summary>
/// Last volume for mute toggling
/// </summary>
private int? _lastVolume = null;
public PlayerView() => InitializeComponent(null);
public PlayerView(string xaml) => InitializeComponent(xaml);
@@ -262,19 +257,7 @@ namespace RedBookPlayer.GUI
public void VolumeDownButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.Volume--;
public void MuteToggleButton_Click(object sender, RoutedEventArgs e)
{
if (_lastVolume == null)
{
_lastVolume = PlayerViewModel.Volume;
PlayerViewModel.Volume = 0;
}
else
{
PlayerViewModel.Volume = _lastVolume.Value;
_lastVolume = null;
}
}
public void MuteToggleButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.ToggleMute();
public void EnableDeEmphasisButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.ApplyDeEmphasis = true;

View File

@@ -13,6 +13,11 @@ namespace RedBookPlayer.GUI
/// </summary>
private Player _player;
/// <summary>
/// Last volume for mute toggling
/// </summary>
private int? _lastVolume = null;
#region Player Status
public bool Initialized => _player?.Initialized ?? false;
@@ -189,6 +194,23 @@ namespace RedBookPlayer.GUI
return string.Join("", numbers.Select(i => i.ToString().PadLeft(2, '0').Substring(0, 2)));
}
/// <summary>
/// Temporarily mute playback
/// </summary>
public void ToggleMute()
{
if(_lastVolume == null)
{
_lastVolume = Volume;
Volume = 0;
}
else
{
Volume = _lastVolume.Value;
_lastVolume = null;
}
}
/// <summary>
/// Update the UI from the internal player
/// </summary>