diff --git a/RedBookPlayer.Models/Hardware/Player.cs b/RedBookPlayer.Models/Hardware/Player.cs index 12377df..bc67f86 100644 --- a/RedBookPlayer.Models/Hardware/Player.cs +++ b/RedBookPlayer.Models/Hardware/Player.cs @@ -761,6 +761,10 @@ namespace RedBookPlayer.Models.Hardware /// Disc number to attempt to load public void SelectDisc(int discNumber) { + // If the disc didn't change, don't do anything + if(_currentDisc == discNumber) + return; + PlayerState wasPlaying = PlayerState; if (wasPlaying == PlayerState.Playing) Stop(); @@ -802,6 +806,13 @@ namespace RedBookPlayer.Models.Hardware /// True if index changes can trigger a track change, false otherwise public void SelectIndex(ushort index, bool changeTrack) { + if(_opticalDiscs[CurrentDisc] == null || !_opticalDiscs[CurrentDisc].Initialized) + return; + + // If the index didn't change, don't do anything + if(_currentTrackIndex == index) + return; + PlayerState wasPlaying = PlayerState; if (wasPlaying == PlayerState.Playing) Pause(); @@ -876,6 +887,10 @@ namespace RedBookPlayer.Models.Hardware if(_opticalDiscs[CurrentDisc] == null || !_opticalDiscs[CurrentDisc].Initialized) return false; + // If the disc didn't change, don't do anything + if(_currentTrackNumber == trackNumber) + return false; + PlayerState wasPlaying = PlayerState; if(wasPlaying == PlayerState.Playing) Pause();