From 84c32ef37f6abfc21a8fa10d7a8e5001906e629e Mon Sep 17 00:00:00 2001 From: deagahelio <16138291+deagahelio@users.noreply.github.com> Date: Mon, 29 Mar 2021 20:12:44 -0300 Subject: [PATCH] Player only detects pre-emphasis on track change --- RedBookPlayer/Player.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/RedBookPlayer/Player.cs b/RedBookPlayer/Player.cs index bc7c30f..3142a9b 100644 --- a/RedBookPlayer/Player.cs +++ b/RedBookPlayer/Player.cs @@ -44,6 +44,16 @@ namespace RedBookPlayer byte[] flagsData = Image.ReadSectorTag(Image.Tracks[CurrentTrack].TrackSequence, SectorTagType.CdTrackFlags); HasPreEmphasis = ((CdFlags)flagsData[0]).HasFlag(CdFlags.PreEmphasis); + if (!HasPreEmphasis) + { + byte[] subchannel = Image.ReadSectorTag( + Image.Tracks[CurrentTrack].TrackStartSector, + SectorTagType.CdSectorSubchannel + ); + + HasPreEmphasis = (subchannel[3] & 0b01000000) != 0; + } + TotalIndexes = Image.Tracks[CurrentTrack].Indexes.Count; CurrentIndex = Image.Tracks[CurrentTrack].Indexes.Keys.GetEnumerator().Current; } @@ -74,12 +84,6 @@ namespace RedBookPlayer CurrentTrack--; } - byte[] subchannel = Image.ReadSectorTag(0, SectorTagType.CdSectorSubchannel); - if (!HasPreEmphasis) - { - HasPreEmphasis = (subchannel[3] & 0b01000000) != 0; - } - foreach (var item in Image.Tracks[CurrentTrack].Indexes.Reverse()) { if ((int)CurrentSector >= item.Value)