diff --git a/README.md b/README.md index e42107b..76e4ced 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ | Key | Action | | --- | ------ | | `F1` | Open Settings Window | -| `F2` / `Enter` | Load New Image | +| `F2` | Load New Image | | `Space` | Toggle Play / Pause | | `Esc` | Stop Playback | | `→` | Next Track | diff --git a/RedBookPlayer/GUI/MainWindow.xaml.cs b/RedBookPlayer/GUI/MainWindow.xaml.cs index 5cff6d5..235ff12 100644 --- a/RedBookPlayer/GUI/MainWindow.xaml.cs +++ b/RedBookPlayer/GUI/MainWindow.xaml.cs @@ -118,68 +118,68 @@ namespace RedBookPlayer.GUI PlayerView playerView = ContentControl.Content as PlayerView; // Open settings window - if(e.Key == Key.F1) + if(e.Key == App.Settings.OpenSettingsKey) { settingsWindow = new SettingsWindow(App.Settings); settingsWindow.Show(); } // Load image - else if (e.Key == Key.F2 || e.Key == Key.Enter) + else if (e.Key == App.Settings.LoadImageKey) { playerView?.LoadButton_Click(this, null); } // Toggle playback - else if(e.Key == Key.Space || e.Key == Key.MediaPlayPause) + else if(e.Key == App.Settings.TogglePlaybackKey || e.Key == Key.MediaPlayPause) { playerView?.PlayPauseButton_Click(this, null); } // Stop playback - else if(e.Key == Key.Escape || e.Key == Key.MediaStop) + else if(e.Key == App.Settings.StopPlaybackKey || e.Key == Key.MediaStop) { playerView?.StopButton_Click(this, null); } // Next Track - else if(e.Key == Key.Right || e.Key == Key.MediaNextTrack) + else if(e.Key == App.Settings.NextTrackKey || e.Key == Key.MediaNextTrack) { playerView?.NextTrackButton_Click(this, null); } // Previous Track - else if(e.Key == Key.Left || e.Key == Key.MediaPreviousTrack) + else if(e.Key == App.Settings.PreviousTrackKey || e.Key == Key.MediaPreviousTrack) { playerView?.PreviousTrackButton_Click(this, null); } // Next Index - else if(e.Key == Key.OemCloseBrackets) + else if(e.Key == App.Settings.NextIndexKey) { playerView?.NextIndexButton_Click(this, null); } // Previous Index - else if(e.Key == Key.OemOpenBrackets) + else if(e.Key == App.Settings.PreviousIndexKey) { playerView?.PreviousIndexButton_Click(this, null); } // Fast Foward - else if(e.Key == Key.OemPeriod) + else if(e.Key == App.Settings.FastForwardPlaybackKey) { playerView?.FastForwardButton_Click(this, null); } // Rewind - else if(e.Key == Key.OemComma) + else if(e.Key == App.Settings.RewindPlaybackKey) { playerView?.RewindButton_Click(this, null); } // Emphasis Toggle - else if(e.Key == Key.E) + else if(e.Key == App.Settings.ToggleDeEmphasisKey) { playerView?.EnableDisableDeEmphasisButton_Click(this, null); } diff --git a/RedBookPlayer/Settings.cs b/RedBookPlayer/Settings.cs index fe144a0..2e2e607 100644 --- a/RedBookPlayer/Settings.cs +++ b/RedBookPlayer/Settings.cs @@ -1,12 +1,15 @@ using System; using System.IO; using System.Text.Json; +using Avalonia.Input; using RedBookPlayer.GUI; namespace RedBookPlayer { public class Settings { + #region Player Settings + /// /// Indicates if discs should start playing on load /// @@ -42,6 +45,67 @@ namespace RedBookPlayer /// public string SelectedTheme { get; set; } = "default"; + #endregion + + #region Key Mappings + + /// + /// Key assigned to open settings + /// + public Key OpenSettingsKey { get; set; } = Key.F1; + + /// + /// Key assigned to load a new image + /// + public Key LoadImageKey { get; set; } = Key.F2; + + /// + /// Key assigned to toggle play and pause + /// + public Key TogglePlaybackKey { get; set; } = Key.Space; + + /// + /// Key assigned to stop playback + /// + public Key StopPlaybackKey { get; set; } = Key.Escape; + + /// + /// Key assigned to move to the next track + /// + public Key NextTrackKey { get; set; } = Key.Right; + + /// + /// Key assigned to move to the previous track + /// + public Key PreviousTrackKey { get; set; } = Key.Left; + + /// + /// Key assigned to move to the next index + /// + public Key NextIndexKey { get; set; } = Key.OemCloseBrackets; + + /// + /// Key assigned to move to the previous index + /// + public Key PreviousIndexKey { get; set; } = Key.OemOpenBrackets; + + /// + /// Key assigned to fast forward playback + /// + public Key FastForwardPlaybackKey { get; set; } = Key.OemPeriod; + + /// + /// Key assigned to rewind playback + /// + public Key RewindPlaybackKey { get; set; } = Key.OemComma; + + /// + /// Key assigned to toggle de-emphasis + /// + public Key ToggleDeEmphasisKey { get; set; } = Key.E; + + #endregion + /// /// Path to the settings file ///