mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
Support for wierd CDs with two data tracks before audio.
This commit is contained in:
@@ -3131,16 +3131,39 @@ string status = processor.Go();
|
||||
}
|
||||
|
||||
// use data track length from log
|
||||
if (tocFromLog != null && tocFromLog.AudioTracks == _toc.AudioTracks)
|
||||
if (tocFromLog != null)
|
||||
{
|
||||
if (tocFromLog.TrackCount == tocFromLog.AudioTracks + 1 && !tocFromLog[tocFromLog.TrackCount].IsAudio)
|
||||
if (tocFromLog.AudioTracks == _toc.AudioTracks
|
||||
&& tocFromLog.TrackCount == tocFromLog.AudioTracks + 1
|
||||
&& !tocFromLog[tocFromLog.TrackCount].IsAudio)
|
||||
{
|
||||
DataTrackLength = tocFromLog[tocFromLog.TrackCount].Length;
|
||||
_toc[_toc.TrackCount].Start = tocFromLog[_toc.TrackCount].Start;
|
||||
_toc[_toc.TrackCount][0].Start = tocFromLog[_toc.TrackCount].Start;
|
||||
_toc[_toc.TrackCount][1].Start = tocFromLog[_toc.TrackCount].Start;
|
||||
}
|
||||
else if (tocFromLog.TrackCount == _toc.TrackCount
|
||||
if (_toc.TrackCount == _toc.AudioTracks
|
||||
&& tocFromLog.TrackCount == tocFromLog.AudioTracks
|
||||
&& tocFromLog.TrackCount > _toc.TrackCount)
|
||||
{
|
||||
int dtracks = tocFromLog.TrackCount - _toc.TrackCount;
|
||||
bool matches = true;
|
||||
for (int iTrack = 1; iTrack <= _toc.TrackCount; iTrack++)
|
||||
if (tocFromLog[iTrack + dtracks].Length != _toc[iTrack].Length)
|
||||
matches = false;
|
||||
if (matches)
|
||||
{
|
||||
for (int iTrack = 1; iTrack <= dtracks; iTrack++)
|
||||
{
|
||||
_toc.InsertTrack(new CDTrack((uint)iTrack, 0, 0, false, false));
|
||||
tocFromLog[iTrack].IsAudio = false;
|
||||
}
|
||||
tocFromLog.FirstAudio += dtracks;
|
||||
tocFromLog.AudioTracks -= (uint) dtracks;
|
||||
}
|
||||
}
|
||||
if (tocFromLog.AudioTracks == _toc.AudioTracks
|
||||
&& tocFromLog.TrackCount == _toc.TrackCount
|
||||
&& tocFromLog.FirstAudio == _toc.FirstAudio
|
||||
&& tocFromLog.TrackCount == tocFromLog.FirstAudio + tocFromLog.AudioTracks - 1)
|
||||
{
|
||||
@@ -3160,23 +3183,6 @@ string status = processor.Go();
|
||||
}
|
||||
}
|
||||
|
||||
// use data track length from log
|
||||
if (tocFromLog != null
|
||||
&& _toc.TrackCount == _toc.AudioTracks
|
||||
&& tocFromLog.TrackCount == tocFromLog.AudioTracks
|
||||
&& tocFromLog.TrackCount == _toc.TrackCount + 1)
|
||||
{
|
||||
bool matches = true;
|
||||
for (int iTrack = 1; iTrack <= _toc.TrackCount; iTrack++)
|
||||
if (tocFromLog[iTrack + 1].Length != _toc[iTrack].Length)
|
||||
matches = false;
|
||||
if (matches)
|
||||
{
|
||||
_toc.InsertTrack(new CDTrack(1, 0, 0, false, false));
|
||||
DataTrackLength = tocFromLog[1].Length;
|
||||
}
|
||||
}
|
||||
|
||||
// use data track length range from cddbId
|
||||
if (DataTrackLength == 0 && _cddbDiscIdTag != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user