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)