diff options
| author | 2010-09-14 01:55:10 +0000 | |
|---|---|---|
| committer | 2010-09-14 01:55:10 +0000 | |
| commit | b13e7168e0efe02a5df121cd51a6e7fe66e72abb (patch) | |
| tree | 5ee88d549c979f8bf8c517f7dc89ad3eb83adc84 /src | |
| parent | a6e9c13e599f2b5825a653b9aff5def04f9cc29e (diff) | |
CHDMAN: fix for extracting bin/cue audio tracks (no whatsnew)
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/chdman.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/tools/chdman.c b/src/tools/chdman.c index b4751b85d0a..dcd8625a053 100644 --- a/src/tools/chdman.c +++ b/src/tools/chdman.c @@ -1740,6 +1740,19 @@ static int do_extractcd(int argc, char *argv[], int param) /* read the raw data */ cdrom_read_data(cdrom, cdrom_get_track_start(cdrom, track) + frame, sector, toc->tracks[track].trktype); + /* for CDRWin, audio tracks must be reversed */ + if ((cuemode) && (toc->tracks[track].trktype == CD_TRACK_AUDIO)) + { + int swapindex; + + for (swapindex = 0; swapindex < toc->tracks[track].datasize; swapindex += 2) + { + UINT8 swaptemp = sector[swapindex]; + sector[swapindex] = sector[swapindex+1]; + sector[swapindex + 1] = swaptemp; + } + } + /* write it out */ core_fseek(outfile2, out2offs, SEEK_SET); byteswritten = core_fwrite(outfile2, sector, toc->tracks[track].datasize); |
