mirror of
https://github.com/aaru-dps/RedBookPlayer.git
synced 2025-12-16 19:24:41 +00:00
Add option to change index navigation behavior
This commit is contained in:
@@ -331,7 +331,7 @@ namespace RedBookPlayer
|
|||||||
LoadTrack(CurrentTrack);
|
LoadTrack(CurrentTrack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NextIndex()
|
public void NextIndex(bool changeTrack)
|
||||||
{
|
{
|
||||||
if (Image == null)
|
if (Image == null)
|
||||||
{
|
{
|
||||||
@@ -340,8 +340,15 @@ namespace RedBookPlayer
|
|||||||
|
|
||||||
if (++CurrentIndex > Image.Tracks[CurrentTrack].Indexes.Keys.Max())
|
if (++CurrentIndex > Image.Tracks[CurrentTrack].Indexes.Keys.Max())
|
||||||
{
|
{
|
||||||
NextTrack();
|
if (changeTrack)
|
||||||
CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[1];
|
{
|
||||||
|
NextTrack();
|
||||||
|
CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[--CurrentIndex];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -349,7 +356,7 @@ namespace RedBookPlayer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreviousIndex()
|
public void PreviousIndex(bool changeTrack)
|
||||||
{
|
{
|
||||||
if (Image == null)
|
if (Image == null)
|
||||||
{
|
{
|
||||||
@@ -358,8 +365,15 @@ namespace RedBookPlayer
|
|||||||
|
|
||||||
if (CurrentIndex <= 1 || --CurrentIndex < Image.Tracks[CurrentTrack].Indexes.Keys.Min())
|
if (CurrentIndex <= 1 || --CurrentIndex < Image.Tracks[CurrentTrack].Indexes.Keys.Min())
|
||||||
{
|
{
|
||||||
PreviousTrack();
|
if (changeTrack)
|
||||||
CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes.Values.Max();
|
{
|
||||||
|
PreviousTrack();
|
||||||
|
CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes.Values.Max();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CurrentSector = (ulong)Image.Tracks[CurrentTrack].Indexes[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -105,12 +105,12 @@ namespace RedBookPlayer
|
|||||||
|
|
||||||
public void NextIndexButton_Click(object sender, RoutedEventArgs e)
|
public void NextIndexButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.NextIndex();
|
player.NextIndex(App.Settings.IndexButtonChangeTrack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreviousIndexButton_Click(object sender, RoutedEventArgs e)
|
public void PreviousIndexButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
player.PreviousIndex();
|
player.PreviousIndex(App.Settings.IndexButtonChangeTrack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FastForwardButton_Click(object sender, RoutedEventArgs e)
|
public void FastForwardButton_Click(object sender, RoutedEventArgs e)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace RedBookPlayer
|
|||||||
public class Settings
|
public class Settings
|
||||||
{
|
{
|
||||||
public bool AutoPlay { get; set; } = false;
|
public bool AutoPlay { get; set; } = false;
|
||||||
|
public bool IndexButtonChangeTrack { get; set; } = false;
|
||||||
public string SelectedTheme { get; set; } = "default";
|
public string SelectedTheme { get; set; } = "default";
|
||||||
string filePath;
|
string filePath;
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,13 @@
|
|||||||
<TextBlock DockPanel.Dock="Top" Margin="0,0,0,4">Themes</TextBlock>
|
<TextBlock DockPanel.Dock="Top" Margin="0,0,0,4">Themes</TextBlock>
|
||||||
<StackPanel DockPanel.Dock="Bottom">
|
<StackPanel DockPanel.Dock="Bottom">
|
||||||
<WrapPanel Margin="0,0,0,16">
|
<WrapPanel Margin="0,0,0,16">
|
||||||
<CheckBox Name="AutoPlay" Margin="0,0,8,0"/>
|
<CheckBox IsChecked="{Binding AutoPlay}" Margin="0,0,8,0"/>
|
||||||
<TextBlock VerticalAlignment="Center">Auto-play CD on load</TextBlock>
|
<TextBlock VerticalAlignment="Center">Auto-play CD on load</TextBlock>
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
|
<WrapPanel Margin="0,0,0,16">
|
||||||
|
<CheckBox IsChecked="{Binding IndexButtonChangeTrack}" Margin="0,0,8,0"/>
|
||||||
|
<TextBlock VerticalAlignment="Center">Index navigation can change track</TextBlock>
|
||||||
|
</WrapPanel>
|
||||||
<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"/>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text.Json;
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
@@ -13,13 +12,12 @@ namespace RedBookPlayer
|
|||||||
Settings settings;
|
Settings settings;
|
||||||
ListBox themeList;
|
ListBox themeList;
|
||||||
string selectedTheme;
|
string selectedTheme;
|
||||||
CheckBox autoPlay;
|
|
||||||
|
|
||||||
public SettingsWindow() { }
|
public SettingsWindow() { }
|
||||||
|
|
||||||
public SettingsWindow(Settings settings)
|
public SettingsWindow(Settings settings)
|
||||||
{
|
{
|
||||||
this.settings = settings;
|
this.DataContext = this.settings = settings;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,11 +31,6 @@ namespace RedBookPlayer
|
|||||||
selectedTheme = (string)e.AddedItems[0];
|
selectedTheme = (string)e.AddedItems[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadSettings()
|
|
||||||
{
|
|
||||||
autoPlay.IsChecked = settings.AutoPlay;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ApplySettings(object sender, RoutedEventArgs e)
|
public void ApplySettings(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if ((selectedTheme ?? "") != "")
|
if ((selectedTheme ?? "") != "")
|
||||||
@@ -46,7 +39,6 @@ namespace RedBookPlayer
|
|||||||
MainWindow.ApplyTheme(selectedTheme);
|
MainWindow.ApplyTheme(selectedTheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.AutoPlay = autoPlay.IsChecked ?? false;
|
|
||||||
settings.Save();
|
settings.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,9 +69,6 @@ namespace RedBookPlayer
|
|||||||
|
|
||||||
themeList.Items = items;
|
themeList.Items = items;
|
||||||
|
|
||||||
autoPlay = this.FindControl<CheckBox>("AutoPlay");
|
|
||||||
LoadSettings();
|
|
||||||
|
|
||||||
this.FindControl<Button>("ApplyButton").Click += ApplySettings;
|
this.FindControl<Button>("ApplyButton").Click += ApplySettings;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user