@@ -53,6 +53,7 @@ FILE "Sound.wav" WAVE
5353 track = parser.next_track ();
5454 TEST (track != NULL );
5555 uint32_t start2 = ((2 * 60 ) + 47 ) * 75 + 20 ;
56+ uint32_t pregap_offset = 2 * 75 ;
5657 if (track)
5758 {
5859 TEST (strcmp (track->filename , " Image Name.bin" ) == 0 );
@@ -61,8 +62,8 @@ FILE "Sound.wav" WAVE
6162 TEST (track->track_number == 2 );
6263 TEST (track->track_mode == CUETrack_AUDIO);
6364 TEST (track->sector_length == 2352 );
64- TEST (track->unstored_pregap_length == 2 * 75 );
65- TEST (track->data_start == start2 + 2 * 75 );
65+ TEST (track->unstored_pregap_length == pregap_offset );
66+ TEST (track->data_start == start2 + pregap_offset );
6667 }
6768
6869 COMMENT (" Test TRACK 03 (audio with index 0)" );
@@ -78,13 +79,19 @@ FILE "Sound.wav" WAVE
7879 TEST (track->track_number == 3 );
7980 TEST (track->track_mode == CUETrack_AUDIO);
8081 TEST (track->sector_length == 2352 );
81- TEST (track->track_start == start3_i0);
82- TEST (track->data_start == start3_i1);
82+ TEST (track->track_start == start3_i0 + pregap_offset );
83+ TEST (track->data_start == start3_i1 + pregap_offset );
8384 }
8485
8586 COMMENT (" Test TRACK 11 (audio from wav)" );
86- track = parser.next_track (track->file_offset + 75 * 4 * 2352 );
87+ uint32_t track03_lba_length = 4 * 75 ;
88+ uint32_t prev_data_start = track->data_start ;
89+ // Because the FILE restarts MSF locations we need the lba offset it starts at
90+ uint32_t zeroed_lba_offset = prev_data_start + track03_lba_length;
91+ track = parser.next_track (track->file_offset + track03_lba_length * 2352 );
8792 TEST (track != NULL );
93+ uint32_t start11_i0 = zeroed_lba_offset + 0 ;
94+ uint32_t start11_i1 = zeroed_lba_offset + (2 * 75 );
8895 if (track)
8996 {
9097 TEST (strcmp (track->filename , " Sound.wav" ) == 0 );
@@ -93,8 +100,8 @@ FILE "Sound.wav" WAVE
93100 TEST (track->track_number == 11 );
94101 TEST (track->track_mode == CUETrack_AUDIO);
95102 TEST (track->sector_length == 0 );
96- TEST (track->track_start == start3_i1 + 75 * 4 );
97- TEST (track->data_start == start3_i1 + 75 * 6 );
103+ TEST (track->track_start == start11_i0 + pregap_offset );
104+ TEST (track->data_start == start11_i1 + pregap_offset );
98105 }
99106
100107 COMMENT (" Test end of file" );
0 commit comments