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