blob: d2e15ef54c69e76e910c570911891dd292f0d9cf [file] [log] [blame]
--- src/io.c
+++ src/io.c
@@ -2665,6 +2665,8 @@
g_error("Unexpected output in cdda2wav toc-output\n");
}
trackinfo[tocnr]->track_nr = atoi(p1);
+ if (trackinfo[tocnr]->track_nr == 0)
+ cdinfo.nr_tracks++;
trackinfo[tocnr]->isosize = -1;
/* reststring into tmp2 - strip to remove leading spaces */
@@ -8401,6 +8403,9 @@
if (extract_quoted(tmp) != 0)
return;
+ if (matchnr == 0 && trackinfo[matchnr]->track_nr == 0)
+ matchnr++;
+
if (mode == 0) {
if (matchnr >= cdinfo.nr_tracks) {
g_warning("invalid track count from cddb-server\n");
@@ -8482,14 +8487,20 @@
/* build of command line */
if (mode == 0 || mode == 2) {
+ gint ntr = cdinfo.nr_tracks;
+
+ if (ntr > 0 && trackinfo[0]->track_nr == 0)
+ ntr--;
g_snprintf(tmp,MAXLINE,"cddb query %s %d ",
- cdinfo.cddb_discid, cdinfo.nr_tracks);
+ cdinfo.cddb_discid, ntr);
for (i = 0; i < cdinfo.nr_tracks; i++) {
+ if (trackinfo[i]->track_nr == 0)
+ continue;
g_snprintf(tmp2,MAXLINE,"%d ",
trackinfo[i]->start_sec + 150);
strcat(tmp,tmp2);
}
- g_snprintf(tmp2,MAXLINE,"%d",cdinfo.total_size / 75);
+ g_snprintf(tmp2,MAXLINE,"%d",(cdinfo.leadout + 150) / 75);
strcat(tmp,tmp2);
} else {
/* get data from toc file */