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);
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -10,9 +10,13 @@
|
||||
<TextBlock DockPanel.Dock="Top" Margin="0,0,0,4">Themes</TextBlock>
|
||||
<StackPanel DockPanel.Dock="Bottom">
|
||||
<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>
|
||||
</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>
|
||||
</StackPanel>
|
||||
<ListBox Name="ThemeList" SelectionMode="Single" Margin="0,0,0,16"/>
|
||||
|
||||
@@ -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<CheckBox>("AutoPlay");
|
||||
LoadSettings();
|
||||
|
||||
this.FindControl<Button>("ApplyButton").Click += ApplySettings;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user