diff --git a/RedBookPlayer/GUI/PlayerView.xaml.cs b/RedBookPlayer/GUI/PlayerView.xaml.cs
index 47bbc07..957bc4c 100644
--- a/RedBookPlayer/GUI/PlayerView.xaml.cs
+++ b/RedBookPlayer/GUI/PlayerView.xaml.cs
@@ -35,11 +35,6 @@ namespace RedBookPlayer.GUI
///
private Timer _updateTimer;
- ///
- /// Last volume for mute toggling
- ///
- 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;
diff --git a/RedBookPlayer/GUI/PlayerViewModel.cs b/RedBookPlayer/GUI/PlayerViewModel.cs
index 6996e2e..6699a18 100644
--- a/RedBookPlayer/GUI/PlayerViewModel.cs
+++ b/RedBookPlayer/GUI/PlayerViewModel.cs
@@ -13,6 +13,11 @@ namespace RedBookPlayer.GUI
///
private Player _player;
+ ///
+ /// Last volume for mute toggling
+ ///
+ 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)));
}
+ ///
+ /// Temporarily mute playback
+ ///
+ public void ToggleMute()
+ {
+ if(_lastVolume == null)
+ {
+ _lastVolume = Volume;
+ Volume = 0;
+ }
+ else
+ {
+ Volume = _lastVolume.Value;
+ _lastVolume = null;
+ }
+ }
+
///
/// Update the UI from the internal player
///