diff --git a/RedBookPlayer/Player.cs b/RedBookPlayer/Player.cs
index 2e9a8f2..04bae2c 100644
--- a/RedBookPlayer/Player.cs
+++ b/RedBookPlayer/Player.cs
@@ -331,7 +331,7 @@ namespace RedBookPlayer
LoadTrack(CurrentTrack);
}
- public void NextIndex()
+ public void NextIndex(bool changeTrack)
{
if (Image == null)
{
@@ -340,8 +340,15 @@ namespace RedBookPlayer
if (++CurrentIndex > Image.Tracks[CurrentTrack].Indexes.Keys.Max())
{
- NextTrack();
- CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[1];
+ if (changeTrack)
+ {
+ NextTrack();
+ CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[1];
+ }
+ else
+ {
+ CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[--CurrentIndex];
+ }
}
else
{
@@ -349,7 +356,7 @@ namespace RedBookPlayer
}
}
- public void PreviousIndex()
+ public void PreviousIndex(bool changeTrack)
{
if (Image == null)
{
@@ -358,8 +365,15 @@ namespace RedBookPlayer
if (CurrentIndex <= 1 || --CurrentIndex < Image.Tracks[CurrentTrack].Indexes.Keys.Min())
{
- PreviousTrack();
- CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes.Values.Max();
+ if (changeTrack)
+ {
+ PreviousTrack();
+ CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes.Values.Max();
+ }
+ else
+ {
+ CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[1];
+ }
}
else
{
diff --git a/RedBookPlayer/PlayerView.xaml.cs b/RedBookPlayer/PlayerView.xaml.cs
index f1d8bcb..4d9a3fa 100644
--- a/RedBookPlayer/PlayerView.xaml.cs
+++ b/RedBookPlayer/PlayerView.xaml.cs
@@ -105,12 +105,12 @@ namespace RedBookPlayer
public void NextIndexButton_Click(object sender, RoutedEventArgs e)
{
- player.NextIndex();
+ player.NextIndex(App.Settings.IndexButtonChangeTrack);
}
public void PreviousIndexButton_Click(object sender, RoutedEventArgs e)
{
- player.PreviousIndex();
+ player.PreviousIndex(App.Settings.IndexButtonChangeTrack);
}
public void FastForwardButton_Click(object sender, RoutedEventArgs e)
diff --git a/RedBookPlayer/Settings.cs b/RedBookPlayer/Settings.cs
index 726d489..f4e36d6 100644
--- a/RedBookPlayer/Settings.cs
+++ b/RedBookPlayer/Settings.cs
@@ -7,6 +7,7 @@ namespace RedBookPlayer
public class Settings
{
public bool AutoPlay { get; set; } = false;
+ public bool IndexButtonChangeTrack { get; set; } = false;
public string SelectedTheme { get; set; } = "default";
string filePath;
diff --git a/RedBookPlayer/SettingsWindow.xaml b/RedBookPlayer/SettingsWindow.xaml
index b05b4ed..6a6467b 100644
--- a/RedBookPlayer/SettingsWindow.xaml
+++ b/RedBookPlayer/SettingsWindow.xaml
@@ -10,9 +10,13 @@
Themes
-
+
Auto-play CD on load
+
+
+ Index navigation can change track
+
diff --git a/RedBookPlayer/SettingsWindow.xaml.cs b/RedBookPlayer/SettingsWindow.xaml.cs
index 8eb358b..0b29f53 100644
--- a/RedBookPlayer/SettingsWindow.xaml.cs
+++ b/RedBookPlayer/SettingsWindow.xaml.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Text.Json;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
@@ -13,13 +12,12 @@ namespace RedBookPlayer
Settings settings;
ListBox themeList;
string selectedTheme;
- CheckBox autoPlay;
public SettingsWindow() { }
public SettingsWindow(Settings settings)
{
- this.settings = settings;
+ this.DataContext = this.settings = settings;
InitializeComponent();
}
@@ -33,11 +31,6 @@ namespace RedBookPlayer
selectedTheme = (string)e.AddedItems[0];
}
- public void LoadSettings()
- {
- autoPlay.IsChecked = settings.AutoPlay;
- }
-
public void ApplySettings(object sender, RoutedEventArgs e)
{
if ((selectedTheme ?? "") != "")
@@ -46,7 +39,6 @@ namespace RedBookPlayer
MainWindow.ApplyTheme(selectedTheme);
}
- settings.AutoPlay = autoPlay.IsChecked ?? false;
settings.Save();
}
@@ -77,9 +69,6 @@ namespace RedBookPlayer
themeList.Items = items;
- autoPlay = this.FindControl("AutoPlay");
- LoadSettings();
-
this.FindControl