mirror of
https://github.com/aaru-dps/RedBookPlayer.git
synced 2025-12-16 19:24:41 +00:00
Fix volume setting; move view model to common
This commit is contained in:
@@ -389,6 +389,12 @@ namespace RedBookPlayer.Common.Hardware
|
|||||||
/// <param name="load">True to enable loading data tracks, false otherwise</param>
|
/// <param name="load">True to enable loading data tracks, false otherwise</param>
|
||||||
public void SetLoadDataTracks(bool load) => (_opticalDisc as CompactDisc)?.SetLoadDataTracks(load);
|
public void SetLoadDataTracks(bool load) => (_opticalDisc as CompactDisc)?.SetLoadDataTracks(load);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set the value for the volume
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="volume">New volume value</param>
|
||||||
|
public void SetVolume(int volume) => _soundOutput?.SetVolume(volume);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Update the player from the current OpticalDisc
|
/// Update the player from the current OpticalDisc
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -303,6 +303,12 @@ namespace RedBookPlayer.Common.Hardware
|
|||||||
/// <param name="apply"></param>
|
/// <param name="apply"></param>
|
||||||
public void SetDeEmphasis(bool apply) => ApplyDeEmphasis = apply;
|
public void SetDeEmphasis(bool apply) => ApplyDeEmphasis = apply;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set the value for the volume
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="volume">New volume value</param>
|
||||||
|
public void SetVolume(int volume) => Volume = volume;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets or resets the de-emphasis filters
|
/// Sets or resets the de-emphasis filters
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ using System.ComponentModel;
|
|||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using RedBookPlayer.Common.Hardware;
|
using RedBookPlayer.Common.Hardware;
|
||||||
|
|
||||||
namespace RedBookPlayer.GUI
|
namespace RedBookPlayer.Common
|
||||||
{
|
{
|
||||||
public class PlayerViewModel : ReactiveObject
|
public class PlayerViewModel : ReactiveObject
|
||||||
{
|
{
|
||||||
@@ -170,7 +170,7 @@ namespace RedBookPlayer.GUI
|
|||||||
public int Volume
|
public int Volume
|
||||||
{
|
{
|
||||||
get => _volume;
|
get => _volume;
|
||||||
set => this.RaiseAndSetIfChanged(ref _volume, value);
|
private set => this.RaiseAndSetIfChanged(ref _volume, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool? _playing;
|
private bool? _playing;
|
||||||
@@ -270,6 +270,12 @@ namespace RedBookPlayer.GUI
|
|||||||
/// <param name="load">True to enable loading data tracks, false otherwise</param>
|
/// <param name="load">True to enable loading data tracks, false otherwise</param>
|
||||||
public void SetLoadDataTracks(bool load) => _player?.SetLoadDataTracks(load);
|
public void SetLoadDataTracks(bool load) => _player?.SetLoadDataTracks(load);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set the value for the volume
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="volume">New volume value</param>
|
||||||
|
public void SetVolume(int volume) => _player?.SetVolume(volume);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Temporarily mute playback
|
/// Temporarily mute playback
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -278,11 +284,11 @@ namespace RedBookPlayer.GUI
|
|||||||
if(_lastVolume == null)
|
if(_lastVolume == null)
|
||||||
{
|
{
|
||||||
_lastVolume = Volume;
|
_lastVolume = Volume;
|
||||||
Volume = 0;
|
_player?.SetVolume(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Volume = _lastVolume.Value;
|
_player?.SetVolume(_lastVolume.Value);
|
||||||
_lastVolume = null;
|
_lastVolume = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ namespace RedBookPlayer.GUI
|
|||||||
increment *= 5;
|
increment *= 5;
|
||||||
|
|
||||||
if(playerView?.PlayerViewModel?.Volume != null)
|
if(playerView?.PlayerViewModel?.Volume != null)
|
||||||
playerView.PlayerViewModel.Volume += increment;
|
playerView.PlayerViewModel.SetVolume(playerView.PlayerViewModel.Volume + increment);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Volume Down
|
// Volume Down
|
||||||
@@ -202,7 +202,7 @@ namespace RedBookPlayer.GUI
|
|||||||
decrement *= 5;
|
decrement *= 5;
|
||||||
|
|
||||||
if (playerView?.PlayerViewModel?.Volume != null)
|
if (playerView?.PlayerViewModel?.Volume != null)
|
||||||
playerView.PlayerViewModel.Volume -= decrement;
|
playerView.PlayerViewModel.SetVolume(playerView.PlayerViewModel.Volume - decrement);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mute Toggle
|
// Mute Toggle
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<TextBlock Margin="0,0,16,0" IsVisible="{Binding QuadChannel}">4CH</TextBlock>
|
<TextBlock Margin="0,0,16,0" IsVisible="{Binding QuadChannel}">4CH</TextBlock>
|
||||||
<TextBlock Margin="0,0,16,0" Foreground="LightGray" IsVisible="{Binding !HiddenTrack}">HIDDEN</TextBlock>
|
<TextBlock Margin="0,0,16,0" Foreground="LightGray" IsVisible="{Binding !HiddenTrack}">HIDDEN</TextBlock>
|
||||||
<TextBlock Margin="0,0,16,0" IsVisible="{Binding HiddenTrack}">HIDDEN</TextBlock>
|
<TextBlock Margin="0,0,16,0" IsVisible="{Binding HiddenTrack}">HIDDEN</TextBlock>
|
||||||
|
<TextBlock Margin="0,0,16,0" Text="{Binding Volume}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@@ -11,6 +11,7 @@ using Avalonia.Markup.Xaml;
|
|||||||
using Avalonia.Media.Imaging;
|
using Avalonia.Media.Imaging;
|
||||||
using Avalonia.Platform;
|
using Avalonia.Platform;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
|
using RedBookPlayer.Common;
|
||||||
|
|
||||||
namespace RedBookPlayer.GUI
|
namespace RedBookPlayer.GUI
|
||||||
{
|
{
|
||||||
@@ -270,9 +271,9 @@ namespace RedBookPlayer.GUI
|
|||||||
|
|
||||||
public void RewindButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.Rewind();
|
public void RewindButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.Rewind();
|
||||||
|
|
||||||
public void VolumeUpButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.Volume++;
|
public void VolumeUpButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.SetVolume(PlayerViewModel.Volume + 1);
|
||||||
|
|
||||||
public void VolumeDownButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.Volume--;
|
public void VolumeDownButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.SetVolume(PlayerViewModel.Volume - 1);
|
||||||
|
|
||||||
public void MuteToggleButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.ToggleMute();
|
public void MuteToggleButton_Click(object sender, RoutedEventArgs e) => PlayerViewModel.ToggleMute();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user