diff --git a/RedBookPlayer.Common/Discs/CompactDisc.cs b/RedBookPlayer.Common/Discs/CompactDisc.cs index 0fe5311..45c634e 100644 --- a/RedBookPlayer.Common/Discs/CompactDisc.cs +++ b/RedBookPlayer.Common/Discs/CompactDisc.cs @@ -26,7 +26,7 @@ namespace RedBookPlayer.Common.Discs return; // Data tracks only and flag disabled means we can't do anything - if(_image.Tracks.All(t => t.TrackType != TrackType.Audio) && !_loadDataTracks) + if(_image.Tracks.All(t => t.TrackType != TrackType.Audio) && !LoadDataTracks) return; // Cache the value and the current track number @@ -42,12 +42,12 @@ namespace RedBookPlayer.Common.Discs if(cachedValue > _image.Tracks.Max(t => t.TrackSequence)) { cachedValue = (int)_image.Tracks.Min(t => t.TrackSequence); - if(cachedValue == 0 && !_loadHiddenTracks) + if(cachedValue == 0 && !LoadHiddenTracks) cachedValue++; } // If we're under the first track and we're not loading hidden tracks, wrap around - else if(cachedValue < 1 && !_loadHiddenTracks) + else if(cachedValue < 1 && !LoadHiddenTracks) { cachedValue = (int)_image.Tracks.Max(t => t.TrackSequence); } @@ -69,7 +69,7 @@ namespace RedBookPlayer.Common.Discs SetTrackFlags(track); // If the track is playable, just return - if(TrackType == TrackType.Audio || _loadDataTracks) + if(TrackType == TrackType.Audio || LoadDataTracks) break; // If we're not playing the track, skip @@ -215,6 +215,16 @@ namespace RedBookPlayer.Common.Discs private set => this.RaiseAndSetIfChanged(ref _trackHasEmphasis, value); } + /// + /// Indicate if data tracks should be loaded + /// + public bool LoadDataTracks { get; set; } = false; + + /// + /// Indicate if hidden tracks should be loaded + /// + public bool LoadHiddenTracks { get; set; } = false; + private bool _quadChannel; private bool _isDataTrack; private bool _copyAllowed; @@ -244,16 +254,6 @@ namespace RedBookPlayer.Common.Discs /// private readonly bool _generateMissingToc = false; - /// - /// Indicate if data tracks should be loaded - /// - private bool _loadDataTracks = false; - - /// - /// Indicate if hidden tracks should be loaded - /// - private bool _loadHiddenTracks = false; - /// /// Current disc table of contents /// @@ -270,8 +270,8 @@ namespace RedBookPlayer.Common.Discs public CompactDisc(bool generateMissingToc, bool loadHiddenTracks, bool loadDataTracks) { _generateMissingToc = generateMissingToc; - _loadHiddenTracks = loadHiddenTracks; - _loadDataTracks = loadDataTracks; + LoadHiddenTracks = loadHiddenTracks; + LoadDataTracks = loadDataTracks; } /// @@ -422,18 +422,6 @@ namespace RedBookPlayer.Common.Discs LoadTrack(CurrentTrackNumber); } - /// - /// Set the value for loading data tracks - /// - /// True to enable loading data tracks, false otherwise - public void SetLoadDataTracks(bool load) => _loadDataTracks = load; - - /// - /// Set the value for loading hidden tracks - /// - /// True to enable loading hidden tracks, false otherwise - public void SetLoadHiddenTracks(bool load) => _loadHiddenTracks = load; - /// public override void SetTotalIndexes() { diff --git a/RedBookPlayer.Common/Hardware/Player.cs b/RedBookPlayer.Common/Hardware/Player.cs index 4cf76d2..8bf225c 100644 --- a/RedBookPlayer.Common/Hardware/Player.cs +++ b/RedBookPlayer.Common/Hardware/Player.cs @@ -459,13 +459,21 @@ namespace RedBookPlayer.Common.Hardware /// Set the value for loading data tracks [CompactDisc only] /// /// True to enable loading data tracks, false otherwise - public void SetLoadDataTracks(bool load) => (_opticalDisc as CompactDisc)?.SetLoadDataTracks(load); + public void SetLoadDataTracks(bool load) + { + if(_opticalDisc is CompactDisc compactDisc) + compactDisc.LoadDataTracks = load; + } /// /// Set the value for loading hidden tracks [CompactDisc only] /// /// True to enable loading hidden tracks, false otherwise - public void SetLoadHiddenTracks(bool load) => (_opticalDisc as CompactDisc)?.SetLoadHiddenTracks(load); + public void SetLoadHiddenTracks(bool load) + { + if(_opticalDisc is CompactDisc compactDisc) + compactDisc.LoadHiddenTracks = load; + } /// /// Update the player from the current OpticalDisc