mirror of
https://github.com/aaru-dps/RedBookPlayer.git
synced 2025-12-16 19:24:41 +00:00
Add volume setting
This commit is contained in:
@@ -89,7 +89,7 @@ namespace RedBookPlayer
|
|||||||
|
|
||||||
this.Closing += (e, f) =>
|
this.Closing += (e, f) =>
|
||||||
{
|
{
|
||||||
PlayerView.player.Shutdown();
|
PlayerView.Player.Shutdown();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,23 @@ namespace RedBookPlayer
|
|||||||
public int TotalTracks { get; private set; } = 0;
|
public int TotalTracks { get; private set; } = 0;
|
||||||
public int TotalIndexes { get; private set; } = 0;
|
public int TotalIndexes { get; private set; } = 0;
|
||||||
public ulong TimeOffset { get; private set; } = 0;
|
public ulong TimeOffset { get; private set; } = 0;
|
||||||
|
int volume = 100;
|
||||||
|
public int Volume
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (volume >= 0 && volume <= 100)
|
||||||
|
{
|
||||||
|
volume = value;
|
||||||
|
soundOut.Volume = (float)volume / 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public AaruFormat Image { get; private set; }
|
public AaruFormat Image { get; private set; }
|
||||||
FullTOC.CDFullTOC toc;
|
FullTOC.CDFullTOC toc;
|
||||||
PlayerSource source;
|
PlayerSource source;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace RedBookPlayer
|
|||||||
InitializeComponent(xaml);
|
InitializeComponent(xaml);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Player player = new Player();
|
public static Player Player = new Player();
|
||||||
TextBlock currentTrack;
|
TextBlock currentTrack;
|
||||||
Image[] digits;
|
Image[] digits;
|
||||||
Timer updateTimer;
|
Timer updateTimer;
|
||||||
@@ -51,9 +51,9 @@ namespace RedBookPlayer
|
|||||||
filter.Open(path);
|
filter.Open(path);
|
||||||
image.Open(filter);
|
image.Open(filter);
|
||||||
|
|
||||||
player?.Shutdown();
|
Player?.Shutdown();
|
||||||
player = new Player();
|
Player = new Player();
|
||||||
player.Init(image, App.Settings.AutoPlay);
|
Player.Init(image, App.Settings.AutoPlay);
|
||||||
});
|
});
|
||||||
|
|
||||||
await Dispatcher.UIThread.InvokeAsync(() =>
|
await Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
@@ -80,71 +80,71 @@ namespace RedBookPlayer
|
|||||||
|
|
||||||
public void PlayButton_Click(object sender, RoutedEventArgs e)
|
public void PlayButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.Play();
|
Player.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PauseButton_Click(object sender, RoutedEventArgs e)
|
public void PauseButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.Pause();
|
Player.Pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StopButton_Click(object sender, RoutedEventArgs e)
|
public void StopButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.Stop();
|
Player.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NextTrackButton_Click(object sender, RoutedEventArgs e)
|
public void NextTrackButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.NextTrack();
|
Player.NextTrack();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreviousTrackButton_Click(object sender, RoutedEventArgs e)
|
public void PreviousTrackButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.PreviousTrack();
|
Player.PreviousTrack();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NextIndexButton_Click(object sender, RoutedEventArgs e)
|
public void NextIndexButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.NextIndex(App.Settings.IndexButtonChangeTrack);
|
Player.NextIndex(App.Settings.IndexButtonChangeTrack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreviousIndexButton_Click(object sender, RoutedEventArgs e)
|
public void PreviousIndexButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.PreviousIndex(App.Settings.IndexButtonChangeTrack);
|
Player.PreviousIndex(App.Settings.IndexButtonChangeTrack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FastForwardButton_Click(object sender, RoutedEventArgs e)
|
public void FastForwardButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.FastForward();
|
Player.FastForward();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RewindButton_Click(object sender, RoutedEventArgs e)
|
public void RewindButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.Rewind();
|
Player.Rewind();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EnableDeEmphasisButton_Click(object sender, RoutedEventArgs e)
|
public void EnableDeEmphasisButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.EnableDeEmphasis();
|
Player.EnableDeEmphasis();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DisableDeEmphasisButton_Click(object sender, RoutedEventArgs e)
|
public void DisableDeEmphasisButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.DisableDeEmphasis();
|
Player.DisableDeEmphasis();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateView(object sender, ElapsedEventArgs e)
|
private void UpdateView(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
if (player.Initialized)
|
if (Player.Initialized)
|
||||||
{
|
{
|
||||||
int[] numbers = new int[]{
|
int[] numbers = new int[]{
|
||||||
player.CurrentTrack + 1,
|
Player.CurrentTrack + 1,
|
||||||
player.CurrentIndex,
|
Player.CurrentIndex,
|
||||||
(int)(((player.CurrentSector + player.TimeOffset) / (75 * 60)) % 60),
|
(int)(((Player.CurrentSector + Player.TimeOffset) / (75 * 60)) % 60),
|
||||||
(int)(((player.CurrentSector + player.TimeOffset) / 75) % 60),
|
(int)(((Player.CurrentSector + Player.TimeOffset) / 75) % 60),
|
||||||
(int)((player.CurrentSector + player.TimeOffset) % 75),
|
(int)((Player.CurrentSector + Player.TimeOffset) % 75),
|
||||||
player.TotalTracks,
|
Player.TotalTracks,
|
||||||
player.TotalIndexes
|
Player.TotalIndexes
|
||||||
};
|
};
|
||||||
|
|
||||||
string digitString = String.Join("", numbers.Select(i => i.ToString().PadLeft(2, '0').Substring(0, 2)));
|
string digitString = String.Join("", numbers.Select(i => i.ToString().PadLeft(2, '0').Substring(0, 2)));
|
||||||
@@ -159,7 +159,7 @@ namespace RedBookPlayer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
((PlayerViewModel)DataContext).PreEmphasis = player.HasPreEmphasis;
|
((PlayerViewModel)DataContext).PreEmphasis = Player.HasPreEmphasis;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ namespace RedBookPlayer
|
|||||||
{
|
{
|
||||||
public bool AutoPlay { get; set; } = false;
|
public bool AutoPlay { get; set; } = false;
|
||||||
public bool IndexButtonChangeTrack { get; set; } = false;
|
public bool IndexButtonChangeTrack { get; set; } = false;
|
||||||
|
public int Volume { get; set; } = 100;
|
||||||
public string SelectedTheme { get; set; } = "default";
|
public string SelectedTheme { get; set; } = "default";
|
||||||
string filePath;
|
string filePath;
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,12 @@
|
|||||||
<CheckBox IsChecked="{Binding IndexButtonChangeTrack}" Margin="0,0,8,0"/>
|
<CheckBox IsChecked="{Binding IndexButtonChangeTrack}" Margin="0,0,8,0"/>
|
||||||
<TextBlock VerticalAlignment="Center">Index navigation can change track</TextBlock>
|
<TextBlock VerticalAlignment="Center">Index navigation can change track</TextBlock>
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
|
<DockPanel Margin="0,0,0,16">
|
||||||
|
<TextBlock VerticalAlignment="Center" Margin="0,0,8,0" DockPanel.Dock="Left">Volume</TextBlock>
|
||||||
|
<TextBlock VerticalAlignment="Center" DockPanel.Dock="Right" Text="%"/>
|
||||||
|
<TextBlock VerticalAlignment="Center" Margin="8,0,0,0" DockPanel.Dock="Right" Text="{Binding Volume}" Name="VolumeLabel"/>
|
||||||
|
<Slider Minimum="0" Maximum="100" SmallChange="1" LargeChange="10" Value="{Binding Volume}" Name="VolumeSlider"/>
|
||||||
|
</DockPanel>
|
||||||
<Button Name="ApplyButton">Apply</Button>
|
<Button Name="ApplyButton">Apply</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<ListBox Name="ThemeList" SelectionMode="Single" Margin="0,0,0,16"/>
|
<ListBox Name="ThemeList" SelectionMode="Single" Margin="0,0,0,16"/>
|
||||||
|
|||||||
@@ -39,9 +39,16 @@ namespace RedBookPlayer
|
|||||||
MainWindow.ApplyTheme(selectedTheme);
|
MainWindow.ApplyTheme(selectedTheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerView.Player.Volume = settings.Volume;
|
||||||
|
|
||||||
settings.Save();
|
settings.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateView()
|
||||||
|
{
|
||||||
|
this.FindControl<TextBlock>("VolumeLabel").Text = settings.Volume.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
AvaloniaXamlLoader.Load(this);
|
AvaloniaXamlLoader.Load(this);
|
||||||
@@ -70,6 +77,7 @@ namespace RedBookPlayer
|
|||||||
themeList.Items = items;
|
themeList.Items = items;
|
||||||
|
|
||||||
this.FindControl<Button>("ApplyButton").Click += ApplySettings;
|
this.FindControl<Button>("ApplyButton").Click += ApplySettings;
|
||||||
|
this.FindControl<Slider>("VolumeSlider").PropertyChanged += (s, e) => UpdateView();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user