From 763f5bd6c288397a0157afa91b8bd0c4b6019d47 Mon Sep 17 00:00:00 2001 From: Frantisek Kluknavsky Date: Wed, 17 Jul 2013 18:26:38 +0200 Subject: [PATCH] ported from cdda-paranoia to libcdio-paranoia, modified paranoia-cdda.patch - fixed bogus date in changelog --- cdrkit-1.1.11-paranoiacdda.patch | 16 +- cdrkit-1.1.11-paranoiacdio.patch | 2857 ++++++++++++++++++++++++++++++ cdrkit.spec | 14 +- 3 files changed, 2875 insertions(+), 12 deletions(-) create mode 100644 cdrkit-1.1.11-paranoiacdio.patch diff --git a/cdrkit-1.1.11-paranoiacdda.patch b/cdrkit-1.1.11-paranoiacdda.patch index 062971d..9d17899 100644 --- a/cdrkit-1.1.11-paranoiacdda.patch +++ b/cdrkit-1.1.11-paranoiacdda.patch @@ -25,10 +25,10 @@ diff -up cdrkit-1.1.11/icedax/CMakeLists.txt.paranoiacdda cdrkit-1.1.11/icedax/C ENDIF(HAVE_LIBOSSAUDIO) -LIST(APPEND EXTRA_LIBS paranoia) -+CHECK_INCLUDE_FILES(cdda/cdda_interface.h HAVE_CDDA_INTERFACE_H) -+CHECK_LIBRARY_EXISTS (cdda_paranoia paranoia_init "" HAVE_LIBPARANOIA) ++CHECK_INCLUDE_FILES(cdio/cdda.h HAVE_CDDA_INTERFACE_H) ++CHECK_LIBRARY_EXISTS (cdio_paranoia cdio_paranoia_init "" HAVE_LIBPARANOIA) +IF(HAVE_CDDA_INTERFACE_H AND HAVE_LIBPARANOIA) -+ LIST(APPEND EXTRA_LIBS cdda_paranoia cdda_interface) ++ LIST(APPEND EXTRA_LIBS cdio_paranoia cdio_cdda) +ELSE(HAVE_CDDA_INTERFACE_H AND HAVE_LIBPARANOIA) + MESSAGE(FATAL_ERROR "You need cdparanoia library installed") +ENDIF(HAVE_CDDA_INTERFACE_H AND HAVE_LIBPARANOIA) @@ -51,8 +51,8 @@ diff -up cdrkit-1.1.11/icedax/global.h.paranoiacdda cdrkit-1.1.11/icedax/global. #endif #ifdef USE_PARANOIA -#include "cdda_paranoia.h" -+#include -+#include ++#include ++#include #endif typedef struct index_list @@ -79,8 +79,8 @@ diff -up cdrkit-1.1.11/icedax/icedax.c.paranoiacdda cdrkit-1.1.11/icedax/icedax. #include "mp3.h" /* mp3 file handling */ #endif +#ifdef USE_PARANOIA -+#include -+#include ++#include ++#include +#endif #include "interface.h" /* low level cdrom interfacing */ #include "icedax.h" @@ -118,7 +118,7 @@ diff -up cdrkit-1.1.11/icedax/icedax.c.paranoiacdda cdrkit-1.1.11/icedax/icedax. #endif #if defined USE_PARANOIA - fputs( ", libparanoia", stderr ); -+ fputs( ", libcdda_paranoia", stderr ); ++ fputs( ", libcdio_paranoia", stderr ); #endif fputs( " support\n", stderr ); } diff --git a/cdrkit-1.1.11-paranoiacdio.patch b/cdrkit-1.1.11-paranoiacdio.patch new file mode 100644 index 0000000..34862e0 --- /dev/null +++ b/cdrkit-1.1.11-paranoiacdio.patch @@ -0,0 +1,2857 @@ +diff -up cdiopara/icedax/global.h.wrk cdiopara/icedax/global.h +diff -up cdiopara/icedax/icedax.c.wrk cdiopara/icedax/icedax.c +--- cdiopara/icedax/icedax.c.wrk 2013-05-14 14:53:18.446879592 +0200 ++++ cdiopara/icedax/icedax.c 2013-05-20 14:38:29.724047315 +0200 +@@ -1149,15 +1149,15 @@ static void paranoia_reset() + para_stat->skips = 0; + } + +-static void paranoia_callback(long inpos, int function); ++static void paranoia_callback(long inpos, paranoia_cb_mode_t function); + +-static void paranoia_callback(long inpos, int function) ++static void paranoia_callback(long inpos, paranoia_cb_mode_t function) + { + struct timeval thistime; + long test; + + switch (function) { +- case -2: ++/* case -2: + para_stat->v_sector = inpos / CD_FRAMEWORDS; + return; + case -1: +@@ -1165,7 +1165,7 @@ static void paranoia_callback(long inpos + para_stat->heartbeat = '*'; + para_stat->slevel = 0; + para_stat->v_sector = inpos / CD_FRAMEWORDS; +- break; ++ break;*/ + case PARANOIA_CB_VERIFY: + if (para_stat->stimeout >= 30) { + if (para_stat->curoverlap > CD_FRAMEWORDS) { +@@ -1232,6 +1232,12 @@ static void paranoia_callback(long inpos + para_stat->slevel = 5; + para_stat->fixup_dupeds++; + break; ++ ++ case PARANOIA_CB_REPAIR: ++ case PARANOIA_CB_BACKOFF: ++ default: ++ fprintf(stderr, "ERROR: Unknown function requested from paranoia_callback. REPORT THIS AS A BUG!/n"); ++ break; + } + + gettimeofday(&thistime, NULL); +@@ -2895,7 +2901,7 @@ Rate Divider Rate Divider + long paranoia_mode; + cdrom_drive *tmpdrive; + usal_close(get_scsi_p()); +- ++// global.cdp = paranoia_init(get_scsi_p()/*, global.nsectors*/); + tmpdrive = cdda_identify(global.dev_name, 0, NULL); + if (!tmpdrive) + { +@@ -2906,7 +2912,7 @@ Rate Divider Rate Divider + if(global.nsectors) + { + tmpdrive->nsectors = global.nsectors; +- tmpdrive->bigbuff = global.nsectors * CD_FRAMESIZE_RAW; ++// tmpdrive->bigbuff = global.nsectors * CD_FRAMESIZE_RAW; + } + if (cdda_open(tmpdrive) != 0) + { +diff -up cdiopara/icedax/icedax.h.wrk cdiopara/icedax/icedax.h +--- cdiopara/icedax/icedax.h.wrk 2013-05-14 14:35:09.646871797 +0200 ++++ cdiopara/icedax/icedax.h 2013-05-14 14:35:55.114209747 +0200 +@@ -71,7 +71,8 @@ unsigned int get_current_track(void); + #define CD_XA_SYNC_HEAD (CD_SYNC_SIZE+CD_XA_HEAD)/* sync bytes + header of XA frame */ + + #define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */ +-#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */ ++//defined in libcdio: ++//#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */ + /* most drives don't deliver everything: */ + #define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /* 2340 */ + #define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /* 2336 */ +diff -up cdiopara/icedax/interface.c.wrk cdiopara/icedax/interface.c +--- cdiopara/icedax/interface.c.wrk 2013-05-20 14:54:28.400943735 +0200 ++++ cdiopara/icedax/interface.c 2013-06-25 17:31:18.912450933 +0200 +@@ -75,15 +75,15 @@ + + #include "mytype.h" + #include "byteorder.h" +-#include "interface.h" + #include "icedax.h" + #include "semshm.h" + #include "setuid.h" ++#include "global.h" + #include "ringbuff.h" + #include "toc.h" +-#include "global.h" + #include "ioctl.h" + #include "exitcodes.h" ++#include "interface.h" + #include "scsi_cmds.h" + + #include +diff -up cdiopara/icedax/interface.h.wrk cdiopara/icedax/interface.h +--- cdiopara/icedax/interface.h.wrk 2013-05-22 15:24:17.117837738 +0200 ++++ cdiopara/icedax/interface.h 2013-06-25 17:23:38.155611522 +0200 +@@ -26,7 +26,11 @@ + #define CD_FRAMESIZE_RAW 2352 + #endif + ++#ifndef _CDDA_INTERFACE_H_ ++//#ifndef CD_FRAMESAMPLES + #define CD_FRAMESAMPLES (CD_FRAMESIZE_RAW / 4) ++//#endif ++#endif + + extern unsigned interface; + +diff -up cdiopara/icedax/ioctl.c.wrk cdiopara/icedax/ioctl.c +--- cdiopara/icedax/ioctl.c.wrk 2013-06-25 17:35:30.494695270 +0200 ++++ cdiopara/icedax/ioctl.c 2013-06-25 17:36:21.377147425 +0200 +@@ -55,11 +55,11 @@ + + #include "mytype.h" + #include "byteorder.h" ++#include "global.h" + #include "interface.h" + #include "toc.h" + #include "icedax.h" + #include "ioctl.h" +-#include "global.h" + #include "exitcodes.h" + + #include +diff -up cdiopara/icedax/resample.c.wrk cdiopara/icedax/resample.c +--- cdiopara/icedax/resample.c.wrk 2013-06-25 17:38:40.413456990 +0200 ++++ cdiopara/icedax/resample.c 2013-06-25 17:39:00.557653547 +0200 +@@ -42,6 +42,7 @@ + + #include "mytype.h" + #include "icedax.h" ++#include "global.h" + #include "interface.h" + #include "byteorder.h" + #include "ringbuff.h" +@@ -49,7 +50,6 @@ + #include "toc.h" + #include "sndfile.h" + #include "sndconfig.h" +-#include "global.h" + #include "exitcodes.h" + + +diff -up cdiopara/icedax/scsi_cmds.c.wrk cdiopara/icedax/scsi_cmds.c +--- cdiopara/icedax/scsi_cmds.c.wrk 2013-06-25 17:40:24.592486996 +0200 ++++ cdiopara/icedax/scsi_cmds.c 2013-06-25 17:40:42.189663871 +0200 +@@ -40,9 +40,9 @@ + + #include "mytype.h" + #include "icedax.h" ++#include "global.h" + #include "interface.h" + #include "byteorder.h" +-#include "global.h" + #include "wodim.h" + #include "toc.h" + #include "scsi_cmds.h" +diff -up cdiopara/icedax/semshm.c.wrk cdiopara/icedax/semshm.c +--- cdiopara/icedax/semshm.c.wrk 2013-06-25 17:59:53.181820740 +0200 ++++ cdiopara/icedax/semshm.c 2013-06-25 18:00:35.372272020 +0200 +@@ -90,9 +90,9 @@ + #endif + + #include "mytype.h" ++#include "global.h" + #include "interface.h" + #include "ringbuff.h" +-#include "global.h" + #include "exitcodes.h" + #include "semshm.h" + +diff -up cdiopara/icedax/toc.c.wrk cdiopara/icedax/toc.c +--- cdiopara/icedax/toc.c.wrk 2013-06-25 18:11:05.910961694 +0200 ++++ cdiopara/icedax/toc.c 2013-06-25 18:32:39.559603392 +0200 +@@ -58,9 +58,9 @@ + + #include "mytype.h" + #include "byteorder.h" ++#include "global.h" + #include "interface.h" + #include "icedax.h" +-#include "global.h" + #include "sha.h" + #include "base64.h" + #include "toc.h" +@@ -379,7 +379,7 @@ static void emit_cddb_form(char *fname_b + static void emit_cdindex_form(char *fname_baseval); + #endif + +-typedef struct TOC_t { /* structure of table of contents (cdrom) */ ++typedef struct icedax_TOC_t { /* structure of table of contents (cdrom) */ + unsigned char reserved1; + unsigned char bFlags; + unsigned char bTrack; +@@ -390,7 +390,7 @@ typedef struct TOC_t { /* structure of t + int frms; + unsigned char ISRC[16]; + int SCMS; +-} TOC_t; ++} icedax_TOC_t; + + /* Flags contains two fields: + bits 7-4 (ADR) +@@ -430,7 +430,7 @@ struct iterator { + int index; + int startindex; + void (*reset)(struct iterator *this); +- struct TOC_t *(*getNextTrack)(struct iterator *this); ++ struct icedax_TOC_t *(*getNextTrack)(struct iterator *this); + int (*hasNextTrack)(struct iterator *this); + }; + +@@ -516,7 +516,7 @@ unsigned FixupTOC(unsigned no_tracks) + InitIterator(&i, 1); + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + if (IS__AUDIO(p)) count_audio_tracks++; + } + +@@ -731,7 +731,7 @@ static void emit_cddb_form(char *fname_b + fprintf( cddb_form, "# Track frame offsets:\n#\n"); + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + if (GETTRACK(p) == CDROM_LEADOUT) break; + fprintf( cddb_form, + "# %lu\n", 150 + Get_AudioStartSector(GETTRACK(p))); +@@ -763,7 +763,7 @@ static void emit_cddb_form(char *fname_b + + i.reset(&i); + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + int ii; + + ii = GETTRACK(p); +@@ -786,7 +786,7 @@ static void emit_cddb_form(char *fname_b + + i.reset(&i); + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + int ii; + + ii = GETTRACK(p); +@@ -1493,7 +1493,7 @@ static int IsSingleArtist(void) + InitIterator(&i, 1); + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + int ii; + + if (IS__DATA(p) || GETTRACK(p) == CDROM_LEADOUT) continue; +@@ -1679,7 +1679,7 @@ static void emit_cdindex_form(char *fnam + global.creator ? ascii2html(global.creator) : ""); + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + int ii = GETTRACK(p); + + if (ii == CDROM_LEADOUT) break; +@@ -1701,7 +1701,7 @@ static void emit_cdindex_form(char *fnam + fprintf( cdindex_form, " \n"); + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + int ii = GETTRACK(p); + + if (ii == CDROM_LEADOUT) break; +@@ -1940,9 +1940,9 @@ static void DisplayToc_with_gui(unsigned + + if ((global.verbose & (SHOW_TOC | SHOW_STARTPOSITIONS | SHOW_SUMMARY | SHOW_TITLES)) != 0 + && i.hasNextTrack(&i)) { +- TOC_t *o = i.getNextTrack(&i); ++ icedax_TOC_t *o = i.getNextTrack(&i); + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + int from; + from = GETTRACK(o); + +@@ -2070,9 +2070,9 @@ static void DisplayToc_no_gui(unsigned l + count_audio_trks = 0; + + if (i.hasNextTrack(&i)) { +- TOC_t *o = i.getNextTrack(&i); ++ icedax_TOC_t *o = i.getNextTrack(&i); + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + int from; + from = GETTRACK(o); + +@@ -2129,10 +2129,10 @@ static void DisplayToc_no_gui(unsigned l + i.reset(&i); + if ((global.verbose & SHOW_TOC) != 0 && + i.hasNextTrack(&i)) { +- TOC_t *o = i.getNextTrack(&i); ++ icedax_TOC_t *o = i.getNextTrack(&i); + + for (; i.hasNextTrack(&i);) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + + if ( GETTRACK(o) <= MAXTRK ) { + unsigned char brace1, brace2; +@@ -2187,9 +2187,9 @@ static void DisplayToc_no_gui(unsigned l + ii = 0; + i.reset(&i); + if (i.hasNextTrack(&i)) { +- TOC_t *o = i.getNextTrack(&i); ++ icedax_TOC_t *o = i.getNextTrack(&i); + for ( ; i.hasNextTrack(&i);) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + fprintf ( stderr, + " %2u.(%8u)", + GETTRACK(o), +@@ -2246,7 +2246,7 @@ static void DisplayToc_no_gui(unsigned l + + i.reset(&i); + for ( ; i.hasNextTrack(&i);) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + int jj = GETTRACK(p); + + if ( global.tracktitle[jj] != NULL ) { +@@ -2258,7 +2258,7 @@ static void DisplayToc_no_gui(unsigned l + + i.reset(&i); + for ( ; i.hasNextTrack(&i); ) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + int jj; + + if (IS__DATA(p)) +@@ -2718,7 +2718,7 @@ void Read_MCN_ISRC(void) + InitIterator(&i, 1); + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + unsigned ii = GETTRACK(p); + + if (ii == CDROM_LEADOUT) break; +@@ -3153,7 +3153,7 @@ unsigned ScanIndices(unsigned track, uns + + + while (i.hasNextTrack(&i)) { +- struct TOC_t *p = i.getNextTrack(&i); ++ struct icedax_TOC_t *p = i.getNextTrack(&i); + unsigned ii = GETTRACK(p); + + if ( ii < starttrack || IS__DATA(p) ) +@@ -3320,7 +3320,7 @@ unsigned char *Get_MCN(void) + } + + +-static TOC_t g_toc [MAXTRK+1]; /* hidden track + 100 regular tracks */ ++static icedax_TOC_t g_toc [MAXTRK+1]; /* hidden track + 100 regular tracks */ + + /*#define IS_AUDIO(i) (!(g_toc[i].bFlags & 0x40))*/ + +@@ -3395,10 +3395,10 @@ static int patch_cd_extra(unsigned track + + static int restrict_tracks_illleadout(void) + { +- struct TOC_t *o = &g_toc[cdtracks+1]; ++ struct icedax_TOC_t *o = &g_toc[cdtracks+1]; + int i; + for (i = cdtracks; i >= 0; i--) { +- struct TOC_t *p = &g_toc[i]; ++ struct icedax_TOC_t *p = &g_toc[i]; + if (GETSTART(o) > GETSTART(p)) break; + } + patch_cd_extra(i+1, GETSTART(o)); +@@ -3521,7 +3521,7 @@ static void it_reset(struct iterator *th + + + static int it_hasNextTrack(struct iterator *this); +-static struct TOC_t *it_getNextTrack(struct iterator *this); ++static struct icedax_TOC_t *it_getNextTrack(struct iterator *this); + + static int it_hasNextTrack(struct iterator *this) + { +@@ -3530,7 +3530,7 @@ static int it_hasNextTrack(struct iterat + + + +-static struct TOC_t *it_getNextTrack(struct iterator *this) ++static struct icedax_TOC_t *it_getNextTrack(struct iterator *this) + { + /* if ( (*this->hasNextTrack)(this) == 0 ) return NULL; */ + if ( this->index > (int)cdtracks+1 ) return NULL; +@@ -3581,7 +3581,7 @@ long Get_AudioStartSector(unsigned long + if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT; + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + + if (GETTRACK(p) == p_track) { + if (IS__DATA(p)) { +@@ -3611,7 +3611,7 @@ long Get_StartSector(unsigned long p_tra + if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT; + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + + if (GETTRACK(p) == p_track) { + return GETSTART(p); +@@ -3635,7 +3635,7 @@ long Get_EndSector(unsigned long p_track + if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT; + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + if (GETTRACK(p) == p_track) { + p = i.getNextTrack(&i); + if (p == NULL) { +@@ -3667,7 +3667,7 @@ long FirstAudioTrack(void) + else i.reset(&i); + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + unsigned ii = GETTRACK(p); + + if (ii == CDROM_LEADOUT) break; +@@ -3685,7 +3685,7 @@ long FirstDataTrack(void) + else i.reset(&i); + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + if (IS__DATA(p)) { + return GETTRACK(p); + } +@@ -3706,7 +3706,7 @@ long LastAudioTrack(void) + else i.reset(&i); + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + if (IS__AUDIO(p) && (GETTRACK(p) != CDROM_LEADOUT)) { + j = GETTRACK(p); + } +@@ -3728,7 +3728,7 @@ long Get_LastSectorOnCd(unsigned long p_ + if (p_track == cdtracks + 1) p_track = CDROM_LEADOUT; + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + + if (GETTRACK(p) < p_track) + continue; +@@ -3747,9 +3747,9 @@ int Get_Track(unsigned long sector) + else i.reset(&i); + + if (i.hasNextTrack(&i)) { +- TOC_t *o = i.getNextTrack(&i); ++ icedax_TOC_t *o = i.getNextTrack(&i); + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + if ((GETSTART(o) <= sector) && (GETSTART(p) > sector)) { + if (IS__DATA(o)) { + return -1; +@@ -3770,7 +3770,7 @@ int CheckTrackrange(unsigned long from, + else i.reset(&i); + + while (i.hasNextTrack(&i)) { +- TOC_t *p = i.getNextTrack(&i); ++ icedax_TOC_t *p = i.getNextTrack(&i); + + if (GETTRACK(p) < from) + continue; +diff -up cdiopara/icedax/toc.h.wrk cdiopara/icedax/toc.h +--- cdiopara/icedax/toc.h.wrk 2013-05-14 14:41:35.646726988 +0200 ++++ cdiopara/icedax/toc.h 2013-05-14 14:42:06.556954562 +0200 +@@ -12,7 +12,8 @@ + + /* @(#)toc.h 1.9 06/02/19 Copyright 1998,1999 Heiko Eissfeldt, Copyright 2006 J. Schilling */ + +-#define MAXTRK 100 /* maximum of audio tracks (without a hidden track) */ ++//defined in libcdio: ++//#define MAXTRK 100 /* maximum of audio tracks (without a hidden track) */ + + extern unsigned cdtracks; + extern int have_multisession; +diff -up cdiopara/readom/readom.c.wrk cdiopara/readom/readom.c +--- cdiopara/readom/readom.c.wrk 2013-06-25 16:13:03.587078284 +0200 ++++ cdiopara/readom/readom.c 2013-06-25 16:13:27.466480361 +0200 +@@ -1146,7 +1146,7 @@ fread_2448_16(SCSI *usalp, rparm_t *rp, + { + + if (rp->ismmc) { +- track_t trackdesc; ++ wodim_track_t trackdesc; + int ret; + int i; + char *p; +diff -up cdiopara/wodim/auinfo.c.wrk cdiopara/wodim/auinfo.c +--- cdiopara/wodim/auinfo.c.wrk 2013-06-25 16:40:14.572918883 +0200 ++++ cdiopara/wodim/auinfo.c 2013-06-25 16:40:45.335248444 +0200 +@@ -46,16 +46,16 @@ + extern int debug; + extern int xdebug; + +-BOOL auinfosize(char *name, track_t *trackp); +-void auinfo(char *name, int track, track_t *trackp); +-textptr_t *gettextptr(int track, track_t *trackp); ++BOOL auinfosize(char *name, wodim_track_t *trackp); ++void auinfo(char *name, int track, wodim_track_t *trackp); ++textptr_t *gettextptr(int track, wodim_track_t *trackp); + static char *savestr(char *name); + static char *readtag(char *name); + static char *readtstr(char *name); +-void setmcn(char *mcn, track_t *trackp); ++void setmcn(char *mcn, wodim_track_t *trackp); + static void isrc_illchar(char *isrc, int c); +-void setisrc(char *isrc, track_t *trackp); +-void setindex(char *tindex, track_t *trackp); ++void setisrc(char *isrc, wodim_track_t *trackp); ++void setindex(char *tindex, wodim_track_t *trackp); + + #ifdef XXX + int +@@ -68,7 +68,7 @@ main(int argc, char *argv[]) + #endif + + BOOL +-auinfosize(char *name, track_t *trackp) ++auinfosize(char *name, wodim_track_t *trackp) + { + const char *p; + const char *tlp; +@@ -145,11 +145,11 @@ auinfosize(char *name, track_t *trackp) + } + + void +-auinfo(char *name, int track, track_t *trackp) ++auinfo(char *name, int track, wodim_track_t *trackp) + { + char infname[1024]; + char *p; +- track_t *tp = &trackp[track]; ++ wodim_track_t *tp = &trackp[track]; + textptr_t *txp; + long l; + long tno = -1; +@@ -303,7 +303,7 @@ auinfo(char *name, int track, track_t *t + } + + textptr_t * +-gettextptr(int track, track_t *trackp) ++gettextptr(int track, wodim_track_t *trackp) + { + register textptr_t *txp; + +@@ -366,7 +366,7 @@ readtstr(char *name) + * Media catalog number is a 13 digit number. + */ + void +-setmcn(char *mcn, track_t *trackp) ++setmcn(char *mcn, wodim_track_t *trackp) + { + register char *p; + +@@ -404,7 +404,7 @@ isrc_illchar(char *isrc, int c) + * CC-OOO-YY-SSSSS + */ + void +-setisrc(char *isrc, track_t *trackp) ++setisrc(char *isrc, wodim_track_t *trackp) + { + char ibuf[13]; + char *ip; +@@ -482,7 +482,7 @@ illchar: + } + + void +-setindex(char *tindex, track_t *trackp) ++setindex(char *tindex, wodim_track_t *trackp) + { + char *p; + int i; +diff -up cdiopara/wodim/cd_misc.c.wrk cdiopara/wodim/cd_misc.c +--- cdiopara/wodim/cd_misc.c.wrk 2013-06-25 16:52:56.893056513 +0200 ++++ cdiopara/wodim/cd_misc.c 2013-06-25 16:54:56.960519199 +0200 +@@ -42,8 +42,8 @@ + int from_bcd(int b); + int to_bcd(int i); + long msf_to_lba(int m, int s, int f, BOOL force_positive); +-BOOL lba_to_msf(long lba, msf_t *mp); +-void sec_to_msf(long sec, msf_t *mp); ++BOOL lba_to_msf(long lba, wodim_msf_t *mp); ++void sec_to_msf(long sec, wodim_msf_t *mp); + void print_min_atip(long li, long lo); + + int +@@ -73,7 +73,7 @@ msf_to_lba(int m, int s, int f, BOOL for + } + + BOOL +-lba_to_msf(long lba, msf_t *mp) ++lba_to_msf(long lba, wodim_msf_t *mp) + { + int m; + int s; +@@ -110,7 +110,7 @@ lba_to_msf(long lba, msf_t *mp) + } + + void +-sec_to_msf(long sec, msf_t *mp) ++sec_to_msf(long sec, wodim_msf_t *mp) + { + int m; + int s; +@@ -128,7 +128,7 @@ sec_to_msf(long sec, msf_t *mp) + void + print_min_atip(long li, long lo) + { +- msf_t msf; ++ wodim_msf_t msf; + + if (li < 0) { + lba_to_msf(li, &msf); +diff -up cdiopara/wodim/cdr_drv.c.wrk cdiopara/wodim/cdr_drv.c +--- cdiopara/wodim/cdr_drv.c.wrk 2013-06-25 16:42:28.603492864 +0200 ++++ cdiopara/wodim/cdr_drv.c 2013-06-25 16:43:07.938976575 +0200 +@@ -77,7 +77,7 @@ int format_dummy(SCSI *usalp, cdr_t *, i + int drive_getdisktype(SCSI *usalp, cdr_t *dp); + int cmd_ill(SCSI *usalp); + int cmd_dummy(SCSI *usalp, cdr_t *); +-int no_sendcue(SCSI *usalp, cdr_t *, track_t *trackp); ++int no_sendcue(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + int buf_dummy(SCSI *usalp, long *sp, long *fp); + BOOL set_cdrcmds(char *name, cdr_t **dpp); + cdr_t *get_cdrcmds(SCSI *usalp); +@@ -165,7 +165,7 @@ cmd_dummy(SCSI *usalp, cdr_t *dp) + } + + int +-no_sendcue(SCSI *usalp, cdr_t *dp, track_t *trackp) ++no_sendcue(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + errmsgno(EX_BAD, "SAO writing not available or not implemented for this drive.\n"); + return (-1); +diff -up cdiopara/wodim/cdtext.c.wrk cdiopara/wodim/cdtext.c +--- cdiopara/wodim/cdtext.c.wrk 2013-06-25 16:44:38.388059921 +0200 ++++ cdiopara/wodim/cdtext.c 2013-06-25 16:44:59.599309190 +0200 +@@ -119,8 +119,8 @@ int textlen; + BOOL checktextfile(char *fname); + static void setuptextdata(Uchar *bp, int len); + static BOOL cdtext_crc_ok(struct textpack *p); +-void packtext(int tracks, track_t *trackp); +-static BOOL anytext(int pack_type, int tracks, track_t *trackp); ++void packtext(int tracks, wodim_track_t *trackp); ++static BOOL anytext(int pack_type, int tracks, wodim_track_t *trackp); + static void fillup_pack(txtarg_t *ap); + static void fillpacks(txtarg_t *ap, char *from, int len, int track_no, int pack_type); + int write_cdtext(SCSI *usalp, cdr_t *dp, long startsec); +@@ -295,7 +295,7 @@ static BOOL cdtext_crc_ok(struct textpac + } + + +-void packtext(int tracks, track_t *trackp) ++void packtext(int tracks, wodim_track_t *trackp) + { + int type; + int i; +@@ -373,7 +373,7 @@ void packtext(int tracks, track_t *track + #endif + } + +-static BOOL anytext(int pack_type, int tracks, track_t *trackp) ++static BOOL anytext(int pack_type, int tracks, wodim_track_t *trackp) + { + register int i; + register char *p; +diff -up cdiopara/wodim/clone.c.wrk cdiopara/wodim/clone.c +--- cdiopara/wodim/clone.c.wrk 2013-06-25 17:33:21.013643927 +0200 ++++ cdiopara/wodim/clone.c 2013-06-25 17:43:07.932151568 +0200 +@@ -52,8 +52,8 @@ + + /*#define SAO_RAW*/ + +-void clone_toc(track_t *trackp); +-void clone_tracktype(track_t *trackp); ++void clone_toc(wodim_track_t *trackp); ++void clone_tracktype(wodim_track_t *trackp); + + extern int lverbose; + extern int xdebug; +@@ -72,11 +72,11 @@ static long loutstart; + /* + * Read Clone TOC description from full toc file. + */ +-void clone_toc(track_t *trackp) ++void clone_toc(wodim_track_t *trackp) + { + char filename[1024]; +- msf_t m; +- msf_t mr; ++ wodim_msf_t m; ++ wodim_msf_t mr; + struct tocheader *tp; + struct ftrackdesc *fp; + int f; +@@ -208,7 +208,7 @@ void clone_toc(track_t *trackp) + * Control 4 = data + * Control 5 = packet data + */ +-void clone_tracktype(track_t *trackp) ++void clone_tracktype(wodim_track_t *trackp) + { + int tracks = trackp->tracks; + int sectype; +diff -up cdiopara/wodim/cue.c.wrk cdiopara/wodim/cue.c +--- cdiopara/wodim/cue.c.wrk 2013-06-25 17:44:52.030231911 +0200 ++++ cdiopara/wodim/cue.c 2013-06-25 17:46:01.606959365 +0200 +@@ -238,22 +238,22 @@ static keyw_t dtypes[] = { + }; + + +-int parsecue(char *cuefname, track_t trackp[]); +-void fparsecue(FILE *f, track_t trackp[]); +-static void parse_mcn(track_t trackp[], state_t *sp); +-static void parse_textfile(track_t trackp[], state_t *sp); +-static void parse_file(track_t trackp[], state_t *sp); +-static void parse_flags(track_t trackp[], state_t *sp); +-static void parse_index(track_t trackp[], state_t *sp); +-static void parse_isrc(track_t trackp[], state_t *sp); +-static void parse_performer(track_t trackp[], state_t *sp); +-static void parse_postgap(track_t trackp[], state_t *sp); +-static void parse_pregap(track_t trackp[], state_t *sp); +-static void parse_songwriter(track_t trackp[], state_t *sp); +-static void parse_title(track_t trackp[], state_t *sp); +-static void parse_track(track_t trackp[], state_t *sp); ++int parsecue(char *cuefname, wodim_track_t trackp[]); ++void fparsecue(FILE *f, wodim_track_t trackp[]); ++static void parse_mcn(wodim_track_t trackp[], state_t *sp); ++static void parse_textfile(wodim_track_t trackp[], state_t *sp); ++static void parse_file(wodim_track_t trackp[], state_t *sp); ++static void parse_flags(wodim_track_t trackp[], state_t *sp); ++static void parse_index(wodim_track_t trackp[], state_t *sp); ++static void parse_isrc(wodim_track_t trackp[], state_t *sp); ++static void parse_performer(wodim_track_t trackp[], state_t *sp); ++static void parse_postgap(wodim_track_t trackp[], state_t *sp); ++static void parse_pregap(wodim_track_t trackp[], state_t *sp); ++static void parse_songwriter(wodim_track_t trackp[], state_t *sp); ++static void parse_title(wodim_track_t trackp[], state_t *sp); ++static void parse_track(wodim_track_t trackp[], state_t *sp); + static void parse_offset(long *lp); +-static void newtrack(track_t trackp[], state_t *sp); ++static void newtrack(wodim_track_t trackp[], state_t *sp); + + static keyw_t *lookup(char *word, keyw_t table[]); + static void wdebug(void); +@@ -286,7 +286,7 @@ int + main(int argc, char *argv[]) + { + int i; +- track_t track[MAX_TRACK+2]; /* Max tracks + track 0 + track AA */ ++ wodim_track_t track[MAX_TRACK+2]; /* Max tracks + track 0 + track AA */ + + save_args(argc, argv); + +@@ -304,7 +304,7 @@ extern int xdebug; + #endif + + int +-parsecue(char *cuefname, track_t trackp[]) ++parsecue(char *cuefname, wodim_track_t trackp[]) + { + FILE *f = cueopen(cuefname); + +@@ -313,7 +313,7 @@ parsecue(char *cuefname, track_t trackp[ + } + + void +-fparsecue(FILE *f, track_t trackp[]) ++fparsecue(FILE *f, wodim_track_t trackp[]) + { + char *word; + struct keyw *kp; +@@ -402,7 +402,7 @@ fparsecue(FILE *f, track_t trackp[]) + } + + static void +-parse_mcn(track_t trackp[], state_t *sp) ++parse_mcn(wodim_track_t trackp[], state_t *sp) + { + char *word; + textptr_t *txp; +@@ -419,7 +419,7 @@ parse_mcn(track_t trackp[], state_t *sp) + } + + static void +-parse_textfile(track_t trackp[], state_t *sp) ++parse_textfile(wodim_track_t trackp[], state_t *sp) + { + char *word; + +@@ -444,7 +444,7 @@ parse_textfile(track_t trackp[], state_t + } + + static void +-parse_file(track_t trackp[], state_t *sp) ++parse_file(wodim_track_t trackp[], state_t *sp) + { + char cname[1024]; + char newname[1024]; +@@ -543,7 +543,7 @@ parse_file(track_t trackp[], state_t *sp + } + + static void +-parse_flags(track_t trackp[], state_t *sp) ++parse_flags(wodim_track_t trackp[], state_t *sp) + { + struct keyw *kp; + char *word; +@@ -575,7 +575,7 @@ parse_flags(track_t trackp[], state_t *s + } + + static void +-parse_index(track_t trackp[], state_t *sp) ++parse_index(wodim_track_t trackp[], state_t *sp) + { + char *word; + long l; +@@ -634,7 +634,7 @@ parse_index(track_t trackp[], state_t *s + } + + static void +-parse_isrc(track_t trackp[], state_t *sp) ++parse_isrc(wodim_track_t trackp[], state_t *sp) + { + char *word; + textptr_t *txp; +@@ -657,7 +657,7 @@ parse_isrc(track_t trackp[], state_t *sp + } + + static void +-parse_performer(track_t trackp[], state_t *sp) ++parse_performer(wodim_track_t trackp[], state_t *sp) + { + char *word; + textptr_t *txp; +@@ -670,7 +670,7 @@ parse_performer(track_t trackp[], state_ + } + + static void +-parse_postgap(track_t trackp[], state_t *sp) ++parse_postgap(wodim_track_t trackp[], state_t *sp) + { + long l; + +@@ -685,7 +685,7 @@ parse_postgap(track_t trackp[], state_t + } + + static void +-parse_pregap(track_t trackp[], state_t *sp) ++parse_pregap(wodim_track_t trackp[], state_t *sp) + { + long l; + +@@ -701,7 +701,7 @@ parse_pregap(track_t trackp[], state_t * + } + + static void +-parse_songwriter(track_t trackp[], state_t *sp) ++parse_songwriter(wodim_track_t trackp[], state_t *sp) + { + char *word; + textptr_t *txp; +@@ -714,7 +714,7 @@ parse_songwriter(track_t trackp[], state + } + + static void +-parse_title(track_t trackp[], state_t *sp) ++parse_title(wodim_track_t trackp[], state_t *sp) + { + char *word; + textptr_t *txp; +@@ -727,7 +727,7 @@ parse_title(track_t trackp[], state_t *s + } + + static void +-parse_track(track_t trackp[], state_t *sp) ++parse_track(wodim_track_t trackp[], state_t *sp) + { + struct keyw *kp; + char *word; +@@ -878,7 +878,7 @@ parse_offset(long *lp) + + /*--------------------------------------------------------------------------*/ + static void +-newtrack(track_t trackp[], state_t *sp) ++newtrack(wodim_track_t trackp[], state_t *sp) + { + register int i; + register int track = sp->track; +diff -up cdiopara/wodim/diskid.c.wrk cdiopara/wodim/diskid.c +--- cdiopara/wodim/diskid.c.wrk 2013-06-25 18:02:27.661472904 +0200 ++++ cdiopara/wodim/diskid.c 2013-06-25 18:03:26.453101549 +0200 +@@ -39,13 +39,13 @@ + + #include "wodim.h" + +-void pr_manufacturer(msf_t *mp, BOOL rw, BOOL audio); +-static struct disk_man *man_ptr(msf_t *mp); +-int manufacturer_id(msf_t *mp); +-long disk_rcap(msf_t *mp, long maxblock, BOOL rw, BOOL audio); ++void pr_manufacturer(wodim_msf_t *mp, BOOL rw, BOOL audio); ++static struct disk_man *man_ptr(wodim_msf_t *mp); ++int manufacturer_id(wodim_msf_t *mp); ++long disk_rcap(wodim_msf_t *mp, long maxblock, BOOL rw, BOOL audio); + + struct disk_man { +- msf_t mi_msf; ++ wodim_msf_t mi_msf; + char mi_num; + char *mi_name; + }; +@@ -328,7 +328,7 @@ static struct disk_man dman[] = { + #define ndman (sizeof (dman)/sizeof (dman[0])) + + static struct disk_man * +-man_ptr(msf_t *mp) ++man_ptr(wodim_msf_t *mp) + { + struct disk_man * dp; + int frame; +@@ -363,7 +363,7 @@ man_ptr(msf_t *mp) + return (NULL); + } + +-void pr_manufacturer(msf_t *mp, BOOL rw, BOOL audio) ++void pr_manufacturer(wodim_msf_t *mp, BOOL rw, BOOL audio) + { + struct disk_man * dp; + struct disk_man xdman; +@@ -417,7 +417,7 @@ void pr_manufacturer(msf_t *mp, BOOL rw, + } + } + +-int manufacturer_id(msf_t *mp) ++int manufacturer_id(wodim_msf_t *mp) + { + struct disk_man * dp; + +@@ -428,7 +428,7 @@ int manufacturer_id(msf_t *mp) + } + + struct disk_rcap { +- msf_t ci_msf; /* Lead in start time */ ++ wodim_msf_t ci_msf; /* Lead in start time */ + long ci_cap; /* Lead out start time */ + long ci_rcap; /* Abs max lead out start */ + }; +@@ -505,7 +505,7 @@ static struct disk_rcap rcap[] = { + }; + + long +-disk_rcap(msf_t *mp, long maxblock, BOOL rw, BOOL audio) ++disk_rcap(wodim_msf_t *mp, long maxblock, BOOL rw, BOOL audio) + { + struct disk_rcap * dp; + +diff -up cdiopara/wodim/drv_7501.c.wrk cdiopara/wodim/drv_7501.c +--- cdiopara/wodim/drv_7501.c.wrk 2013-06-25 18:08:14.575166824 +0200 ++++ cdiopara/wodim/drv_7501.c 2013-06-25 18:14:44.030252075 +0200 +@@ -225,18 +225,18 @@ static int cw7501_attach(SCSI *usalp, cd + static int cw7501_init(SCSI *usalp, cdr_t *dp); + static int cw7501_getdisktype(SCSI *usalp, cdr_t *dp); + static int cw7501_speed_select(SCSI *usalp, cdr_t *dp, int *speedp); +-static int cw7501_next_wr_addr(SCSI *usalp, track_t *trackp, long *ap); ++static int cw7501_next_wr_addr(SCSI *usalp, wodim_track_t *trackp, long *ap); + static int cw7501_write(SCSI *usalp, caddr_t bp, long sectaddr, long size, + int blocks, BOOL islast); +-static int cw7501_write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int cw7501_open_track(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int cw7501_close_track(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int cw7501_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int cw7501_gen_cue(track_t *trackp, void *vcuep, BOOL needgap); ++static int cw7501_write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int cw7501_open_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int cw7501_close_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int cw7501_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int cw7501_gen_cue(wodim_track_t *trackp, void *vcuep, BOOL needgap); + static void fillcue(struct cw7501_cue *cp, int ca, int tno, int idx, +- int dataform, int scms, msf_t *mp); +-static int cw7501_send_cue(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int cw7501_fixate(SCSI *usalp, cdr_t *dp, track_t *trackp); ++ int dataform, int scms, wodim_msf_t *mp); ++static int cw7501_send_cue(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int cw7501_fixate(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int cw7501_rezero(SCSI *usalp, int reset, int dwreset); + static int cw7501_read_trackinfo(SCSI *usalp, Uchar *bp, int count, + int track, int mode); +@@ -461,7 +461,7 @@ cw7501_speed_select(SCSI *usalp, cdr_t * + } + + static int +-cw7501_next_wr_addr(SCSI *usalp, track_t *trackp, long *ap) ++cw7501_next_wr_addr(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + struct cw7501_nwa *nwa; + Uchar buf[256]; +@@ -520,7 +520,7 @@ cw7501_write(SCSI *usalp, + } + + static int +-cw7501_write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp) ++cw7501_write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uint i; + long startsec = 0L; +@@ -572,7 +572,7 @@ static Uchar db2phys[] = { + }; + + static int +-cw7501_open_track(SCSI *usalp, cdr_t *dp, track_t *trackp) ++cw7501_open_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + struct scsi_mode_page_header *mp; + Uchar mode[256]; +@@ -632,7 +632,7 @@ cw7501_open_track(SCSI *usalp, cdr_t *dp + + + static int +-cw7501_close_track(SCSI *usalp, cdr_t *dp, track_t *trackp) ++cw7501_close_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (!is_tao(trackp) && !is_packet(trackp)) { + return (0); +@@ -641,7 +641,7 @@ cw7501_close_track(SCSI *usalp, cdr_t *d + } + + static int +-cw7501_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp) ++cw7501_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + struct cw7501_mode_data md; + int count; +@@ -695,7 +695,7 @@ cw7501_open_session(SCSI *usalp, cdr_t * + } + + static int +-cw7501_fixate(SCSI *usalp, cdr_t *dp, track_t *trackp) ++cw7501_fixate(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (!is_tao(trackp) && !is_packet(trackp)) { + return (scsi_flush_cache(usalp, FALSE)); +@@ -711,7 +711,7 @@ cw7501_fixate(SCSI *usalp, cdr_t *dp, tr + /*--------------------------------------------------------------------------*/ + + static int +-cw7501_gen_cue(track_t *trackp, void *vcuep, BOOL needgap) ++cw7501_gen_cue(wodim_track_t *trackp, void *vcuep, BOOL needgap) + { + int tracks = trackp->tracks; + int i; +@@ -721,7 +721,7 @@ cw7501_gen_cue(track_t *trackp, void *vc + int ncue = 0; + int icue = 0; + int pgsize; +- msf_t m; ++ wodim_msf_t m; + int ctl; + int df; + int scms; +@@ -820,7 +820,7 @@ fillcue(struct cw7501_cue *cp /* The tar + int idx /* Index for this entry */, + int dataform /* Data format for this entry */, + int scms /* Serial copy management */, +- msf_t *mp /* MSF value for this entry */) ++ wodim_msf_t *mp /* MSF value for this entry */) + { + cp->cs_ctladr = ca; + if (tno <= 99) +@@ -838,7 +838,7 @@ fillcue(struct cw7501_cue *cp /* The tar + } + + static int +-cw7501_send_cue(SCSI *usalp, cdr_t *dp, track_t *trackp) ++cw7501_send_cue(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + struct cw7501_cue *cp; + int ncue; +diff -up cdiopara/wodim/drv_jvc.c.wrk cdiopara/wodim/drv_jvc.c +--- cdiopara/wodim/drv_jvc.c.wrk 2013-06-25 18:17:15.654847220 +0200 ++++ cdiopara/wodim/drv_jvc.c 2013-06-25 18:20:04.868629843 +0200 +@@ -220,15 +220,15 @@ static int teac_attach(SCSI *usalp, cdr_ + static int teac_init(SCSI *usalp, cdr_t *dp); + static int teac_getdisktype(SCSI *usalp, cdr_t *dp); + static int speed_select_teac(SCSI *usalp, cdr_t *dp, int *speedp); +-static int select_secsize_teac(SCSI *usalp, track_t *trackp); +-static int next_wr_addr_jvc(SCSI *usalp, track_t *, long *ap); ++static int select_secsize_teac(SCSI *usalp, wodim_track_t *trackp); ++static int next_wr_addr_jvc(SCSI *usalp, wodim_track_t *, long *ap); + static int write_teac_xg1(SCSI *usalp, caddr_t, long, long, int, BOOL); + static int cdr_write_teac(SCSI *usalp, caddr_t bp, long sectaddr, long size, + int blocks, BOOL islast); +-static int open_track_jvc(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int teac_fixation(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int close_track_teac(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int teac_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int open_track_jvc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int teac_fixation(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int close_track_teac(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int teac_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int initsub_teac(SCSI *usalp, int toctype, int multi); + static int teac_doopc(SCSI *usalp); + static int teac_opc(SCSI *usalp, caddr_t, int cnt, int doopc); +@@ -278,9 +278,9 @@ cdr_t cdr_teac_cdr50 = { + next_wr_addr_jvc, + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + cdr_write_teac, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_jvc, + close_track_teac, + teac_open_session, +@@ -372,7 +372,7 @@ speed_select_teac(SCSI *usalp, cdr_t *dp + } + + static int +-select_secsize_teac(SCSI *usalp, track_t *trackp) ++select_secsize_teac(SCSI *usalp, wodim_track_t *trackp) + { + struct scsi_mode_data md; + int count = sizeof (struct scsi_mode_header) + +@@ -403,7 +403,7 @@ select_secsize_teac(SCSI *usalp, track_t + } + + static int +-next_wr_addr_jvc(SCSI *usalp, track_t *trackp, long *ap) ++next_wr_addr_jvc(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + if (trackp != 0 && trackp->track > 0) { + *ap = lba_addr; +@@ -473,7 +473,7 @@ cdr_write_teac(SCSI *usalp, + } + + static int +-open_track_jvc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_jvc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int status; + long blocks; +@@ -601,7 +601,7 @@ if (!is_last(trackp) && trackp[1].pregap + static char sector[3000]; + + static int +-close_track_teac(SCSI *usalp, cdr_t *dp, track_t *trackp) ++close_track_teac(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int ret = 0; + +@@ -698,7 +698,7 @@ teac_attach(SCSI *usalp, cdr_t *dp) + } + + static int +-teac_fixation(SCSI *usalp, cdr_t *dp, track_t *trackp) ++teac_fixation(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + long lba; + int status; +@@ -811,7 +811,7 @@ extern char *buf; + } + + static int +-teac_open_session(SCSI *usalp, cdr_t *dp, track_t *trackp) ++teac_open_session(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uint i; + +diff -up cdiopara/wodim/drv_mmc.c.wrk cdiopara/wodim/drv_mmc.c +--- cdiopara/wodim/drv_mmc.c.wrk 2013-06-25 18:24:35.494485316 +0200 ++++ cdiopara/wodim/drv_mmc.c 2013-06-25 18:25:57.345350411 +0200 +@@ -110,18 +110,18 @@ static int speed_select_mmc(SCSI *usalp, + static int speed_select_mdvd(SCSI *usalp, cdr_t *dp, int *speedp); + static int mmc_set_speed(SCSI *usalp, int readspeed, int writespeed, + int rotctl); +-static int next_wr_addr_mmc(SCSI *usalp, track_t *trackp, long *ap); +-static int next_wr_addr_mdvd(SCSI *usalp, track_t *trackp, long *ap); +-static int write_leadin_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int close_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int close_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_session_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_session_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int next_wr_addr_mmc(SCSI *usalp, wodim_track_t *trackp, long *ap); ++static int next_wr_addr_mdvd(SCSI *usalp, wodim_track_t *trackp, long *ap); ++static int write_leadin_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int close_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int close_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_session_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_session_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int waitfix_mmc(SCSI *usalp, int secs); +-static int fixate_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int fixate_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int fixate_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int fixate_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int blank_mmc(SCSI *usalp, cdr_t *dp, long addr, int blanktype); + static int format_mdvd(SCSI *usalp, cdr_t *dp, int formattype); + static int send_opc_mmc(SCSI *usalp, caddr_t, int cnt, int doopc); +@@ -130,10 +130,10 @@ static int opt1_mdvd(SCSI *usalp, cdr_t + static int opt2_mmc(SCSI *usalp, cdr_t *dp); + static int scsi_sony_write(SCSI *usalp, caddr_t bp, long sectaddr, long size, + int blocks, BOOL islast); +-static int gen_cue_mmc(track_t *trackp, void *vcuep, BOOL needgap); ++static int gen_cue_mmc(wodim_track_t *trackp, void *vcuep, BOOL needgap); + static void fillcue(struct mmc_cue *cp, int ca, int tno, int idx, int dataform, +- int scms, msf_t *mp); +-static int send_cue_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp); ++ int scms, wodim_msf_t *mp); ++static int send_cue_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int stats_mmc(SCSI *usalp, cdr_t *dp); + static BOOL mmc_isplextor(SCSI *usalp); + static BOOL mmc_isyamaha(SCSI *usalp); +@@ -251,8 +251,8 @@ cdr_t cdr_mdvd = { + next_wr_addr_mdvd, + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + scsi_cdr_write, +- (int(*)__PR((track_t *, void *, BOOL)))cmd_dummy, /* gen_cue */ +- (int(*)__PR((SCSI *usalp, cdr_t *, track_t *)))cmd_dummy, /* send_cue */ ++ (int(*)__PR((wodim_track_t *, void *, BOOL)))cmd_dummy, /* gen_cue */ ++ (int(*)__PR((SCSI *usalp, cdr_t *, wodim_track_t *)))cmd_dummy, /* send_cue */ + write_leadin_mmc, + open_track_mdvd, + close_track_mdvd, +@@ -337,19 +337,19 @@ cdr_t cdr_cd = { + (int(*)(SCSI *, cdr_t *, int))cmd_dummy, /* recover */ + speed_select_mmc, + select_secsize, +- (int(*)(SCSI *usalp, track_t *, long *))cmd_ill, /* next_wr_addr */ ++ (int(*)(SCSI *usalp, wodim_track_t *, long *))cmd_ill, /* next_wr_addr */ + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + scsi_cdr_write, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_mmc, + close_track_mmc, +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset, +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* fixation */ ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* fixation */ + cmd_dummy, /* stats */ + blank_dummy, + format_dummy, +@@ -381,19 +381,19 @@ cdr_t cdr_oldcd = { + (int(*)(SCSI *, cdr_t *, int))cmd_dummy, /* recover */ + speed_select_mmc, + select_secsize, +- (int(*)(SCSI *usal, track_t *, long *))cmd_ill, /* next_wr_addr */ ++ (int(*)(SCSI *usal, wodim_track_t *, long *))cmd_ill, /* next_wr_addr */ + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + scsi_cdr_write, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_mmc, + close_track_mmc, +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* fixation */ ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* fixation */ + cmd_dummy, /* stats */ + blank_dummy, + format_dummy, +@@ -426,19 +426,19 @@ cdr_t cdr_cd_dvd = { + (int(*)(SCSI *, cdr_t *, int))cmd_dummy, /* recover */ + speed_select_mmc, + select_secsize, +- (int(*)(SCSI *usalp, track_t *, long *))cmd_ill, /* next_wr_addr */ ++ (int(*)(SCSI *usalp, wodim_track_t *, long *))cmd_ill, /* next_wr_addr */ + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + scsi_cdr_write, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_mmc, + close_track_mmc, +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset, +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* fixation */ ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* fixation */ + cmd_dummy, /* stats */ + blank_dummy, + format_dummy, +@@ -1549,7 +1549,7 @@ extern char *buf; + dstat_t *dsp = dp->cdr_dstat; + struct disk_info *dip; + Uchar mode[0x100]; +- msf_t msf; ++ wodim_msf_t msf; + BOOL did_atip = FALSE; + BOOL did_dummy = FALSE; + int rplus; +@@ -2116,7 +2116,7 @@ speed_select_mdvd(SCSI *usalp, cdr_t *dp + } + + static int +-next_wr_addr_mmc(SCSI *usalp, track_t *trackp, long *ap) ++next_wr_addr_mmc(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + struct track_info track_info; + long next_addr; +@@ -2157,7 +2157,7 @@ next_wr_addr_mmc(SCSI *usalp, track_t *t + } + + static int +-write_leadin_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++write_leadin_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uint i; + long startsec = 0L; +@@ -2247,7 +2247,7 @@ int st2mode[] = { + }; + + static int +-next_wr_addr_mdvd(SCSI *usalp, track_t *trackp, long *ap) ++next_wr_addr_mdvd(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + int track=0; + struct track_info track_info; +@@ -2287,7 +2287,7 @@ next_wr_addr_mdvd(SCSI *usalp, track_t * + } + + static int +-open_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uchar mode[0x100]; + int len; +@@ -2364,7 +2364,7 @@ open_track_mmc(SCSI *usalp, cdr_t *dp, t + } + + static int +-open_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uchar mode[0x100]; + int len; +@@ -2400,7 +2400,7 @@ open_track_mdvd(SCSI *usalp, cdr_t *dp, + } + + static int +-close_track_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++close_track_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int ret; + +@@ -2423,7 +2423,7 @@ close_track_mmc(SCSI *usalp, cdr_t *dp, + } + + static int +-close_track_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp) ++close_track_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int ret; + if (!is_packet(trackp)) +@@ -2454,7 +2454,7 @@ int toc2sess[] = { + }; + + static int +-open_session_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_session_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uchar mode[0x100]; + int len; +@@ -2523,7 +2523,7 @@ open_session_mmc(SCSI *usalp, cdr_t *dp, + } + + static int +-open_session_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_session_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uchar mode[0x100]; + int tracks = trackp->tracks; +@@ -2633,7 +2633,7 @@ waitfix_mmc(SCSI *usalp, int secs) + } + + static int +-fixate_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++fixate_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int ret = 0; + int key = 0; +@@ -2738,7 +2738,7 @@ fixate_mmc(SCSI *usalp, cdr_t *dp, track + } + + static int +-fixate_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp) ++fixate_mdvd(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int ret; + if (scsi_flush_cache(usalp, (dp->cdr_cmdflags&F_IMMED) != 0) < 0) { +@@ -2960,7 +2960,7 @@ opt1_mmc(SCSI *usalp, cdr_t *dp) + } + dp->cdr_dstat->ds_cdrflags = oflags; + if (oflags & RF_PRATIP) { +- msf_t msf; ++ wodim_msf_t msf; + lba_to_msf(dp->cdr_dstat->ds_first_leadin, &msf); + printf("New start of lead in: %ld (%02d:%02d/%02d)\n", + (long)dp->cdr_dstat->ds_first_leadin, +@@ -2998,7 +2998,7 @@ opt1_mmc(SCSI *usalp, cdr_t *dp) + else + gcode = gigarec_plextor(usalp, 0); + if (gcode != 0) { +- msf_t msf; ++ wodim_msf_t msf; + + dp->cdr_dstat->ds_first_leadin = + gigarec_mult(gcode, dp->cdr_dstat->ds_first_leadin); +@@ -3126,7 +3126,7 @@ opt1_mdvd(SCSI *usalp, cdr_t *dp) + } + dp->cdr_dstat->ds_cdrflags = oflags; + if (oflags & RF_PRATIP) { +- msf_t msf; ++ wodim_msf_t msf; + lba_to_msf(dp->cdr_dstat->ds_first_leadin, &msf); + printf("New start of lead in: %ld (%02d:%02d/%02d)\n", + (long)dp->cdr_dstat->ds_first_leadin, +@@ -3175,7 +3175,7 @@ Uchar db2df[] = { + }; + + static int +-gen_cue_mmc(track_t *trackp, void *vcuep, BOOL needgap) ++gen_cue_mmc(wodim_track_t *trackp, void *vcuep, BOOL needgap) + { + int tracks = trackp->tracks; + int i; +@@ -3185,7 +3185,7 @@ gen_cue_mmc(track_t *trackp, void *vcuep + int ncue = 0; + int icue = 0; + int pgsize; +- msf_t m; ++ wodim_msf_t m; + int ctl; + int df; + int scms; +@@ -3318,7 +3318,7 @@ fillcue(struct mmc_cue *cp /* The targe + int idx /* Index for this entry */, + int dataform /* Data format for this entry */, + int scms /* Serial copy management */, +- msf_t *mp /* MSF value for this entry */) ++ wodim_msf_t *mp /* MSF value for this entry */) + { + cp->cs_ctladr = ca; /* XXX wie lead in */ + cp->cs_tno = tno; +@@ -3331,7 +3331,7 @@ fillcue(struct mmc_cue *cp /* The targe + } + + static int +-send_cue_mmc(SCSI *usalp, cdr_t *dp, track_t *trackp) ++send_cue_mmc(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + struct mmc_cue *cp; + int ncue; +diff -up cdiopara/wodim/drv_philips.c.wrk cdiopara/wodim/drv_philips.c +--- cdiopara/wodim/drv_philips.c.wrk 2013-06-25 18:34:35.454829395 +0200 ++++ cdiopara/wodim/drv_philips.c 2013-06-25 18:36:03.525761201 +0200 +@@ -67,18 +67,18 @@ static int philips_getdisktype(SCSI *usa + static BOOL capacity_philips(SCSI *usalp, long *lp); + static int first_writable_addr_philips(SCSI *usalp, long *, int, int, int, + int); +-static int next_wr_addr_philips(SCSI *usalp, track_t *trackp, long *ap); ++static int next_wr_addr_philips(SCSI *usalp, wodim_track_t *trackp, long *ap); + static int reserve_track_philips(SCSI *usalp, unsigned long); + static int scsi_cdr_write_philips(SCSI *usalp, caddr_t bp, long sectaddr, + long size, int blocks, BOOL islast); + static int write_track_info_philips(SCSI *usalp, int); + static int write_track_philips(SCSI *usalp, long, int); +-static int open_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_track_plasmon(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_track_oldphilips(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_track_yamaha(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int close_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int fixation_philips(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int open_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_track_plasmon(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_track_oldphilips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_track_yamaha(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int close_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int fixation_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + + static int philips_attach(SCSI *usalp, cdr_t *); + static int plasmon_attach(SCSI *usalp, cdr_t *); +@@ -159,12 +159,12 @@ cdr_t cdr_philips_cdd521O = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_oldphilips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -200,12 +200,12 @@ cdr_t cdr_philips_dumb = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_oldphilips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -241,12 +241,12 @@ cdr_t cdr_philips_cdd521 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_philips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -283,12 +283,12 @@ cdr_t cdr_philips_cdd522 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_philips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -324,12 +324,12 @@ cdr_t cdr_tyuden_ew50 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_philips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -365,12 +365,12 @@ cdr_t cdr_kodak_pcd600 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_oldphilips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -406,12 +406,12 @@ cdr_t cdr_plasmon_rf4100 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_plasmon, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -447,13 +447,13 @@ cdr_t cdr_pioneer_dw_s114x = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + /* open_track_yamaha,*/ + /*???*/ open_track_oldphilips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -490,12 +490,12 @@ cdr_t cdr_yamaha_cdr100 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_yamaha, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -532,12 +532,12 @@ cdr_t cdr_ricoh_ro1060 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_philips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -574,12 +574,12 @@ cdr_t cdr_ricoh_ro1420 = { + next_wr_addr_philips, + reserve_track_philips, + scsi_cdr_write_philips, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ + no_sendcue, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_philips, + close_track_philips, +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, + cmd_dummy, + cmd_dummy, /* abort */ + read_session_offset_philips, +@@ -835,11 +835,11 @@ philips_getdisktype(SCSI *usalp, cdr_t * + long dummy; + long lilen; + long lolen; +- msf_t msf; ++ wodim_msf_t msf; + int audio = -1; + + usalp->silent++; +- dummy = (*dp->cdr_next_wr_address)(usalp, (track_t *)0, &lilen); ++ dummy = (*dp->cdr_next_wr_address)(usalp, (wodim_track_t *)0, &lilen); + usalp->silent--; + + /* +@@ -972,7 +972,7 @@ first_writable_addr_philips(SCSI *usalp, + } + + static int +-next_wr_addr_philips(SCSI *usalp, track_t *trackp, long *ap) ++next_wr_addr_philips(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + + /* if (first_writable_addr_philips(usalp, ap, 0, 0, 0, 1) < 0)*/ +@@ -1054,7 +1054,7 @@ write_track_philips(SCSI *usalp, + } + + static int +-open_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (select_secsize(usalp, trackp->secsize) < 0) + return (-1); +@@ -1069,7 +1069,7 @@ open_track_philips(SCSI *usalp, cdr_t *d + } + + static int +-open_track_plasmon(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_plasmon(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (select_secsize(usalp, trackp->secsize) < 0) + return (-1); +@@ -1081,7 +1081,7 @@ open_track_plasmon(SCSI *usalp, cdr_t *d + } + + static int +-open_track_oldphilips(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_oldphilips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (write_track_philips(usalp, 0, trackp->sectype) < 0) + return (-1); +@@ -1090,7 +1090,7 @@ open_track_oldphilips(SCSI *usalp, cdr_t + } + + static int +-open_track_yamaha(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_yamaha(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (select_secsize(usalp, trackp->secsize) < 0) + return (-1); +@@ -1102,12 +1102,12 @@ open_track_yamaha(SCSI *usalp, cdr_t *dp + } + + static int +-close_track_philips(SCSI *usalp, cdr_t *dp, track_t *trackp) ++close_track_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + return (scsi_flush_cache(usalp, FALSE)); + } + +-static int fixation_philips(SCSI *usalp, cdr_t *dp, track_t *trackp) ++static int fixation_philips(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + register struct usal_cmd *scmd = usalp->scmd; + +diff -up cdiopara/wodim/drv_simul.c.wrk cdiopara/wodim/drv_simul.c +--- cdiopara/wodim/drv_simul.c.wrk 2013-06-25 18:37:30.686683498 +0200 ++++ cdiopara/wodim/drv_simul.c 2013-06-25 18:38:09.542094684 +0200 +@@ -66,13 +66,13 @@ static cdr_t *identify_simul(SCSI *usalp + static int init_simul(SCSI *usalp, cdr_t *dp); + static int getdisktype_simul(SCSI *usalp, cdr_t *dp); + static int speed_select_simul(SCSI *usalp, cdr_t *dp, int *speedp); +-static int next_wr_addr_simul(SCSI *usalp, track_t *trackp, long *ap); ++static int next_wr_addr_simul(SCSI *usalp, wodim_track_t *trackp, long *ap); + static int cdr_write_simul(SCSI *usalp, caddr_t bp, long sectaddr, long size, + int blocks, BOOL islast); +-static int open_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int close_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_session_simul(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int fixate_simul(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int open_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int close_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_session_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int fixate_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static void tv_sub(struct timeval *tvp1, struct timeval *tvp2); + + static int simul_load(SCSI *usalp, cdr_t *dp) +@@ -108,9 +108,9 @@ cdr_t cdr_cdr_simul = { + next_wr_addr_simul, + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + cdr_write_simul, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* send_cue */ +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* send_cue */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_simul, + close_track_simul, + open_session_simul, +@@ -149,9 +149,9 @@ cdr_t cdr_dvd_simul = { + next_wr_addr_simul, + (int(*)(SCSI *, Ulong))cmd_ill, /* reserve_track */ + cdr_write_simul, +- (int(*)(track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ +- (int(*)(SCSI *usalp, cdr_t *, track_t *))cmd_dummy, /* send_cue */ +- (int(*)(SCSI *, cdr_t *, track_t *))cmd_dummy, /* leadin */ ++ (int(*)(wodim_track_t *, void *, BOOL))cmd_dummy, /* gen_cue */ ++ (int(*)(SCSI *usalp, cdr_t *, wodim_track_t *))cmd_dummy, /* send_cue */ ++ (int(*)(SCSI *, cdr_t *, wodim_track_t *))cmd_dummy, /* leadin */ + open_track_simul, + close_track_simul, + open_session_simul, +@@ -249,7 +249,7 @@ speed_select_simul(SCSI *usalp, cdr_t *d + } + + static int +-next_wr_addr_simul(SCSI *usalp, track_t *trackp, long *ap) ++next_wr_addr_simul(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + /* + * This will most likely not 100% correct for TAO CDs +@@ -345,14 +345,14 @@ cdr_write_simul(SCSI *usalp, caddr_t bp + } + + static int +-open_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + sleep_min = 999 * 1000000; + return (0); + } + + static int +-close_track_simul(SCSI *usalp, cdr_t *dp, track_t *trackp) ++close_track_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (lverbose) { + printf("Remaining reserve time in drive buffer: %d.%3.3d ms\n", +@@ -368,14 +368,14 @@ close_track_simul(SCSI *usalp, cdr_t *dp + } + + static int +-open_session_simul(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_session_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + simul_nwa = 0L; + return (0); + } + + static int +-fixate_simul(SCSI *usalp, cdr_t *dp, track_t *trackp) ++fixate_simul(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + return (0); + } +diff -up cdiopara/wodim/drv_sony.c.wrk cdiopara/wodim/drv_sony.c +--- cdiopara/wodim/drv_sony.c.wrk 2013-06-25 18:42:41.039821118 +0200 ++++ cdiopara/wodim/drv_sony.c 2013-06-25 18:43:35.479307474 +0200 +@@ -213,12 +213,12 @@ static int write_continue_sony(SCSI *usa + long size, int blocks, BOOL islast); + static int discontinue_sony(SCSI *usalp); + static int write_track_sony(SCSI *usalp, long track, int sectype); +-static int close_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int close_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int flush_sony(SCSI *usalp, int track); +-static int finalize_sony(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int finalize_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int recover_sony(SCSI *usalp, cdr_t *dp, int track); + static int set_wr_parameter_sony(SCSI *usalp, caddr_t bp, int size); +-static int next_wr_addr_sony(SCSI *usalp, track_t *trackp, long *ap); ++static int next_wr_addr_sony(SCSI *usalp, wodim_track_t *trackp, long *ap); + static int reserve_track_sony(SCSI *usalp, unsigned long len); + static int init_sony(SCSI *usalp, cdr_t *dp); + static int getdisktype_sony(SCSI *usalp, cdr_t *dp); +@@ -229,14 +229,14 @@ static int next_writable_address_sony(SC + int sectype, int tracktype); + static int new_track_sony(SCSI *usalp, int track, int sectype, + int tracktype); +-static int open_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int open_session_sony(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int open_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int open_session_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int abort_session_sony(SCSI *usalp, cdr_t *dp); + static int get_page22_sony(SCSI *usalp, char *mode); +-static int gen_cue_sony(track_t *trackp, void *vcuep, BOOL needgap); +-static void fillcue(struct sony_cue *cp, int ca, int tno, int idx, int dataform, int scms, msf_t *mp); +-static int send_cue_sony(SCSI *usalp, cdr_t *dp, track_t *trackp); +-static int write_leadin_sony(SCSI *usalp, cdr_t *dp, track_t *trackp); ++static int gen_cue_sony(wodim_track_t *trackp, void *vcuep, BOOL needgap); ++static void fillcue(struct sony_cue *cp, int ca, int tno, int idx, int dataform, int scms, wodim_msf_t *mp); ++static int send_cue_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++static int write_leadin_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + static int sony_attach(SCSI *usalp, cdr_t *dp); + #ifdef SONY_DEBUG + static void print_sony_mp22(struct sony_924_mode_page_22 *xp, int len); +@@ -383,7 +383,7 @@ write_track_sony(SCSI *usalp, + + /* XXX NOCH NICHT FERTIG */ + static int +-close_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp) ++close_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + register struct usal_cmd *scmd = usalp->scmd; + int track = 0; +@@ -420,7 +420,7 @@ close_track_sony(SCSI *usalp, cdr_t *dp, + } + + static int +-finalize_sony(SCSI *usalp, cdr_t *dp, track_t *trackp) ++finalize_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + register struct usal_cmd *scmd = usalp->scmd; + int dummy = track_base(trackp)->tracktype & TOCF_DUMMY; +@@ -517,7 +517,7 @@ set_wr_parameter_sony(SCSI *usalp, caddr + } + + static int +-next_wr_addr_sony(SCSI *usalp, track_t *trackp, long *ap) ++next_wr_addr_sony(SCSI *usalp, wodim_track_t *trackp, long *ap) + { + if (next_writable_address_sony(usalp, ap, 0, 0, 0) < 0) + return (-1); +@@ -559,7 +559,7 @@ getdisktype_sony(SCSI *usalp, cdr_t *dp) + dstat_t *dsp = dp->cdr_dstat; + long dummy; + long lst; +- msf_t msf; ++ wodim_msf_t msf; + + char mode[256]; + struct scsi_mode_page_header *mp; +@@ -626,7 +626,7 @@ getdisktype_sony(SCSI *usalp, cdr_t *dp) + static void + di_to_dstat_sony(struct sony_924_mode_page_22 *dip, dstat_t *dsp) + { +- msf_t msf; ++ wodim_msf_t msf; + + dsp->ds_diskid = a_to_u_4_byte(dip->disk_id_code); + #ifdef PROTOTYPES +@@ -841,7 +841,7 @@ new_track_sony(SCSI *usalp, int track, i + } + + static int +-open_track_sony(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_track_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + if (!is_tao(trackp) && !is_packet(trackp)) { + if (trackp->pregapsize > 0 && (trackp->flags & TI_PREGAP) == 0) { +@@ -874,7 +874,7 @@ open_track_sony(SCSI *usalp, cdr_t *dp, + } + + static int +-open_session_sony(SCSI *usalp, cdr_t *dp, track_t *trackp) ++open_session_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + struct scsi_mode_page_header *mp; + char mode[256]; +@@ -994,7 +994,7 @@ static Uchar db2df[] = { + }; + + static int +-gen_cue_sony(track_t *trackp, void *vcuep, BOOL needgap) ++gen_cue_sony(wodim_track_t *trackp, void *vcuep, BOOL needgap) + { + int tracks = trackp->tracks; + int i; +@@ -1004,7 +1004,7 @@ gen_cue_sony(track_t *trackp, void *vcue + int ncue = 0; + int icue = 0; + int pgsize; +- msf_t m; ++ wodim_msf_t m; + int ctl; + int df; + int scms; +@@ -1110,7 +1110,7 @@ fillcue(struct sony_cue *cp /* The t + int idx /* Index for this entry */, + int dataform /* Data format for this entry */, + int scms /* Serial copy management */, +- msf_t *mp /* MSF value for this entry */) ++ wodim_msf_t *mp /* MSF value for this entry */) + { + cp->cs_ctladr = ca; + if (tno <= 99) +@@ -1126,7 +1126,7 @@ fillcue(struct sony_cue *cp /* The t + } + + static int +-send_cue_sony(SCSI *usalp, cdr_t *dp, track_t *trackp) ++send_cue_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + struct sony_cue *cp; + int ncue; +@@ -1169,7 +1169,7 @@ send_cue_sony(SCSI *usalp, cdr_t *dp, tr + } + + static int +-write_leadin_sony(SCSI *usalp, cdr_t *dp, track_t *trackp) ++write_leadin_sony(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + Uint i; + long startsec = 0L; +diff -up cdiopara/wodim/fifo.c.wrk cdiopara/wodim/fifo.c +--- cdiopara/wodim/fifo.c.wrk 2013-06-25 18:47:09.024350983 +0200 ++++ cdiopara/wodim/fifo.c 2013-06-25 18:47:35.540614992 +0200 +@@ -194,15 +194,15 @@ static char *mkbeosshm(int size); + static void beosshm_child(void); + #endif + +-BOOL init_faio(track_t *trackp, int); ++BOOL init_faio(wodim_track_t *trackp, int); + BOOL await_faio(void); + void kill_faio(void); + int wait_faio(void); +-static void faio_reader(track_t *trackp); +-static void faio_read_track(track_t *trackp); ++static void faio_reader(wodim_track_t *trackp); ++static void faio_read_track(wodim_track_t *trackp); + static void faio_wait_on_buffer(faio_t *f, fowner_t s, unsigned long delay, + unsigned long max_wait); +-static int faio_read_segment(int fd, faio_t *f, track_t *track, long secno, ++static int faio_read_segment(int fd, faio_t *f, wodim_track_t *track, long secno, + int len); + static faio_t *faio_ref(int n); + int faio_read_buf(int f, char *bp, int size); +@@ -425,7 +425,7 @@ static BOOL faio_didwait; + + + BOOL +-init_faio(track_t *trackp, int bufsize) ++init_faio(wodim_track_t *trackp, int bufsize) + { + int n; + faio_t *f; +@@ -582,7 +582,7 @@ wait_faio() + } + + static void +-faio_reader(track_t *trackp) ++faio_reader(wodim_track_t *trackp) + { + /* This function should not return, but _exit. */ + Uint trackno; +@@ -623,7 +623,7 @@ faio_ref(int n) + + + static void +-faio_read_track(track_t *trackp) ++faio_read_track(wodim_track_t *trackp) + { + int fd = -1; + int bytespt = trackp->secsize * trackp->secspt; +@@ -704,7 +704,7 @@ faio_wait_on_buffer(faio_t *f, fowner_t + } + + static int +-faio_read_segment(int fd, faio_t *f, track_t *trackp, long secno, int len) ++faio_read_segment(int fd, faio_t *f, wodim_track_t *trackp, long secno, int len) + { + int l; + +@@ -821,7 +821,7 @@ fifo_percent(BOOL addone) + #include "wodim.h" + + void init_fifo(long); +-BOOL init_faio(track_t *track, int); ++BOOL init_faio(wodim_track_t *track, int); + BOOL await_faio(void); + void kill_faio(void); + int wait_faio(void); +@@ -836,7 +836,7 @@ void init_fifo(long fs) + errmsgno(EX_BAD, "Fifo not supported.\n"); + } + +-BOOL init_faio(track_t *track, ++BOOL init_faio(wodim_track_t *track, + int bufsize /* The size of a single transfer buffer */) + { + return (FALSE); +diff -up cdiopara/wodim/movesect.c.wrk cdiopara/wodim/movesect.c +--- cdiopara/wodim/movesect.c.wrk 2013-06-25 15:42:48.986166461 +0200 ++++ cdiopara/wodim/movesect.c 2013-06-25 15:43:07.045269496 +0200 +@@ -37,7 +37,7 @@ + #include "wodim.h" + #include "movesect.h" + +-void scatter_secs(track_t *trackp, char *bp, int nsecs); ++void scatter_secs(wodim_track_t *trackp, char *bp, int nsecs); + + /* + * Scatter input sector size records over buffer to make them +@@ -69,7 +69,7 @@ void scatter_secs(track_t *trackp, char + * Sector_0 must never be moved. + */ + void +-scatter_secs(track_t *trackp, char *bp, int nsecs) ++scatter_secs(wodim_track_t *trackp, char *bp, int nsecs) + { + char *from; + char *to; +diff -up cdiopara/wodim/movesect.h.wrk cdiopara/wodim/movesect.h +--- cdiopara/wodim/movesect.h.wrk 2013-06-25 15:42:19.921000633 +0200 ++++ cdiopara/wodim/movesect.h 2013-06-25 15:42:35.156087555 +0200 +@@ -40,6 +40,6 @@ + #define fill2048(p, val) fillbytes(p, 2048, val) + #define fill96(p, val) fillbytes(p, 96, val) + +-extern void scatter_secs(track_t *trackp, char *bp, int nsecs); ++extern void scatter_secs(wodim_track_t *trackp, char *bp, int nsecs); + + #endif +diff -up cdiopara/wodim/sector.c.wrk cdiopara/wodim/sector.c +--- cdiopara/wodim/sector.c.wrk 2013-06-25 18:53:58.999549774 +0200 ++++ cdiopara/wodim/sector.c 2013-06-25 18:54:25.509826416 +0200 +@@ -55,8 +55,8 @@ + #endif + + int encspeed(BOOL be_verbose); +-void encsectors(track_t *trackp, Uchar *bp, int address, int nsecs); +-void scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs); ++void encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs); ++void scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs); + void encodesector(Uchar *sp, int sectype, int address); + void fillsector(Uchar *sp, int sectype, int address); + +@@ -105,7 +105,7 @@ void fillsector(Uchar *sp, int sectype, + int + encspeed(BOOL be_verbose) + { +- track_t t[1]; ++ wodim_track_t t[1]; + Uchar sect[2352]; + int i; + struct timeval tv; +@@ -141,7 +141,7 @@ encspeed(BOOL be_verbose) + * Encode sectors according to trackp->sectype + */ + void +-encsectors(track_t *trackp, Uchar *bp, int address, int nsecs) ++encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs) + { + int sectype = trackp->sectype; + +@@ -169,7 +169,7 @@ encsectors(track_t *trackp, Uchar *bp, i + * Scramble data sectors without coding (needed for clone writing) + */ + void +-scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs) ++scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs) + { + /* + * In Clone write mode, we cannot expect that the sector type +@@ -187,7 +187,7 @@ scrsectors(track_t *trackp, Uchar *bp, i + } + #else + void +-scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs) ++scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs) + { + comerrno(EX_BAD, "Cannot write in clone RAW mode.\n"); + } +diff -up cdiopara/wodim/subchan.c.wrk cdiopara/wodim/subchan.c +--- cdiopara/wodim/subchan.c.wrk 2013-06-27 15:23:49.864130939 +0200 ++++ cdiopara/wodim/subchan.c 2013-06-27 15:24:59.699507721 +0200 +@@ -43,14 +43,14 @@ + #include "wodim.h" + #include "crc16.h" + +-int do_leadin(track_t *trackp); +-int write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp, int leadinstart); +-int write_leadout(SCSI *usalp, cdr_t *dp, track_t *trackp); +-void fillsubch(track_t *trackp, Uchar *sp, int secno, int nsecs); +-void filltpoint(Uchar *sub, int ctrl_adr, int point, msf_t *mp); +-void fillttime(Uchar *sub, msf_t *mp); +-static void filldsubq(Uchar *sub, int ca, int t, int i, msf_t *mrp, +- msf_t *mp); ++int do_leadin(wodim_track_t *trackp); ++int write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, int leadinstart); ++int write_leadout(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); ++void fillsubch(wodim_track_t *trackp, Uchar *sp, int secno, int nsecs); ++void filltpoint(Uchar *sub, int ctrl_adr, int point, wodim_msf_t *mp); ++void fillttime(Uchar *sub, wodim_msf_t *mp); ++static void filldsubq(Uchar *sub, int ca, int t, int i, wodim_msf_t *mrp, ++ wodim_msf_t *mp); + static void fillmcn(Uchar *sub, Uchar *mcn); + static void fillisrc(Uchar *sub, Uchar *isrc); + static int ascii2q(int c); +@@ -58,7 +58,7 @@ static void qpto16(Uchar *sub, Uchar *su + void qpto96(Uchar *sub, Uchar *subq, int dop); + void addrw(Uchar *sub, Uchar *subrwptr); + void qwto16(Uchar *subq, Uchar *subptr); +-void subrecodesecs(track_t *trackp, Uchar *bp, int address, int nsecs); ++void subrecodesecs(wodim_track_t *trackp, Uchar *bp, int address, int nsecs); + static void subinterleave(Uchar *sub); + + /*#define TEST_CRC*/ +@@ -93,10 +93,10 @@ extern int xdebug; + * Prepare master sunchannel data for RAW TOC. + */ + int +-do_leadin(track_t *trackp) ++do_leadin(wodim_track_t *trackp) + { + int tracks = trackp->tracks; +- msf_t m; ++ wodim_msf_t m; + int ctrl; + int i; + int toctype = trackp[0].tracktype & TOC_MASK; +@@ -183,9 +183,9 @@ do_leadin(track_t *trackp) + * subchannel frames for the lead-in. + */ + int +-write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp, int leadinstart) ++write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, int leadinstart) + { +- msf_t m; ++ wodim_msf_t m; + int i; + Uint j; + Uchar *bp = usalp->bufptr; +@@ -198,7 +198,7 @@ write_leadin(SCSI *usalp, cdr_t *dp, tra + int startsec; + long bytes = 0L; + int textoff = 0; +- msf_t msf; ++ wodim_msf_t msf; + + secsize = trackp[0].secsize; + secspt = trackp[0].secspt; +@@ -292,11 +292,11 @@ write_leadin(SCSI *usalp, cdr_t *dp, tra + * Write Track 0xAA (lead-out) + */ + int +-write_leadout(SCSI *usalp, cdr_t *dp, track_t *trackp) ++write_leadout(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int tracks = trackp->tracks; +- msf_t m; +- msf_t mr; ++ wodim_msf_t m; ++ wodim_msf_t mr; + int ctrl; + int i; + int j; +@@ -313,7 +313,7 @@ write_leadout(SCSI *usalp, cdr_t *dp, tr + int leadoutstart; + Uchar sub[12]; + BOOL p; +- msf_t msf; ++ wodim_msf_t msf; + + fillbytes(sub, 12, '\0'); + +@@ -397,13 +397,13 @@ write_leadout(SCSI *usalp, cdr_t *dp, tr + * the data part of a CD (bewteen lead-in and lead-out). + */ + void +-fillsubch(track_t *trackp, ++fillsubch(wodim_track_t *trackp, + Uchar *sp /* Sector data pointer */, + int secno /* Starting sector # */, + int nsecs /* # of sectors to fill */) + { +- msf_t m; +- msf_t mr; ++ wodim_msf_t m; ++ wodim_msf_t mr; + int ctrl; + int i; + int rsecno; +@@ -563,7 +563,7 @@ static Uchar lastindex = 255; + * Ax Werte einfüllen. + */ + void +-filltpoint(Uchar *sub, int ctrl_adr, int point, msf_t *mp) ++filltpoint(Uchar *sub, int ctrl_adr, int point, wodim_msf_t *mp) + { + sub[0] = ctrl_adr; + sub[2] = point; +@@ -577,7 +577,7 @@ filltpoint(Uchar *sub, int ctrl_adr, int + * Aktuelle Zeit in TOC Sub-Q einfüllen. + */ + void +-fillttime(Uchar *sub, msf_t *mp) ++fillttime(Uchar *sub, wodim_msf_t *mp) + { + sub[3] = to_bcd(mp->msf_min); + sub[4] = to_bcd(mp->msf_sec); +@@ -588,7 +588,7 @@ fillttime(Uchar *sub, msf_t *mp) + * Q-Sub in Datenbereich füllen. + */ + static void +-filldsubq(Uchar *sub, int ca, int t, int i, msf_t *mrp, msf_t *mp) ++filldsubq(Uchar *sub, int ca, int t, int i, wodim_msf_t *mrp, wodim_msf_t *mp) + { + sub[0] = ca; + sub[1] = to_bcd(t); +@@ -856,7 +856,7 @@ qwto16(Uchar *subq, Uchar *subptr) + * Recode subchannels of sectors from 2352 + 96 bytes to 2352 + 16 bytes + */ + void +-subrecodesecs(track_t *trackp, Uchar *bp, int address, int nsecs) ++subrecodesecs(wodim_track_t *trackp, Uchar *bp, int address, int nsecs) + { + bp += 2352; + while (--nsecs >= 0) { +@@ -867,7 +867,7 @@ subrecodesecs(track_t *trackp, Uchar *bp + + #ifndef HAVE_LIB_EDC_ECC + void +-encsectors(track_t *trackp, Uchar *bp, int address, int nsecs) ++encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs) + { + int sectype = trackp->sectype; + +@@ -878,7 +878,7 @@ encsectors(track_t *trackp, Uchar *bp, i + } + + void +-scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs) ++scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs) + { + comerrno(EX_BAD, "Cannot write in clone RAW mode.\n"); + } +diff -up cdiopara/wodim/wm_packet.c.wrk cdiopara/wodim/wm_packet.c +--- cdiopara/wodim/wm_packet.c.wrk 2013-06-27 15:26:58.973141891 +0200 ++++ cdiopara/wodim/wm_packet.c 2013-06-27 15:27:22.066263842 +0200 +@@ -51,10 +51,10 @@ extern int lverbose; + + extern char *buf; /* The transfer buffer */ + +-int write_packet_data(SCSI *usalp, cdr_t *dp, track_t *trackp); ++int write_packet_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + + int +-write_packet_data(SCSI *usalp, cdr_t *dp, track_t *trackp) ++write_packet_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int track = trackp->trackno; + int f = -1; +diff -up cdiopara/wodim/wm_session.c.wrk cdiopara/wodim/wm_session.c +--- cdiopara/wodim/wm_session.c.wrk 2013-06-27 15:29:40.932998275 +0200 ++++ cdiopara/wodim/wm_session.c 2013-06-27 15:30:03.907119952 +0200 +@@ -48,4 +48,4 @@ extern int lverbose; + + extern char *buf; /* The transfer buffer */ + +-int write_session_data(SCSI *usalp, cdr_t *dp, track_t *trackp); ++int write_session_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); +diff -up cdiopara/wodim/wm_track.c.wrk cdiopara/wodim/wm_track.c +--- cdiopara/wodim/wm_track.c.wrk 2013-06-27 15:28:45.701705951 +0200 ++++ cdiopara/wodim/wm_track.c 2013-06-27 15:29:29.673938661 +0200 +@@ -47,4 +47,4 @@ extern int lverbose; + + extern char *buf; /* The transfer buffer */ + +-int write_track_data(cdr_t *dp, int track, track_t *trackp); ++int write_track_data(cdr_t *dp, int track, wodim_track_t *trackp); +diff -up cdiopara/wodim/wodim.c.wrk cdiopara/wodim/wodim.c +--- cdiopara/wodim/wodim.c.wrk 2013-06-25 16:38:32.153811969 +0200 ++++ cdiopara/wodim/wodim.c 2013-06-25 16:30:08.636892373 +0200 +@@ -205,31 +205,31 @@ static void intfifo(int sig); + static void exscsi(int excode, void *arg); + static void excdr(int excode, void *arg); + int read_buf(int f, char *bp, int size); +-int fill_buf(int f, track_t *trackp, long secno, char *bp, int size); +-int get_buf(int f, track_t *trackp, long secno, char **bpp, int size); ++int fill_buf(int f, wodim_track_t *trackp, long secno, char *bp, int size); ++int get_buf(int f, wodim_track_t *trackp, long secno, char **bpp, int size); + int write_secs(SCSI *usalp, cdr_t *dp, char *bp, long startsec, int bytespt, + int secspt, BOOL islast); +-static int write_track_data(SCSI *usalp, cdr_t *, track_t *); +-int pad_track(SCSI *usalp, cdr_t *dp, track_t *trackp, long startsec, ++static int write_track_data(SCSI *usalp, cdr_t *, wodim_track_t *); ++int pad_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, long startsec, + Llong amt, BOOL dolast, Llong *bytesp); +-int write_buf(SCSI *usalp, cdr_t *dp, track_t *trackp, char *bp, ++int write_buf(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, char *bp, + long startsec, Llong amt, int secsize, BOOL dolast, + Llong *bytesp); +-static void printdata(int, track_t *); +-static void printaudio(int, track_t *); +-static void checkfile(int, track_t *); +-static int checkfiles(int, track_t *); +-static void setleadinout(int, track_t *); +-static void setpregaps(int, track_t *); +-static long checktsize(int, track_t *); +-static void opentracks(track_t *); +-static void checksize(track_t *); ++static void printdata(int, wodim_track_t *); ++static void printaudio(int, wodim_track_t *); ++static void checkfile(int, wodim_track_t *); ++static int checkfiles(int, wodim_track_t *); ++static void setleadinout(int, wodim_track_t *); ++static void setpregaps(int, wodim_track_t *); ++static long checktsize(int, wodim_track_t *); ++static void opentracks(wodim_track_t *); ++static void checksize(wodim_track_t *); + static BOOL checkdsize(SCSI *usalp, cdr_t *dp, long tsize, int flags); + static void raise_fdlim(void); + static void raise_memlock(void); +-static int gargs(int, char **, int *, track_t *, char **, int *, cdr_t **, ++static int gargs(int, char **, int *, wodim_track_t *, char **, int *, cdr_t **, + int *, long *, int *, int *); +-static void set_trsizes(cdr_t *, int, track_t *); ++static void set_trsizes(cdr_t *, int, wodim_track_t *); + void load_media(SCSI *usalp, cdr_t *, BOOL); + void unload_media(SCSI *usalp, cdr_t *, int); + void reload_media(SCSI *usalp, cdr_t *); +@@ -287,7 +287,7 @@ int main(int argc, char *argv[]) + int tracks = 0; + int trackno; + long tsize; +- track_t track[MAX_TRACK+2]; /* Max tracks + track 0 + track AA */ ++ wodim_track_t track[MAX_TRACK+2]; /* Max tracks + track 0 + track AA */ + cdr_t *dp = (cdr_t *)0; + long startsec = 0L; + int errs = 0; +@@ -1860,7 +1860,7 @@ read_buf(int f, char *bp, int size) + } + + int +-fill_buf(int f, track_t *trackp, long secno, char *bp, int size) ++fill_buf(int f, wodim_track_t *trackp, long secno, char *bp, int size) + { + int amount = 0; + int nsecs; +@@ -1936,7 +1936,7 @@ fill_buf(int f, track_t *trackp, long se + } + + int +-get_buf(int f, track_t *trackp, long secno, char **bpp, int size) ++get_buf(int f, wodim_track_t *trackp, long secno, char **bpp, int size) + { + if (fs > 0) { + /* return (faio_read_buf(f, *bpp, size));*/ +@@ -1987,7 +1987,7 @@ again: + } + + static int +-write_track_data(SCSI *usalp, cdr_t *dp, track_t *trackp) ++write_track_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp) + { + int track = trackp->trackno; + int f = -1; +@@ -2270,7 +2270,7 @@ int oper = -1; + } + + int +-pad_track(SCSI *usalp, cdr_t *dp, track_t *trackp, long startsec, Llong amt, ++pad_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, long startsec, Llong amt, + BOOL dolast, Llong *bytesp) + { + int track = trackp->trackno; +@@ -2404,7 +2404,7 @@ int oper = -1; + + #ifdef USE_WRITE_BUF + int +-write_buf(SCSI *usalp, cdr_t *dp, track_t *trackp, char *bp, long startsec, ++write_buf(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, char *bp, long startsec, + Llong amt, int secsize, BOOL dolast, Llong *bytesp) + { + int track = trackp->trackno; +@@ -2467,7 +2467,7 @@ write_buf(SCSI *usalp, cdr_t *dp, track_ + #endif /* USE_WRITE_BUF */ + + static void +-printdata(int track, track_t *trackp) ++printdata(int track, wodim_track_t *trackp) + { + if (trackp->itracksize >= 0) { + printf("Track %02d: data %4lld MB ", +@@ -2494,7 +2494,7 @@ printdata(int track, track_t *trackp) + } + + static void +-printaudio(int track, track_t *trackp) ++printaudio(int track, wodim_track_t *trackp) + { + if (trackp->itracksize >= 0) { + printf("Track %02d: audio %4lld MB (%02d:%02d.%02d) %spreemp%s%s", +@@ -2542,7 +2542,7 @@ printaudio(int track, track_t *trackp) + } + + static void +-checkfile(int track, track_t *trackp) ++checkfile(int track, wodim_track_t *trackp) + { + if (trackp->itracksize > 0 && + is_audio(trackp) && +@@ -2571,7 +2571,7 @@ checkfile(int track, track_t *trackp) + } + + static int +-checkfiles(int tracks, track_t *trackp) ++checkfiles(int tracks, wodim_track_t *trackp) + { + int i; + int isaudio = 1; +@@ -2596,7 +2596,7 @@ checkfiles(int tracks, track_t *trackp) + } + + static void +-setleadinout(int tracks, track_t *trackp) ++setleadinout(int tracks, wodim_track_t *trackp) + { + /* + * Set some values for track 0 (the lead-in) +@@ -2631,12 +2631,12 @@ setleadinout(int tracks, track_t *trackp + } + + static void +-setpregaps(int tracks, track_t *trackp) ++setpregaps(int tracks, wodim_track_t *trackp) + { + int i; + int sectype; + long pregapsize; +- track_t *tp; ++ wodim_track_t *tp; + + sectype = trackp[1].sectype; + sectype &= ST_MASK; +@@ -2674,13 +2674,13 @@ setpregaps(int tracks, track_t *trackp) + * Check total size of the medium + */ + static long +-checktsize(int tracks, track_t *trackp) ++checktsize(int tracks, wodim_track_t *trackp) + { + int i; + Llong curr; + Llong total = -150; /* CD track #1 pregap compensation */ + Ullong btotal; +- track_t *tp; ++ wodim_track_t *tp; + + if (trackp->flags & TI_DVD) + total = 0; +@@ -2751,9 +2751,9 @@ checktsize(int tracks, track_t *trackp) + } + + static void +-opentracks(track_t *trackp) ++opentracks(wodim_track_t *trackp) + { +- track_t *tp; ++ wodim_track_t *tp; + int i; + int tracks = trackp[0].tracks; + +@@ -2825,7 +2825,7 @@ opentracks(track_t *trackp) + } + + static void +-checksize(track_t *trackp) ++checksize(wodim_track_t *trackp) + { + struct stat st; + Llong lsize; +@@ -2890,7 +2890,7 @@ checkdsize(SCSI *usalp, cdr_t *dp, long + int profile; + + usalp->silent++; +- (*dp->cdr_next_wr_address)(usalp, (track_t *)0, &startsec); ++ (*dp->cdr_next_wr_address)(usalp, (wodim_track_t *)0, &startsec); + usalp->silent--; + + /* +@@ -3098,7 +3098,7 @@ char *opts = + #define M_RAW 4 /* Raw mode */ + #define M_PACKET 8 /* Packed mode */ + static int +-gargs(int ac, char **av, int *tracksp, track_t *trackp, char **devp, ++gargs(int ac, char **av, int *tracksp, wodim_track_t *trackp, char **devp, + int *timeoutp, cdr_t **dpp, int *speedp, long *flagsp, int *blankp, + int *formatp) + { +@@ -3809,7 +3809,7 @@ gargs(int ac, char **av, int *tracksp, t + } + + static void +-set_trsizes(cdr_t *dp, int tracks, track_t *trackp) ++set_trsizes(cdr_t *dp, int tracks, wodim_track_t *trackp) + { + int i; + int secsize; +@@ -4110,7 +4110,7 @@ print_msinfo(SCSI *usalp, cdr_t *dp) + if (lverbose) + printf("session offset: %ld\n", off); + +- if (dp->cdr_next_wr_address(usalp, (track_t *)0, &fa) < 0) { ++ if (dp->cdr_next_wr_address(usalp, (wodim_track_t *)0, &fa) < 0) { + errmsgno(EX_BAD, "Cannot read first writable address\n"); + return; + } +diff -up cdiopara/wodim/wodim.h.wrk cdiopara/wodim/wodim.h +--- cdiopara/wodim/wodim.h.wrk 2013-06-25 15:07:16.550727303 +0200 ++++ cdiopara/wodim/wodim.h 2013-06-25 16:57:07.110050011 +0200 +@@ -186,7 +186,9 @@ typedef struct track { + long *tindex; /* Track index descriptor */ + char *isrc; /* ISRC code for this track / disk MCN */ + void *text; /* Opaque CD-Text data (txtptr_t *) */ +-} track_t; ++} wodim_track_t; ++ ++#define track_t taka_neexistuje + + #define track_base(tp) ((tp) - (tp)->track) + +@@ -515,8 +517,9 @@ typedef struct msf { + char msf_min; + char msf_sec; + char msf_frame; +-} msf_t; ++} wodim_msf_t; + ++#define msf_t nahradzuj_msf + /* + * Definitions for read TOC/PMA/ATIP command + */ +@@ -673,7 +676,7 @@ struct disk_status { + * cdr_open_session() + * cdr_fixate() + * +- * Called with (track_t *) 0 or pointer to current track: ++ * Called with (wodim_track_t *) 0 or pointer to current track: + * cdr_next_wr_address() + * + * Called with pointer to current track: +@@ -751,23 +754,23 @@ struct cdr_cmd { + /* set sector size */ + int (*cdr_set_secsize)(SCSI *usalp, int secsize); + /* get next writable addr. */ +- int (*cdr_next_wr_address)(SCSI *usalp, track_t *trackp, long *ap); ++ int (*cdr_next_wr_address)(SCSI *usalp, wodim_track_t *trackp, long *ap); + /* reserve track for future use */ + int (*cdr_reserve_track)(SCSI *usalp, Ulong len); + int (*cdr_write_trackdata)(SCSI *usalp, caddr_t buf, long daddr, long bytecnt, + int seccnt, BOOL islast); + /* generate cue sheet */ +- int (*cdr_gen_cue)(track_t *trackp, void *cuep, BOOL needgap); ++ int (*cdr_gen_cue)(wodim_track_t *trackp, void *cuep, BOOL needgap); + /* send cue sheet */ +- int (*cdr_send_cue)(SCSI *usalp, cdr_t *, track_t *trackp); ++ int (*cdr_send_cue)(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + /* write leadin */ +- int (*cdr_write_leadin)(SCSI *usalp, cdr_t *, track_t *trackp); ++ int (*cdr_write_leadin)(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + /* open new track */ +- int (*cdr_open_track)(SCSI *usalp, cdr_t *, track_t *trackp); ++ int (*cdr_open_track)(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + /* close written track */ +- int (*cdr_close_track)(SCSI *usalp, cdr_t *, track_t *trackp); ++ int (*cdr_close_track)(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + /* open new session */ +- int (*cdr_open_session)(SCSI *usalp, cdr_t *, track_t *trackp); ++ int (*cdr_open_session)(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + /* really needed ??? */ + int (*cdr_close_session)(SCSI *usalp, cdr_t *); + /* abort current write */ +@@ -775,7 +778,7 @@ struct cdr_cmd { + /* read session offset*/ + int (*cdr_session_offset)(SCSI *usalp, long *soff); + /* write toc on disk */ +- int (*cdr_fixate)(SCSI *usalp, cdr_t *, track_t *trackp); ++ int (*cdr_fixate)(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + /* final statistics printing*/ + int (*cdr_stats)(SCSI *usalp, cdr_t *); + /* blank something */ +@@ -849,12 +852,12 @@ struct cdr_cmd { + * cdrecord.c + */ + extern int read_buf(int f, char *bp, int size); +-extern int fill_buf(int f, track_t *trackp, long secno, char *bp, int size); +-extern int get_buf(int f, track_t *trackp, long secno, char **bpp, int size); ++extern int fill_buf(int f, wodim_track_t *trackp, long secno, char *bp, int size); ++extern int get_buf(int f, wodim_track_t *trackp, long secno, char **bpp, int size); + #ifdef _SCG_SCSITRANSP_H + extern int write_secs(SCSI *usalp, cdr_t *dp, char *bp, long startsec, + int bytespt, int secspt, BOOL islast); +-extern int pad_track(SCSI *usalp, cdr_t *dp, track_t *trackp, ++extern int pad_track(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, + long startsec, Llong amt, + BOOL dolast, Llong *bytesp); + extern void load_media(SCSI *usalp, cdr_t *, BOOL); +@@ -870,15 +873,15 @@ extern int getnum(char *arg, long *valp) + extern int from_bcd(int b); + extern int to_bcd(int i); + extern long msf_to_lba(int m, int s, int f, BOOL force_positive); +-extern BOOL lba_to_msf(long lba, msf_t *mp); +-extern void sec_to_msf(long sec, msf_t *mp); ++extern BOOL lba_to_msf(long lba, wodim_msf_t *mp); ++extern void sec_to_msf(long sec, wodim_msf_t *mp); + extern void print_min_atip(long li, long lo); + + /* + * fifo.c + */ + extern void init_fifo(long); +-extern BOOL init_faio(track_t *track, int); ++extern BOOL init_faio(wodim_track_t *track, int); + extern BOOL await_faio(void); + extern void kill_faio(void); + extern int wait_faio(void); +@@ -891,21 +894,21 @@ extern int fifo_percent(BOOL addone); + * wm_session.c + */ + #ifdef _SCG_SCSITRANSP_H +-extern int write_session_data(SCSI *usalp, cdr_t *dp, track_t *trackp); ++extern int write_session_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + #endif + + /* + * wm_track.c + */ + #ifdef _SCG_SCSITRANSP_H +-/*extern int write_track_data __PR((SCSI *usalp, cdr_t *dp, track_t *trackp));*/ ++/*extern int write_track_data __PR((SCSI *usalp, cdr_t *dp, wodim_track_t *trackp));*/ + #endif + + /* + * wm_packet.c + */ + #ifdef _SCG_SCSITRANSP_H +-extern int write_packet_data(SCSI *usalp, cdr_t *dp, track_t *trackp); ++extern int write_packet_data(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + #endif + + /* +@@ -1103,7 +1106,7 @@ int format_dummy(SCSI *usalp, cdr_t *, i + extern int drive_getdisktype(SCSI *usalp, cdr_t *dp); + extern int cmd_ill(SCSI *usalp); + extern int cmd_dummy(SCSI *usalp, cdr_t *); +-extern int no_sendcue(SCSI *usalp, cdr_t *, track_t *trackp); ++extern int no_sendcue(SCSI *usalp, cdr_t *, wodim_track_t *trackp); + extern int buf_dummy(SCSI *usalp, long *sp, long *fp); + #endif + extern BOOL set_cdrcmds(char *name, cdr_t **dpp); +@@ -1137,68 +1140,68 @@ extern off_t wavsize(int f); + /* + * auinfo.c + */ +-extern BOOL auinfosize(char *name, track_t *trackp); +-extern void auinfo(char *name, int track, track_t *trackp); ++extern BOOL auinfosize(char *name, wodim_track_t *trackp); ++extern void auinfo(char *name, int track, wodim_track_t *trackp); + #ifdef CDTEXT_H +-extern textptr_t *gettextptr(int track, track_t *trackp); ++extern textptr_t *gettextptr(int track, wodim_track_t *trackp); + #endif +-extern void setmcn(char *mcn, track_t *trackp); +-extern void setisrc(char *isrc, track_t *trackp); +-extern void setindex(char *tindex, track_t *trackp); ++extern void setmcn(char *mcn, wodim_track_t *trackp); ++extern void setisrc(char *isrc, wodim_track_t *trackp); ++extern void setindex(char *tindex, wodim_track_t *trackp); + + /* + * diskid.c + */ +-extern void pr_manufacturer(msf_t *mp, BOOL rw, BOOL audio); +-extern int manufacturer_id(msf_t *mp); +-extern long disk_rcap(msf_t *mp, long maxblock, BOOL rw, BOOL audio); ++extern void pr_manufacturer(wodim_msf_t *mp, BOOL rw, BOOL audio); ++extern int manufacturer_id(wodim_msf_t *mp); ++extern long disk_rcap(wodim_msf_t *mp, long maxblock, BOOL rw, BOOL audio); + + /*--------------------------------------------------------------------------*/ + /* Test only */ + /*--------------------------------------------------------------------------*/ + #ifdef _SCSIMMC_H +-/*extern int do_cue __PR((track_t *trackp, struct mmc_cue **cuep));*/ ++/*extern int do_cue __PR((wodim_track_t *trackp, struct mmc_cue **cuep));*/ + #else +-/*extern int do_cue __PR((track_t *trackp, void *cuep));*/ ++/*extern int do_cue __PR((wodim_track_t *trackp, void *cuep));*/ + #endif + + /* + * subchan.c + */ +-extern int do_leadin(track_t *trackp); ++extern int do_leadin(wodim_track_t *trackp); + #ifdef _SCG_SCSITRANSP_H +-extern int write_leadin(SCSI *usalp, cdr_t *dp, track_t *trackp, ++extern int write_leadin(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp, + int leadinstart); +-extern int write_leadout(SCSI *usalp, cdr_t *dp, track_t *trackp); ++extern int write_leadout(SCSI *usalp, cdr_t *dp, wodim_track_t *trackp); + #endif +-extern void fillsubch(track_t *trackp, Uchar *sp, int secno, int nsecs); +-extern void filltpoint(Uchar *sub, int ctrl_adr, int point, msf_t *mp); +-extern void fillttime(Uchar *sub, msf_t *mp); ++extern void fillsubch(wodim_track_t *trackp, Uchar *sp, int secno, int nsecs); ++extern void filltpoint(Uchar *sub, int ctrl_adr, int point, wodim_msf_t *mp); ++extern void fillttime(Uchar *sub, wodim_msf_t *mp); + extern void qpto96(Uchar *sub, Uchar *subq, int dop); + extern void addrw(Uchar *sub, Uchar *subrwptr); + extern void qwto16(Uchar *subq, Uchar *subptr); +-extern void subrecodesecs(track_t *trackp, Uchar *bp, int address, int nsecs); ++extern void subrecodesecs(wodim_track_t *trackp, Uchar *bp, int address, int nsecs); + + /* + * sector.c + */ + extern int encspeed(BOOL be_verbose); +-extern void encsectors(track_t *trackp, Uchar *bp, int address, int nsecs); +-extern void scrsectors(track_t *trackp, Uchar *bp, int address, int nsecs); ++extern void encsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs); ++extern void scrsectors(wodim_track_t *trackp, Uchar *bp, int address, int nsecs); + extern void encodesector(Uchar *sp, int sectype, int address); + extern void fillsector(Uchar *sp, int sectype, int address); + + /* + * clone.c + */ +-extern void clone_toc(track_t *trackp); +-extern void clone_tracktype(track_t *trackp); ++extern void clone_toc(wodim_track_t *trackp); ++extern void clone_tracktype(wodim_track_t *trackp); + + /* + * cdtext.c + */ + extern BOOL checktextfile(char *fname); +-extern void packtext(int tracks, track_t *trackp); ++extern void packtext(int tracks, wodim_track_t *trackp); + #ifdef _SCG_SCSITRANSP_H + extern int write_cdtext(SCSI *usalp, cdr_t *dp, long startsec); + #endif +@@ -1206,7 +1209,7 @@ extern int write_cdtext(SCSI *usalp, cdr + /* + * cue.c + */ +-extern int parsecue(char *cuefname, track_t trackp[]); ++extern int parsecue(char *cuefname, wodim_track_t trackp[]); + #ifdef EOF /* stdio.h has been included */ +-extern void fparsecue(FILE *f, track_t trackp[]); ++extern void fparsecue(FILE *f, wodim_track_t trackp[]); + #endif diff --git a/cdrkit.spec b/cdrkit.spec index 7835031..33a5704 100644 --- a/cdrkit.spec +++ b/cdrkit.spec @@ -1,7 +1,7 @@ Summary: A collection of CD/DVD utilities Name: cdrkit Version: 1.1.11 -Release: 17%{?dist} +Release: 18%{?dist} License: GPLv2 Group: Applications/System URL: http://cdrkit.org/ @@ -23,6 +23,7 @@ Patch14: cdrkit-1.1.11-paranoiacdda.patch Patch15: cdrkit-1.1.11-utf8.patch Patch16: cdrkit-1.1.11-cmakewarn.patch Patch17: cdrkit-1.1.11-memset.patch +Patch18: cdrkit-1.1.11-paranoiacdio.patch BuildRequires: cmake libcap-devel zlib-devel perl file-devel bzip2-devel @@ -84,8 +85,8 @@ Requires: libusal = %{version}-%{release} Requires(preun): %{_sbindir}/alternatives chkconfig coreutils Requires(post): %{_sbindir}/alternatives chkconfig coreutils Requires: vorbis-tools -Requires: cdparanoia -BuildRequires: cdparanoia-devel +Requires: cdparanoia libcdio-paranoia +BuildRequires: cdparanoia-devel libcdio-paranoia-devel %description -n icedax Icedax is a sampling utility for CD-ROM drives that are capable of @@ -132,6 +133,7 @@ SCSI devices. %patch15 -p1 %patch16 -p1 -b .cmakewarn %patch17 -p1 -b .edcspeed +%patch18 -p1 -b .paranoiacdio # we do not want bundled paranoia library rm -rf libparanoia @@ -292,6 +294,10 @@ fi %{_includedir}/usal %changelog +* Wed Jul 17 2013 Frantisek Kluknavsky - 1.1.11-18 +- ported from cdda-paranoia to libcdio-paranoia, modified paranoia-cdda.patch +- fixed bogus date in changelog + * Mon Feb 25 2013 Frantisek Kluknavsky - 1.1.11-17 - modified the memset patch, memsetting the whole array @@ -376,7 +382,7 @@ fi * Fri Jul 10 2009 Adam Jackson 1.1.9-7 - Move dirsplit to a subpackage to isolate the perl dependency. -* Tue Jun 15 2009 Roman Rakus - 1.1.9-6 +* Mon Jun 15 2009 Roman Rakus - 1.1.9-6 - rename functions as they conflict with glibc - Don't push cdda2mp3 because we don't have any mp3 coder Resolves: #505918