Ticket #46840: fix_cddb_hidden_tracks.patch

File fix_cddb_hidden_tracks.patch, 1.3 KB (added by RJVB (René Bertin), 10 years ago)
  • src/io.c

    old new  
    26652665                g_error("Unexpected output in cdda2wav toc-output\n");
    26662666        }
    26672667        trackinfo[tocnr]->track_nr = atoi(p1);
     2668        if (trackinfo[tocnr]->track_nr == 0)
     2669                cdinfo.nr_tracks++;
    26682670        trackinfo[tocnr]->isosize = -1;
    26692671
    26702672        /* reststring into tmp2 - strip to remove leading spaces */
     
    84018403                if (extract_quoted(tmp) != 0)
    84028404                        return;
    84038405
     8406                if (matchnr == 0 && trackinfo[matchnr]->track_nr == 0)
     8407                        matchnr++;
     8408
    84048409                if (mode == 0) {
    84058410                        if (matchnr >= cdinfo.nr_tracks) {
    84068411                                g_warning("invalid track count from cddb-server\n");
     
    84828487
    84838488        /* build of command line */
    84848489        if (mode == 0 || mode == 2) {
     8490                gint    ntr = cdinfo.nr_tracks;
     8491
     8492                if (ntr > 0 && trackinfo[0]->track_nr == 0)
     8493                        ntr--;
    84858494                g_snprintf(tmp,MAXLINE,"cddb query %s %d ",
    8486                         cdinfo.cddb_discid, cdinfo.nr_tracks);
     8495                        cdinfo.cddb_discid, ntr);
    84878496                for (i = 0; i < cdinfo.nr_tracks; i++) {
     8497                        if (trackinfo[i]->track_nr == 0)
     8498                                continue;
    84888499                        g_snprintf(tmp2,MAXLINE,"%d ",
    84898500                                trackinfo[i]->start_sec + 150);
    84908501                        strcat(tmp,tmp2);
    84918502                }
    8492                 g_snprintf(tmp2,MAXLINE,"%d",cdinfo.total_size / 75);
     8503                g_snprintf(tmp2,MAXLINE,"%d",(cdinfo.leadout + 150) / 75);
    84938504                strcat(tmp,tmp2);
    84948505        } else {
    84958506                /* get data from toc file */