From 5e2642af4be7e05bab8066ecbbf02ca89a459a3e Mon Sep 17 00:00:00 2001 From: rocky Date: Wed, 2 Jun 2004 00:43:53 +0000 Subject: [PATCH] Remove some of the bogus assume 1 is first track. Renamings: env -> user_data _obj -> env --- include/cdio/sector.h | 7 +- lib/FreeBSD/freebsd.c | 15 ++- lib/Makefile.am | 3 +- lib/_cdio_bsdi.c | 210 ++++++++++++++++++++++-------------------- lib/_cdio_linux.c | 14 +-- lib/_cdio_osx.c | 187 ++++++++++++++++++------------------- lib/_cdio_sunos.c | 16 ++-- lib/image_common.h | 33 ++++--- 8 files changed, 251 insertions(+), 234 deletions(-) diff --git a/include/cdio/sector.h b/include/cdio/sector.h index 26b2c667..e151227e 100644 --- a/include/cdio/sector.h +++ b/include/cdio/sector.h @@ -1,5 +1,5 @@ /* - $Id: sector.h,v 1.12 2004/05/11 02:15:49 rocky Exp $ + $Id: sector.h,v 1.13 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel Copyright (C) 2003, 2004 Rocky Bernstein @@ -109,12 +109,15 @@ /*! "before data" sync bytes + header of XA (green, mode2) frame */ #define CDIO_CD_XA_SYNC_HEADER (CDIO_CD_SYNC_SIZE+CDIO_CD_XA_HEADER) -/* CD-ROM address types (Linux cdrom_tocentry.cdte_format) */ +/*! CD-ROM address types (GNU/Linux e.g. cdrom_tocentry.cdte_format) */ #define CDIO_CDROM_LBA 0x01 /**< "logical block": first frame is #0 */ #define CDIO_CDROM_MSF 0x02 /**< "minute-second-frame": binary, not BCD here! */ +/*! CD-ROM track format types (GNU/Linux cdte_ctrl) */ #define CDIO_CDROM_DATA_TRACK 0x04 +#define CDIO_CDROM_CDI_TRACK 0x10 +#define CDIO_CDROM_XA_TRACK 0x20 /*! The leadout track is always 0xAA, regardless of # of tracks on disc */ #define CDIO_CDROM_LEADOUT_TRACK 0xAA diff --git a/lib/FreeBSD/freebsd.c b/lib/FreeBSD/freebsd.c index 81ed4c33..0934c89f 100644 --- a/lib/FreeBSD/freebsd.c +++ b/lib/FreeBSD/freebsd.c @@ -1,5 +1,5 @@ /* - $Id: freebsd.c,v 1.16 2004/05/31 14:53:07 rocky Exp $ + $Id: freebsd.c,v 1.17 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein @@ -27,7 +27,7 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: freebsd.c,v 1.16 2004/05/31 14:53:07 rocky Exp $"; +static const char _rcsid[] = "$Id: freebsd.c,v 1.17 2004/06/02 00:43:53 rocky Exp $"; #include "freebsd.h" @@ -342,13 +342,18 @@ _get_track_format_freebsd(void *user_data, track_t i_track) { _img_private_t *env = user_data; + if (i_track > TOTAL_TRACKS || i_track == 0) + return TRACK_FORMAT_ERROR; + + i_track -= FIRST_TRACK_NUM; + /* This is pretty much copied from the "badly broken" cdrom_count_tracks in linux/cdrom.c. */ - if (env->tocent[i_track-FIRST_TRACK_NUM].entry.control & CDIO_CDROM_DATA_TRACK) { - if (env->tocent[i_track-FIRST_TRACK_NUM].address_format == 0x10) + if (env->tocent[i_track].entry.control & CDIO_CDROM_DATA_TRACK) { + if (env->tocent[i_track].address_format == CDIO_CDROM_CDI_TRACK) return TRACK_FORMAT_CDI; - else if (env->tocent[i_track-FIRST_TRACK_NUM].address_format == 0x20) + else if (env->tocent[i_track].address_format == CDIO_CDROM_XA_TRACK) return TRACK_FORMAT_XA; else return TRACK_FORMAT_DATA; diff --git a/lib/Makefile.am b/lib/Makefile.am index ddd56e6b..80163fb4 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.35 2004/05/10 03:28:53 rocky Exp $ +# $Id: Makefile.am,v 1.36 2004/06/02 00:43:53 rocky Exp $ # # Copyright (C) 2003, 2004 Rocky Bernstein # @@ -75,6 +75,7 @@ libcdio_sources = \ image/cdrdao.c \ image_common.h \ image/nrg.c \ + image/nrg.h \ logging.c \ MSWindows/aspi32.c \ MSWindows/aspi32.h \ diff --git a/lib/_cdio_bsdi.c b/lib/_cdio_bsdi.c index 526c4644..99f393b0 100644 --- a/lib/_cdio_bsdi.c +++ b/lib/_cdio_bsdi.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_bsdi.c,v 1.23 2004/05/06 01:37:43 rocky Exp $ + $Id: _cdio_bsdi.c,v 1.24 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004 Rocky Bernstein @@ -27,7 +27,7 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.23 2004/05/06 01:37:43 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.24 2004/06/02 00:43:53 rocky Exp $"; #include #include @@ -55,8 +55,8 @@ static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.23 2004/05/06 01:37:43 rocky #include #include -#define TOTAL_TRACKS (_obj->tochdr.cdth_trk1) -#define FIRST_TRACK_NUM (_obj->tochdr.cdth_trk0) +#define TOTAL_TRACKS (env->tochdr.cdth_trk1) +#define FIRST_TRACK_NUM (env->tochdr.cdth_trk0) typedef enum { _AM_NONE, @@ -119,59 +119,59 @@ cdio_is_cdrom(char *drive, char *mnttype) Initialize CD device. */ static bool -_cdio_init (_img_private_t *_obj) +_cdio_init (_img_private_t *env) { - if (_obj->gen.init) { + if (env->gen.init) { cdio_error ("init called more than once"); return false; } - _obj->gen.fd = open (_obj->source_name, O_RDONLY, 0); + env->gen.fd = open (env->source_name, O_RDONLY, 0); - if (_obj->gen.fd < 0) + if (env->gen.fd < 0) { - cdio_error ("open (%s): %s", _obj->source_name, strerror (errno)); + cdio_error ("open (%s): %s", env->source_name, strerror (errno)); return false; } - _obj->gen.init = true; - _obj->toc_init = false; + env->gen.init = true; + env->toc_init = false; return true; } /* Read audio sectors */ static int -_read_audio_sectors_bsdi (void *env, void *data, lsn_t lsn, +_read_audio_sectors_bsdi (void *user_data, void *data, lsn_t lsn, unsigned int nblocks) { char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, }; struct cdrom_msf *msf = (struct cdrom_msf *) &buf; msf_t _msf; - _img_private_t *_obj = env; + _img_private_t *env = env; cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf); msf->cdmsf_min0 = from_bcd8(_msf.m); msf->cdmsf_sec0 = from_bcd8(_msf.s); msf->cdmsf_frame0 = from_bcd8(_msf.f); - if (_obj->gen.ioctls_debugged == 75) + if (env->gen.ioctls_debugged == 75) cdio_debug ("only displaying every 75th ioctl from now on"); - if (_obj->gen.ioctls_debugged == 30 * 75) + if (env->gen.ioctls_debugged == 30 * 75) cdio_debug ("only displaying every 30*75th ioctl from now on"); - if (_obj->gen.ioctls_debugged < 75 - || (_obj->gen.ioctls_debugged < (30 * 75) - && _obj->gen.ioctls_debugged % 75 == 0) - || _obj->gen.ioctls_debugged % (30 * 75) == 0) + if (env->gen.ioctls_debugged < 75 + || (env->gen.ioctls_debugged < (30 * 75) + && env->gen.ioctls_debugged % 75 == 0) + || env->gen.ioctls_debugged % (30 * 75) == 0) cdio_debug ("reading %2.2d:%2.2d:%2.2d", msf->cdmsf_min0, msf->cdmsf_sec0, msf->cdmsf_frame0); - _obj->gen.ioctls_debugged++; + env->gen.ioctls_debugged++; - switch (_obj->access_mode) { + switch (env->access_mode) { case _AM_NONE: cdio_error ("no way to read audio"); return 1; @@ -180,7 +180,7 @@ _read_audio_sectors_bsdi (void *env, void *data, lsn_t lsn, case _AM_IOCTL: { unsigned int i; for (i=0; i < nblocks; i++) { - if (ioctl (_obj->gen.fd, CDROMREADRAW, &buf) == -1) { + if (ioctl (env->gen.fd, CDROMREADRAW, &buf) == -1) { perror ("ioctl()"); return 1; /* exit (EXIT_FAILURE); */ @@ -200,7 +200,7 @@ _read_audio_sectors_bsdi (void *env, void *data, lsn_t lsn, from lsn. Returns 0 if no error. */ static int -_read_mode1_sector_bsdi (void *env, void *data, lsn_t lsn, +_read_mode1_sector_bsdi (void *user_data, void *data, lsn_t lsn, bool b_form2) { @@ -208,9 +208,9 @@ _read_mode1_sector_bsdi (void *env, void *data, lsn_t lsn, #if FIXED do something here. #else - if (0 > cdio_generic_lseek(env, CDIO_CD_FRAMESIZE*lsn, SEEK_SET)) + if (0 > cdio_generic_lseek(user_data, CDIO_CD_FRAMESIZE*lsn, SEEK_SET)) return -1; - if (0 > cdio_generic_read(env, buf, CDIO_CD_FRAMESIZE)) + if (0 > cdio_generic_read(user_data, buf, CDIO_CD_FRAMESIZE)) return -1; memcpy (data, buf, b_form2 ? M2RAW_SECTOR_SIZE: CDIO_CD_FRAMESIZE); #endif @@ -223,16 +223,16 @@ _read_mode1_sector_bsdi (void *env, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_read_mode1_sectors_bsdi (void *env, void *data, lsn_t lsn, +_read_mode1_sectors_bsdi (void *user_data, void *data, lsn_t lsn, bool b_form2, unsigned int nblocks) { - _img_private_t *_obj = env; + _img_private_t *env = env; unsigned int i; int retval; unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE; for (i = 0; i < nblocks; i++) { - if ( (retval = _read_mode1_sector_bsdi (_obj, + if ( (retval = _read_mode1_sector_bsdi (env, ((char *)data) + (blocksize * i), lsn + i, b_form2)) ) return retval; @@ -245,36 +245,36 @@ _read_mode1_sectors_bsdi (void *env, void *data, lsn_t lsn, from lsn. Returns 0 if no error. */ static int -_read_mode2_sector_bsdi (void *env, void *data, lsn_t lsn, +_read_mode2_sector_bsdi (void *user_data, void *data, lsn_t lsn, bool b_form2) { char buf[M2RAW_SECTOR_SIZE] = { 0, }; struct cdrom_msf *msf = (struct cdrom_msf *) &buf; msf_t _msf; - _img_private_t *_obj = env; + _img_private_t *env = env; cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf); msf->cdmsf_min0 = from_bcd8(_msf.m); msf->cdmsf_sec0 = from_bcd8(_msf.s); msf->cdmsf_frame0 = from_bcd8(_msf.f); - if (_obj->gen.ioctls_debugged == 75) + if (env->gen.ioctls_debugged == 75) cdio_debug ("only displaying every 75th ioctl from now on"); - if (_obj->gen.ioctls_debugged == 30 * 75) + if (env->gen.ioctls_debugged == 30 * 75) cdio_debug ("only displaying every 30*75th ioctl from now on"); - if (_obj->gen.ioctls_debugged < 75 - || (_obj->gen.ioctls_debugged < (30 * 75) - && _obj->gen.ioctls_debugged % 75 == 0) - || _obj->gen.ioctls_debugged % (30 * 75) == 0) + if (env->gen.ioctls_debugged < 75 + || (env->gen.ioctls_debugged < (30 * 75) + && env->gen.ioctls_debugged % 75 == 0) + || env->gen.ioctls_debugged % (30 * 75) == 0) cdio_debug ("reading %2.2d:%2.2d:%2.2d", msf->cdmsf_min0, msf->cdmsf_sec0, msf->cdmsf_frame0); - _obj->gen.ioctls_debugged++; + env->gen.ioctls_debugged++; - switch (_obj->access_mode) + switch (env->access_mode) { case _AM_NONE: cdio_error ("no way to read mode2"); @@ -282,7 +282,7 @@ _read_mode2_sector_bsdi (void *env, void *data, lsn_t lsn, break; case _AM_IOCTL: - if (ioctl (_obj->gen.fd, CDROMREADMODE2, &buf) == -1) + if (ioctl (env->gen.fd, CDROMREADMODE2, &buf) == -1) { perror ("ioctl()"); return 1; @@ -305,22 +305,22 @@ _read_mode2_sector_bsdi (void *env, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_read_mode2_sectors_bsdi (void *env, void *data, lsn_t lsn, +_read_mode2_sectors_bsdi (void *user_data, void *data, lsn_t lsn, bool b_form2, unsigned int nblocks) { - _img_private_t *_obj = env; + _img_private_t *env = env; int i; int retval; for (i = 0; i < nblocks; i++) { if (b_form2) { - if ( (retval = _read_mode2_sector_bsdi (_obj, + if ( (retval = _read_mode2_sector_bsdi (env, ((char *)data) + (M2RAW_SECTOR_SIZE * i), lsn + i, true)) ) return retval; } else { char buf[M2RAW_SECTOR_SIZE] = { 0, }; - if ( (retval = _read_mode2_sector_bsdi (_obj, buf, lsn + i, true)) ) + if ( (retval = _read_mode2_sector_bsdi (env, buf, lsn + i, true)) ) return retval; memcpy (((char *)data) + (CDIO_CD_FRAMESIZE * i), @@ -334,16 +334,16 @@ _read_mode2_sectors_bsdi (void *env, void *data, lsn_t lsn, Return the size of the CD in logical block address (LBA) units. */ static uint32_t -_stat_size_bsdi (void *env) +_stat_size_bsdi (void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = env; struct cdrom_tocentry tocent; uint32_t size; tocent.cdte_track = CDIO_CDROM_LEADOUT_TRACK; tocent.cdte_format = CDROM_LBA; - if (ioctl (_obj->gen.fd, CDROMREADTOCENTRY, &tocent) == -1) + if (ioctl (env->gen.fd, CDROMREADTOCENTRY, &tocent) == -1) { perror ("ioctl(CDROMREADTOCENTRY)"); exit (EXIT_FAILURE); @@ -358,23 +358,23 @@ _stat_size_bsdi (void *env) Set the key "arg" to "value" in source device. */ static int -_set_arg_bsdi (void *env, const char key[], const char value[]) +_set_arg_bsdi (void *user_data, const char key[], const char value[]) { - _img_private_t *_obj = env; + _img_private_t *env = env; if (!strcmp (key, "source")) { if (!value) return -2; - free (_obj->source_name); + free (env->source_name); - _obj->source_name = strdup (value); + env->source_name = strdup (value); } else if (!strcmp (key, "access-mode")) { if (!strcmp(value, "IOCTL")) - _obj->access_mode = _AM_IOCTL; + env->access_mode = _AM_IOCTL; else cdio_error ("unknown access type: %s. ignored.", value); } @@ -389,12 +389,12 @@ _set_arg_bsdi (void *env, const char key[], const char value[]) Return false if successful or true if an error. */ static bool -_cdio_read_toc (_img_private_t *_obj) +_cdio_read_toc (_img_private_t *env) { int i; /* read TOC header */ - if ( ioctl(_obj->gen.fd, CDROMREADTOCHDR, &_obj->tochdr) == -1 ) { + if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) { cdio_error("%s: %s\n", "error in ioctl CDROMREADTOCHDR", strerror(errno)); return false; @@ -402,16 +402,16 @@ _cdio_read_toc (_img_private_t *_obj) /* read individual tracks */ for (i= FIRST_TRACK_NUM; i<=TOTAL_TRACKS; i++) { - _obj->tocent[i-1].cdte_track = i; - _obj->tocent[i-1].cdte_format = CDROM_MSF; - if ( ioctl(_obj->gen.fd, CDROMREADTOCENTRY, &_obj->tocent[i-1]) == -1 ) { + env->tocent[i-1].cdte_track = i; + env->tocent[i-1].cdte_format = CDROM_MSF; + if ( ioctl(env->gen.fd, CDROMREADTOCENTRY, &env->tocent[i-1]) == -1 ) { cdio_error("%s %d: %s\n", "error in ioctl CDROMREADTOCENTRY for track", i, strerror(errno)); return false; } /**** - struct cdrom_msf0 *msf= &_obj->tocent[i-1].cdte_addr.msf; + struct cdrom_msf0 *msf= &env->tocent[i-1].cdte_addr.msf; fprintf (stdout, "--- track# %d (msf %2.2x:%2.2x:%2.2x)\n", i, msf->minute, msf->second, msf->frame); @@ -420,11 +420,11 @@ _cdio_read_toc (_img_private_t *_obj) } /* read the lead-out track */ - _obj->tocent[TOTAL_TRACKS].cdte_track = CDIO_CDROM_LEADOUT_TRACK; - _obj->tocent[TOTAL_TRACKS].cdte_format = CDROM_MSF; + env->tocent[TOTAL_TRACKS].cdte_track = CDIO_CDROM_LEADOUT_TRACK; + env->tocent[TOTAL_TRACKS].cdte_format = CDROM_MSF; - if (ioctl(_obj->gen.fd, CDROMREADTOCENTRY, - &_obj->tocent[TOTAL_TRACKS]) == -1 ) { + if (ioctl(env->gen.fd, CDROMREADTOCENTRY, + &env->tocent[TOTAL_TRACKS]) == -1 ) { cdio_error("%s: %s\n", "error in ioctl CDROMREADTOCENTRY for lead-out", strerror(errno)); @@ -432,7 +432,7 @@ _cdio_read_toc (_img_private_t *_obj) } /* - struct cdrom_msf0 *msf= &_obj->tocent[TOTAL_TRACKS].cdte_addr.msf; + struct cdrom_msf0 *msf= &env->tocent[TOTAL_TRACKS].cdte_addr.msf; fprintf (stdout, "--- track# %d (msf %2.2x:%2.2x:%2.2x)\n", i, msf->minute, msf->second, msf->frame); @@ -446,16 +446,16 @@ _cdio_read_toc (_img_private_t *_obj) also free obj. */ static int -_eject_media_bsdi (void *env) { +_eject_media_bsdi (void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = env; int ret=2; int status; int fd; - close(_obj->gen.fd); - _obj->gen.fd = -1; - if ((fd = open (_obj->source_name, O_RDONLY|O_NONBLOCK)) > -1) { + close(env->gen.fd); + env->gen.fd = -1; + if ((fd = open (env->source_name, O_RDONLY|O_NONBLOCK)) > -1) { if((status = ioctl(fd, CDROM_DRIVE_STATUS, (void *) CDSL_CURRENT)) > 0) { switch(status) { case CDS_TRAY_OPEN: @@ -483,14 +483,14 @@ _eject_media_bsdi (void *env) { Return the value associated with the key "arg". */ static const char * -_get_arg_bsdi (void *env, const char key[]) +_get_arg_bsdi (void *user_data, const char key[]) { - _img_private_t *_obj = env; + _img_private_t *env = env; if (!strcmp (key, "source")) { - return _obj->source_name; + return env->source_name; } else if (!strcmp (key, "access-mode")) { - switch (_obj->access_mode) { + switch (env->access_mode) { case _AM_IOCTL: return "ioctl"; case _AM_NONE: @@ -505,11 +505,11 @@ _get_arg_bsdi (void *env, const char key[]) CDIO_INVALID_TRACK is returned on error. */ static track_t -_get_first_track_num_bsdi(void *env) +_get_first_track_num_bsdi(void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = env; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; return FIRST_TRACK_NUM; } @@ -520,11 +520,11 @@ _get_first_track_num_bsdi(void *env) string when done with it. */ static char * -_get_mcn_bsdi (const void *env) { +_get_mcn_bsdi (const void *user_data) { struct cdrom_mcn mcn; - const _img_private_t *_obj = env; - if (ioctl(_obj->gen.fd, CDROM_GET_MCN, &mcn) != 0) + const _img_private_t *env = env; + if (ioctl(env->gen.fd, CDROM_GET_MCN, &mcn) != 0) return NULL; return strdup(mcn.medium_catalog_number); } @@ -534,11 +534,11 @@ _get_mcn_bsdi (const void *env) { CDIO_INVALID_TRACK is returned on error. */ static track_t -_get_num_tracks_bsdi(void *env) +_get_num_tracks_bsdi(void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = env; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; return TOTAL_TRACKS; } @@ -547,22 +547,24 @@ _get_num_tracks_bsdi(void *env) Get format of track. */ static track_format_t -_get_track_format_bsdi(void *env, track_t track_num) +_get_track_format_bsdi(void *user_data, track_t i_track) { - _img_private_t *_obj = env; + _img_private_t *env = env; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - if (track_num > TOTAL_TRACKS || track_num == 0) + if (i_track > TOTAL_TRACKS || i_track == 0) return TRACK_FORMAT_ERROR; + i_track -= FIRST_TRACK_NUM; + /* This is pretty much copied from the "badly broken" cdrom_count_tracks in linux/cdrom.c. */ - if (_obj->tocent[track_num-1].cdte_ctrl & CDROM_DATA_TRACK) { - if (_obj->tocent[track_num-1].cdte_format == 0x10) + if (env->tocent[i_track].cdte_ctrl & CDROM_DATA_TRACK) { + if (env->tocent[i_track].cdte_format == CDIO_CDROM_CDI_TRACK) return TRACK_FORMAT_CDI; - else if (_obj->tocent[track_num-1].cdte_format == 0x20) + else if (env->tocent[i_track].cdte_format == CDIO_CDROM_XA_TRACK) return TRACK_FORMAT_XA; else return TRACK_FORMAT_DATA; @@ -580,45 +582,49 @@ _get_track_format_bsdi(void *env, track_t track_num) FIXME: there's gotta be a better design for this and get_track_format? */ static bool -_get_track_green_bsdi(void *env, track_t track_num) +_get_track_green_bsdi(void *user_data, track_t i_track) { - _img_private_t *_obj = env; + _img_private_t *env = env; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = TOTAL_TRACKS+1; + if (i_track == CDIO_CDROM_LEADOUT_TRACK) i_track = TOTAL_TRACKS+1; - if (track_num > TOTAL_TRACKS+1 || track_num == 0) + if (i_track > TOTAL_TRACKS+1 || i_track == 0) return false; /* FIXME: Dunno if this is the right way, but it's what I was using in cdinfo for a while. */ - return ((_obj->tocent[track_num-1].cdte_ctrl & 2) != 0); + return ((env->tocent[i_track-1].cdte_ctrl & 2) != 0); } /*! Return the starting MSF (minutes/secs/frames) for track number - track_num in obj. Track numbers start at 1. + i_track in obj. Track numbers start at 1. The "leadout" track is specified either by - using track_num LEADOUT_TRACK or the total tracks+1. + using i_track LEADOUT_TRACK or the total tracks+1. False is returned if there is no track entry. */ static bool -_get_track_msf_bsdi(void *env, track_t track_num, msf_t *msf) +_get_track_msf_bsdi(void *user_data, track_t i_track, msf_t *msf) { - _img_private_t *_obj = env; + _img_private_t *env = env; if (NULL == msf) return false; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = TOTAL_TRACKS+1; + if (i_track == CDIO_CDROM_LEADOUT_TRACK) i_track = TOTAL_TRACKS+1; - if (track_num > TOTAL_TRACKS+1 || track_num == 0) { + if (i_track > TOTAL_TRACKS+1 || i_track == 0) { return false; - } else { - struct cdrom_msf0 *msf0= &_obj->tocent[track_num-1].cdte_addr.msf; + } + + i_track -= FIRST_TRACK_NUM; + + { + struct cdrom_msf0 *msf0= &env->tocent[i_track].cdte_addr.msf; msf->m = to_bcd8(msf0->minute); msf->s = to_bcd8(msf0->second); msf->f = to_bcd8(msf0->frame); diff --git a/lib/_cdio_linux.c b/lib/_cdio_linux.c index 4b4027ad..00cbe361 100644 --- a/lib/_cdio_linux.c +++ b/lib/_cdio_linux.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_linux.c,v 1.48 2004/05/31 12:29:09 rocky Exp $ + $Id: _cdio_linux.c,v 1.49 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004 Rocky Bernstein @@ -27,7 +27,7 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.48 2004/05/31 12:29:09 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.49 2004/06/02 00:43:53 rocky Exp $"; #include @@ -875,18 +875,18 @@ _get_track_format_linux(void *user_data, track_t i_track) { _img_private_t *env = user_data; - if (!env->gen.toc_init) _cdio_read_toc (env) ; - if (i_track > TOTAL_TRACKS || i_track == 0) return TRACK_FORMAT_ERROR; + i_track -= FIRST_TRACK_NUM; + /* This is pretty much copied from the "badly broken" cdrom_count_tracks in linux/cdrom.c. */ - if (env->tocent[i_track-FIRST_TRACK_NUM].cdte_ctrl & CDIO_CDROM_DATA_TRACK) { - if (env->tocent[i_track-FIRST_TRACK_NUM].cdte_format == 0x10) + if (env->tocent[i_track].cdte_ctrl & CDIO_CDROM_DATA_TRACK) { + if (env->tocent[i_track].cdte_format == CDIO_CDROM_CDI_TRACK) return TRACK_FORMAT_CDI; - else if (env->tocent[i_track-FIRST_TRACK_NUM].cdte_format == 0x20) + else if (env->tocent[i_track].cdte_format == CDIO_CDROM_XA_TRACK) return TRACK_FORMAT_XA; else return TRACK_FORMAT_DATA; diff --git a/lib/_cdio_osx.c b/lib/_cdio_osx.c index 02fc1085..c2b39204 100644 --- a/lib/_cdio_osx.c +++ b/lib/_cdio_osx.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_osx.c,v 1.26 2004/06/01 16:02:46 thesin Exp $ + $Id: _cdio_osx.c,v 1.27 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein from vcdimager code: @@ -33,7 +33,7 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.26 2004/06/01 16:02:46 thesin Exp $"; +static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.27 2004/06/02 00:43:53 rocky Exp $"; #include #include @@ -68,8 +68,7 @@ static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.26 2004/06/01 16:02:46 thesin #include -#define TOTAL_TRACKS (_obj->num_tracks-1) -#define CDROM_DATA_TRACK CDIO_CDROM_DATA_TRACK +#define TOTAL_TRACKS (env->num_tracks-1) #define CDROM_CDI_TRACK 0x1 #define CDROM_XA_TRACK 0x2 @@ -96,11 +95,11 @@ typedef struct { static void _free_osx (void *env) { - _img_private_t *_obj = env; - if (NULL == _obj) return; - cdio_generic_free(_obj); - if (NULL != _obj->pp_lba) free((void *) _obj->pp_lba); - if (NULL != _obj->pTOC) free((void *) _obj->pTOC); + _img_private_t *env = user_data; + if (NULL == env) return; + cdio_generic_free(env); + if (NULL != env->pp_lba) free((void *) env->pp_lba); + if (NULL != env->pTOC) free((void *) env->pTOC); } /**************************************************************************** @@ -136,10 +135,10 @@ _cdio_getNumberOfTracks( CDTOC *pTOC, int i_descriptors ) Returns 0 if no error. */ static int -_get_read_mode1_sectors_osx (void *env, void *data, lsn_t lsn, +_get_read_mode1_sectors_osx (void *user_data, void *data, lsn_t lsn, bool b_form2, unsigned int nblocks) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; dk_cd_read_t cd_read; memset( &cd_read, 0, sizeof(cd_read) ); @@ -156,7 +155,7 @@ _get_read_mode1_sectors_osx (void *env, void *data, lsn_t lsn, cd_read.bufferLength = kCDSectorSizeMode1 * nblocks; } - if( ioctl( _obj->gen.fd, DKIOCCDREAD, &cd_read ) == -1 ) + if( ioctl( env->gen.fd, DKIOCCDREAD, &cd_read ) == -1 ) { cdio_error( "could not read block %d, %s", lsn, strerror(errno) ); return -1; @@ -171,10 +170,10 @@ _get_read_mode1_sectors_osx (void *env, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_get_read_mode2_sectors_osx (void *env, void *data, lsn_t lsn, +_get_read_mode2_sectors_osx (void *user_data, void *data, lsn_t lsn, bool b_form2, unsigned int nblocks) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; dk_cd_read_t cd_read; memset( &cd_read, 0, sizeof(cd_read) ); @@ -192,7 +191,7 @@ _get_read_mode2_sectors_osx (void *env, void *data, lsn_t lsn, cd_read.bufferLength = kCDSectorSizeMode2Form1 * nblocks; } - if( ioctl( _obj->gen.fd, DKIOCCDREAD, &cd_read ) == -1 ) + if( ioctl( env->gen.fd, DKIOCCDREAD, &cd_read ) == -1 ) { cdio_error( "could not read block %d, %s", lsn, strerror(errno) ); return -1; @@ -206,10 +205,10 @@ _get_read_mode2_sectors_osx (void *env, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_get_read_audio_sectors_osx (void *env, void *data, lsn_t lsn, +_get_read_audio_sectors_osx (void *user_data, void *data, lsn_t lsn, unsigned int nblocks) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; dk_cd_read_t cd_read; memset( &cd_read, 0, sizeof(cd_read) ); @@ -221,7 +220,7 @@ _get_read_audio_sectors_osx (void *env, void *data, lsn_t lsn, cd_read.buffer = data; cd_read.bufferLength = kCDSectorSizeCDDA * nblocks; - if( ioctl( _obj->gen.fd, DKIOCCDREAD, &cd_read ) == -1 ) + if( ioctl( env->gen.fd, DKIOCCDREAD, &cd_read ) == -1 ) { cdio_error( "could not read block %d", lsn ); return -1; @@ -234,8 +233,8 @@ _get_read_audio_sectors_osx (void *env, void *data, lsn_t lsn, from lsn. Returns 0 if no error. */ static int -_get_read_mode1_sector_osx (void *env, void *data, lsn_t lsn, - bool b_form2) +_get_read_mode1_sector_osx (void *user_data, void *data, lsn_t lsn, + bool b_form2) { return _get_read_mode1_sectors_osx(env, data, lsn, b_form2, 1); } @@ -245,8 +244,8 @@ _get_read_mode1_sector_osx (void *env, void *data, lsn_t lsn, from lsn. Returns 0 if no error. */ static int -_get_read_mode2_sector_osx (void *env, void *data, lsn_t lsn, - bool b_form2) +_get_read_mode2_sector_osx (void *user_data, void *data, lsn_t lsn, + bool b_form2) { return _get_read_mode2_sectors_osx(env, data, lsn, b_form2, 1); } @@ -255,23 +254,23 @@ _get_read_mode2_sector_osx (void *env, void *data, lsn_t lsn, Set the key "arg" to "value" in source device. */ static int -_set_arg_osx (void *env, const char key[], const char value[]) +_set_arg_osx (void *user_data, const char key[], const char value[]) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; if (!strcmp (key, "source")) { if (!value) return -2; - free (_obj->gen.source_name); + free (env->gen.source_name); - _obj->gen.source_name = strdup (value); + env->gen.source_name = strdup (value); } else if (!strcmp (key, "access-mode")) { if (!strcmp(value, "OSX")) - _obj->access_mode = _AM_OSX; + env->access_mode = _AM_OSX; else cdio_error ("unknown access type: %s. ignored.", value); } @@ -286,7 +285,7 @@ _set_arg_osx (void *env, const char key[], const char value[]) Return false if successful or true if an error. */ static bool -_cdio_read_toc (_img_private_t *_obj) +_cdio_read_toc (_img_private_t *env) { mach_port_t port; char *psz_devname; @@ -296,18 +295,18 @@ _cdio_read_toc (_img_private_t *_obj) CFMutableDictionaryRef properties; CFDataRef data; - _obj->gen.fd = open( _obj->gen.source_name, O_RDONLY | O_NONBLOCK ); - if (-1 == _obj->gen.fd) { - cdio_error("Failed to open %s: %s", _obj->gen.source_name, + env->gen.fd = open( env->gen.source_name, O_RDONLY | O_NONBLOCK ); + if (-1 == env->gen.fd) { + cdio_error("Failed to open %s: %s", env->gen.source_name, strerror(errno)); return false; } /* get the device name */ - if( ( psz_devname = strrchr( _obj->gen.source_name, '/') ) != NULL ) + if( ( psz_devname = strrchr( env->gen.source_name, '/') ) != NULL ) ++psz_devname; else - psz_devname = _obj->gen.source_name; + psz_devname = env->gen.source_name; /* unraw the device name */ if( *psz_devname == 'r' ) @@ -379,8 +378,8 @@ _cdio_read_toc (_img_private_t *_obj) buf_len = CFDataGetLength( data ) + 1; range = CFRangeMake( 0, buf_len ); - if( ( _obj->pTOC = (CDTOC *)malloc( buf_len ) ) != NULL ) { - CFDataGetBytes( data, range, (u_char *) _obj->pTOC ); + if( ( env->pTOC = (CDTOC *)malloc( buf_len ) ) != NULL ) { + CFDataGetBytes( data, range, (u_char *) env->pTOC ); } else { cdio_error( "Trouble allocating CDROM TOC" ); return false; @@ -394,8 +393,8 @@ _cdio_read_toc (_img_private_t *_obj) CFRelease( properties ); IOObjectRelease( service ); - _obj->i_descriptors = CDTOCGetDescriptorCount ( _obj->pTOC ); - _obj->num_tracks = _cdio_getNumberOfTracks(_obj->pTOC, _obj->i_descriptors); + env->i_descriptors = CDTOCGetDescriptorCount ( env->pTOC ); + env->num_tracks = _cdio_getNumberOfTracks(env->pTOC, env->i_descriptors); /* Read in starting sectors */ { @@ -404,17 +403,17 @@ _cdio_read_toc (_img_private_t *_obj) track_t track; int i_tracks; - _obj->pp_lba = malloc( (_obj->num_tracks + 1) * sizeof(int) ); - if( _obj->pp_lba == NULL ) + env->pp_lba = malloc( (env->num_tracks + 1) * sizeof(int) ); + if( env->pp_lba == NULL ) { cdio_error("Out of memory in allocating track starting LSNs" ); - free( _obj->pTOC ); + free( env->pTOC ); return false; } - pTrackDescriptors = _obj->pTOC->descriptors; + pTrackDescriptors = env->pTOC->descriptors; - for( i_tracks = 0, i = 0; i <= _obj->i_descriptors; i++ ) + for( i_tracks = 0, i = 0; i <= env->i_descriptors; i++ ) { track = pTrackDescriptors[i].point; @@ -425,24 +424,24 @@ _cdio_read_toc (_img_private_t *_obj) if( track > CDIO_CD_MAX_TRACKS || track < CDIO_CD_MIN_TRACK_NO ) continue; - _obj->pp_lba[i_tracks++] = + env->pp_lba[i_tracks++] = cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i].p )); } if( i_leadout == -1 ) { cdio_error( "CD leadout not found" ); - free( _obj->pp_lba ); - free( (void *) _obj->pTOC ); + free( env->pp_lba ); + free( (void *) env->pTOC ); return false; } /* set leadout sector */ - _obj->pp_lba[i_tracks] = + env->pp_lba[i_tracks] = cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i_leadout].p )); } - _obj->toc_init = true; + env->toc_init = true; return( true ); @@ -450,24 +449,24 @@ _cdio_read_toc (_img_private_t *_obj) /*! Return the starting LSN track number - track_num in obj. Track numbers start at 1. + i_track in obj. Track numbers start at 1. The "leadout" track is specified either by - using track_num LEADOUT_TRACK or the total tracks+1. + using i_track LEADOUT_TRACK or the total tracks+1. False is returned if there is no track entry. */ static lsn_t -_get_track_lba_osx(void *env, track_t track_num) +_get_track_lba_osx(void *user_data, track_t i_track) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = TOTAL_TRACKS; + if (i_track == CDIO_CDROM_LEADOUT_TRACK) i_track = TOTAL_TRACKS; - if (track_num > TOTAL_TRACKS || track_num == 0) { + if (i_track > TOTAL_TRACKS || i_track == 0) { return CDIO_INVALID_LSN; } else { - return _obj->pp_lba[track_num]; + return env->pp_lba[i_track]; } } @@ -482,15 +481,15 @@ _get_track_lba_osx(void *env, track_t track_num) */ static int -_eject_media_osx (void *env) { +_eject_media_osx (void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; FILE *p_eject; char *psz_disk; char sz_cmd[32]; - if( ( psz_disk = (char *)strstr( _obj->gen.source_name, "disk" ) ) != NULL && + if( ( psz_disk = (char *)strstr( env->gen.source_name, "disk" ) ) != NULL && strlen( psz_disk ) > 4 ) { #define EJECT_CMD "/usr/sbin/hdiutil eject %s" @@ -526,7 +525,7 @@ _eject_media_osx (void *env) { Return the size of the CD in logical block address (LBA) units. */ static uint32_t -_stat_size_osx (void *env) +_stat_size_osx (void *user_data) { return _get_track_lba_osx(env, CDIO_CDROM_LEADOUT_TRACK); } @@ -535,14 +534,14 @@ _stat_size_osx (void *env) Return the value associated with the key "arg". */ static const char * -_get_arg_osx (void *env, const char key[]) +_get_arg_osx (void *user_data, const char key[]) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; if (!strcmp (key, "source")) { - return _obj->gen.source_name; + return env->gen.source_name; } else if (!strcmp (key, "access-mode")) { - switch (_obj->access_mode) { + switch (env->access_mode) { case _AM_OSX: return "OS X"; case _AM_NONE: @@ -557,20 +556,20 @@ _get_arg_osx (void *env, const char key[]) CDIO_INVALID_TRACK is returned on error. */ static track_t -_get_first_track_num_osx(void *env) +_get_first_track_num_osx(void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; { track_t track = CDIO_INVALID_TRACK; int i; CDTOCDescriptor *pTrackDescriptors; - pTrackDescriptors = _obj->pTOC->descriptors; + pTrackDescriptors = env->pTOC->descriptors; - for( i = 0; i < _obj->i_descriptors; i++ ) + for( i = 0; i < env->i_descriptors; i++ ) { track = pTrackDescriptors[i].point; @@ -587,13 +586,13 @@ _get_first_track_num_osx(void *env) Return the media catalog number MCN. */ static char * -_get_mcn_osx (const void *env) { - const _img_private_t *_obj = env; +_get_mcn_osx (const void *user_data) { + const _img_private_t *env = user_data; dk_cd_read_mcn_t cd_read; memset( &cd_read, 0, sizeof(cd_read) ); - if( ioctl( _obj->gen.fd, DKIOCCDREADMCN, &cd_read ) < 0 ) + if( ioctl( env->gen.fd, DKIOCCDREADMCN, &cd_read ) < 0 ) { cdio_warn( "could not read MCN, %s", strerror(errno) ); return NULL; @@ -608,47 +607,49 @@ _get_mcn_osx (const void *env) { This is the externally called interface. */ static track_t -_get_num_tracks_osx(void *env) +_get_num_tracks_osx(void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - return( _obj->num_tracks-1 ); + return( env->num_tracks-1 ); } /*! Get format of track. */ static track_format_t -_get_track_format_osx(void *env, track_t track_num) +_get_track_format_osx(void *user_data, track_t i_track) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; + dk_cd_read_track_info_t cd_read; CDTrackInfo a_track; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - if (track_num > TOTAL_TRACKS || track_num == 0) + if (i_track > TOTAL_TRACKS || i_track == 0) return TRACK_FORMAT_ERROR; - dk_cd_read_track_info_t cd_read; + i_track -= 1; /* should be FIRST_TRACK_NUM */ + memset( &cd_read, 0, sizeof(cd_read) ); - cd_read.address = track_num; + cd_read.address = i_track; cd_read.addressType = kCDTrackInfoAddressTypeTrackNumber; cd_read.buffer = &a_track; cd_read.bufferLength = sizeof(CDTrackInfo); - if( ioctl( _obj->gen.fd, DKIOCCDREADTRACKINFO, &cd_read ) == -1 ) + if( ioctl( env->gen.fd, DKIOCCDREADTRACKINFO, &cd_read ) == -1 ) { - cdio_error( "could not read trackinfo for track %d", track_num ); + cdio_error( "could not read trackinfo for track %d", i_track ); return -1; } /*cdio_warn( "trackinfo trackMode: %x dataMode: %x", a_track.trackMode, a_track.dataMode );*/ - if (a_track.trackMode == CDROM_DATA_TRACK) { + if (a_track.trackMode == CDIO_CDROM_DATA_TRACK) { if (a_track.dataMode == CDROM_CDI_TRACK) { return TRACK_FORMAT_CDI; } else if (a_track.dataMode == CDROM_XA_TRACK) { @@ -671,30 +672,30 @@ _get_track_format_osx(void *env, track_t track_num) FIXME: there's gotta be a better design for this and get_track_format? */ static bool -_get_track_green_osx(void *env, track_t track_num) +_get_track_green_osx(void *user_data, track_t i_track) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; CDTrackInfo a_track; - if (!_obj->toc_init) _cdio_read_toc (_obj) ; + if (!env->toc_init) _cdio_read_toc (env) ; - if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = TOTAL_TRACKS; + if (i_track == CDIO_CDROM_LEADOUT_TRACK) i_track = TOTAL_TRACKS; - if (track_num > TOTAL_TRACKS || track_num == 0) + if (i_track > TOTAL_TRACKS || i_track == 0) return false; dk_cd_read_track_info_t cd_read; memset( &cd_read, 0, sizeof(cd_read) ); - cd_read.address = track_num; + cd_read.address = i_track; cd_read.addressType = kCDTrackInfoAddressTypeTrackNumber; cd_read.buffer = &a_track; cd_read.bufferLength = sizeof(CDTrackInfo); - if( ioctl( _obj->gen.fd, DKIOCCDREADTRACKINFO, &cd_read ) == -1 ) + if( ioctl( env->gen.fd, DKIOCCDREADTRACKINFO, &cd_read ) == -1 ) { - cdio_error( "could not read trackinfo for track %d", track_num ); + cdio_error( "could not read trackinfo for track %d", i_track ); return -1; } @@ -712,7 +713,7 @@ cdio_get_devices_osx(void) #ifndef HAVE_DARWIN_CDROM return NULL; #else - io_object_t next_media; + ioenvect_t next_media; mach_port_t master_port; kern_return_t kern_result; io_iterator_t media_iterator; diff --git a/lib/_cdio_sunos.c b/lib/_cdio_sunos.c index 861953a1..0d86b701 100644 --- a/lib/_cdio_sunos.c +++ b/lib/_cdio_sunos.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_sunos.c,v 1.33 2004/05/31 12:29:09 rocky Exp $ + $Id: _cdio_sunos.c,v 1.34 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004 Rocky Bernstein @@ -41,7 +41,7 @@ #ifdef HAVE_SOLARIS_CDROM -static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.33 2004/05/31 12:29:09 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.34 2004/06/02 00:43:53 rocky Exp $"; #include #include @@ -647,23 +647,25 @@ _cdio_get_num_tracks(void *user_data) Get format of track. */ static track_format_t -_cdio_get_track_format(void *user_data, track_t track_num) +_cdio_get_track_format(void *user_data, track_t i_track) { _img_private_t *env = user_data; if (!env->gen.init) _cdio_init(env); if (!env->gen.toc_init) _cdio_read_toc (env) ; - if (track_num > TOTAL_TRACKS || track_num == 0) + if (i_track > TOTAL_TRACKS || i_track == 0) return TRACK_FORMAT_ERROR; + i_track -= FIRST_TRACK_NUM; + /* This is pretty much copied from the "badly broken" cdrom_count_tracks in linux/cdrom.c. */ - if (env->tocent[track_num-1].cdte_ctrl & CDROM_DATA_TRACK) { - if (env->tocent[track_num-1].cdte_format == 0x10) + if (env->tocent[i_track].cdte_ctrl & CDROM_DATA_TRACK) { + if (env->tocent[i_track].cdte_format == CDIO_CDROM_CDI_TRACK) return TRACK_FORMAT_CDI; - else if (env->tocent[track_num-1].cdte_format == 0x20) + else if (env->tocent[i_track].cdte_format == CDIO_CDROM_XA_TRACK) return TRACK_FORMAT_XA; else return TRACK_FORMAT_DATA; diff --git a/lib/image_common.h b/lib/image_common.h index addaa0b8..9f3ca744 100644 --- a/lib/image_common.h +++ b/lib/image_common.h @@ -1,5 +1,5 @@ /* - $Id: image_common.h,v 1.4 2004/04/25 14:48:17 rocky Exp $ + $Id: image_common.h,v 1.5 2004/06/02 00:43:53 rocky Exp $ Copyright (C) 2004 Rocky Bernstein @@ -28,12 +28,12 @@ string when done with it. */ static char * -_get_mcn_image(const void *env) +_get_mcn_image(const void *user_data) { - const _img_private_t *_obj = env; + const _img_private_t *env = user_data; - if (NULL == _obj->mcn) return NULL; - return strdup(_obj->mcn); + if (NULL == env->mcn) return NULL; + return strdup(env->mcn); } /*! @@ -44,16 +44,16 @@ _get_mcn_image(const void *env) */ static bool -_get_track_msf_image(void *env, track_t track_num, msf_t *msf) +_get_track_msf_image(void *user_data, track_t track_num, msf_t *msf) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; if (NULL == msf) return false; - if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = _obj->total_tracks+1; + if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = env->i_tracks+1; - if (track_num <= _obj->total_tracks+1 && track_num != 0) { - *msf = _obj->tocent[track_num-1].start_msf; + if (track_num <= env->i_tracks+1 && track_num != 0) { + *msf = env->tocent[track_num-env->i_first_track].start_msf; return true; } else return false; @@ -64,11 +64,11 @@ _get_track_msf_image(void *env, track_t track_num, msf_t *msf) CDIO_INVALID_TRACK is returned on error. */ static track_t -_get_first_track_num_image(void *env) +_get_first_track_num_image(void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; - return _obj->first_track_num; + return env->i_first_track; } /*! @@ -76,10 +76,9 @@ _get_first_track_num_image(void *env) one big track. */ static track_t -_get_num_tracks_image(void *env) +_get_num_tracks_image(void *user_data) { - _img_private_t *_obj = env; + _img_private_t *env = user_data; - return _obj->total_tracks; + return env->i_tracks; } -