From b4cea7fd9ed0ec1fedd9289750cd35a1b104d756 Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 24 Jul 2004 14:23:37 +0000 Subject: [PATCH] Add get_disc_mode to image readers. Add it in cd-info display. Update regression tests. I'm not sure disc_mode is all that helpful or correct. --- lib/image/bincue.c | 156 ++++++++++++++++++++++++++++++++-- lib/image/cdrdao.c | 14 +-- lib/image/nrg.c | 82 +++++++++--------- lib/image_common.h | 12 ++- src/cd-info.c | 70 +++++++++++++-- test/cdda-mcn.right | 3 + test/cdda.right | 3 + test/check_cue.sh.in | 12 +-- test/check_opts0.right | 3 + test/check_opts1.right | 3 + test/check_opts2.right | 2 + test/check_opts3.right | 2 + test/check_opts4.right | 2 + test/check_opts5.right | 2 + test/check_opts6.right | 2 + test/check_opts7.right | 2 + test/isofs-m1.right | 1 + test/monvoisin.right | 2 + test/svcd_ogt_test_ntsc.right | 1 + test/svcdgs.right | 2 + test/vcd_demo_vcdinfo.right | 1 + test/videocd.right | 2 + 22 files changed, 314 insertions(+), 65 deletions(-) diff --git a/lib/image/bincue.c b/lib/image/bincue.c index 856f6b86..8dfe0317 100644 --- a/lib/image/bincue.c +++ b/lib/image/bincue.c @@ -1,5 +1,5 @@ /* - $Id: bincue.c,v 1.35 2004/07/17 22:16:47 rocky Exp $ + $Id: bincue.c,v 1.36 2004/07/24 14:23:38 rocky Exp $ Copyright (C) 2002, 2003, 2004 Rocky Bernstein Copyright (C) 2001 Herbert Valerio Riedel @@ -26,7 +26,7 @@ (*.cue). */ -static const char _rcsid[] = "$Id: bincue.c,v 1.35 2004/07/17 22:16:47 rocky Exp $"; +static const char _rcsid[] = "$Id: bincue.c,v 1.36 2004/07/24 14:23:38 rocky Exp $"; #include "image.h" #include "cdio_assert.h" @@ -84,7 +84,7 @@ typedef struct { track_t i_tracks; /* number of tracks in image */ track_t i_first_track; /* track number of first track */ cdtext_t cdtext; /* CD-TEXT */ - track_format_t mode; + discmode_t disc_mode; } _img_private_t; static uint32_t _stat_size_bincue (void *user_data); @@ -97,7 +97,7 @@ static bool parse_cuefile (_img_private_t *cd, const char *toc_name); Initialize image structures. */ static bool -_bincue_init (_img_private_t *env) +_init_bincue (_img_private_t *env) { lsn_t lead_lsn; @@ -115,6 +115,7 @@ _bincue_init (_img_private_t *env) env->gen.init = true; env->i_first_track = 1; env->psz_mcn = NULL; + env->disc_mode = CDIO_DISC_MODE_NO_INFO; cdtext_init (&(env->cdtext)); @@ -397,6 +398,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) this_track->endsize = 0; this_track->track_format = TRACK_FORMAT_AUDIO; this_track->track_green = false; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_DA; + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_XA_2_1: + case CDIO_DISC_MODE_CD_XA_2_2: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE1/2048", psz_field)) { if (cd) { @@ -408,6 +427,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) this_track->datastart = 0; this_track->datasize = CDIO_CD_FRAMESIZE; this_track->endsize = 0; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_DATA_1; + break; + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_XA_2_1: + case CDIO_DISC_MODE_CD_XA_2_2: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE1/2352", psz_field)) { if (cd) { @@ -420,6 +457,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) this_track->endsize = CDIO_CD_EDC_SIZE + CDIO_CD_M1F1_ZERO_SIZE + CDIO_CD_ECC_SIZE; this_track->mode = MODE1_RAW; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_DATA_2; + break; + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_XA_2_1: + case CDIO_DISC_MODE_CD_XA_2_2: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE2/2336", psz_field)) { if (cd) { @@ -431,6 +486,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) + CDIO_CD_HEADER_SIZE; this_track->datasize = M2RAW_SECTOR_SIZE; this_track->endsize = 0; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_DATA_2; + break; + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_XA_2_1: + case CDIO_DISC_MODE_CD_XA_2_2: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE2/2048", psz_field)) { if (cd) { @@ -438,6 +511,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) this_track->track_format= TRACK_FORMAT_XA; this_track->track_green = true; this_track->mode = MODE2_FORM1; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_XA_2_1; + break; + case CDIO_DISC_MODE_CD_XA_2_1: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_XA_2_2: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE2/2324", psz_field)) { if (cd) { @@ -445,6 +536,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) this_track->track_format= TRACK_FORMAT_XA; this_track->track_green = true; this_track->mode = MODE2_FORM2; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_XA_2_2; + break; + case CDIO_DISC_MODE_CD_XA_2_2: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_XA_2_1: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE2/2336", psz_field)) { if (cd) { @@ -456,6 +565,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) + CDIO_CD_HEADER_SIZE; this_track->datasize = M2RAW_SECTOR_SIZE; this_track->endsize = 0; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_XA_2_2; + break; + case CDIO_DISC_MODE_CD_XA_2_2: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_XA_2_1: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else if (0 == strcmp ("MODE2/2352", psz_field)) { if (cd) { @@ -467,6 +594,24 @@ parse_cuefile (_img_private_t *cd, const char *psz_cue_name) + CDIO_CD_HEADER_SIZE + CDIO_CD_SUBHEADER_SIZE; this_track->datasize = CDIO_CD_FRAMESIZE; this_track->endsize = CDIO_CD_SYNC_SIZE + CDIO_CD_ECC_SIZE; + switch(cd->disc_mode) { + case CDIO_DISC_MODE_NO_INFO: + cd->disc_mode = CDIO_DISC_MODE_CD_XA_2_2; + break; + case CDIO_DISC_MODE_CD_XA_2_2: + case CDIO_DISC_MODE_CD_MIXED: + case CDIO_DISC_MODE_ERROR: + /* Disc type stays the same. */ + break; + case CDIO_DISC_MODE_CD_DA: + case CDIO_DISC_MODE_CD_DATA_1: + case CDIO_DISC_MODE_CD_DATA_2: + case CDIO_DISC_MODE_CD_XA_2_1: + cd->disc_mode = CDIO_DISC_MODE_CD_MIXED; + break; + default: + cd->disc_mode = CDIO_DISC_MODE_ERROR; + } } } else { cdio_log(log_level, @@ -1012,6 +1157,7 @@ cdio_open_cue (const char *psz_cue_name) .get_cdtext = _get_cdtext_image, .get_devices = cdio_get_devices_bincue, .get_default_device = cdio_get_default_device_bincue, + .get_discmode = _get_discmode_image, .get_drive_cap = _get_drive_cap_image, .get_first_track_num= _get_first_track_num_image, .get_mcn = _get_mcn_image, @@ -1055,7 +1201,7 @@ cdio_open_cue (const char *psz_cue_name) _set_arg_image (_data, "source", psz_bin_name); free(psz_bin_name); - if (_bincue_init(_data)) { + if (_init_bincue(_data)) { return ret; } else { _free_image(_data); diff --git a/lib/image/cdrdao.c b/lib/image/cdrdao.c index 40e3ff5f..35036110 100644 --- a/lib/image/cdrdao.c +++ b/lib/image/cdrdao.c @@ -1,5 +1,5 @@ /* - $Id: cdrdao.c,v 1.20 2004/07/17 22:16:47 rocky Exp $ + $Id: cdrdao.c,v 1.21 2004/07/24 14:23:39 rocky Exp $ Copyright (C) 2004 Rocky Bernstein toc reading routine adapted from cuetools @@ -25,7 +25,7 @@ (*.cue). */ -static const char _rcsid[] = "$Id: cdrdao.c,v 1.20 2004/07/17 22:16:47 rocky Exp $"; +static const char _rcsid[] = "$Id: cdrdao.c,v 1.21 2004/07/24 14:23:39 rocky Exp $"; #include "image.h" #include "cdio_assert.h" @@ -84,7 +84,7 @@ typedef struct { track_t i_tracks; /* number of tracks in image */ track_t i_first_track; /* track number of first track */ cdtext_t cdtext; /* CD-TEXT */ - track_format_t mode; + discmode_t disc_mode; } _img_private_t; static uint32_t _stat_size_cdrdao (void *user_data); @@ -110,6 +110,7 @@ _init_cdrdao (_img_private_t *env) env->gen.init = true; env->i_first_track = 1; env->psz_mcn = NULL; + env->disc_mode = CDIO_DISC_MODE_NO_INFO; cdtext_init (&(env->cdtext)); @@ -346,14 +347,14 @@ parse_tocfile (_img_private_t *cd, const char *psz_cue_name) } else if (0 == strcmp ("CD_DA", psz_keyword)) { if (-1 == i) { if (NULL != cd) - cd->mode = TRACK_FORMAT_AUDIO; + cd->disc_mode = CDIO_DISC_MODE_CD_DA; } else { goto not_in_global_section; } } else if (0 == strcmp ("CD_ROM", psz_keyword)) { if (-1 == i) { if (NULL != cd) - cd->mode = TRACK_FORMAT_DATA; + cd->disc_mode = CDIO_DISC_MODE_CD_DATA_1; } else { goto not_in_global_section; } @@ -361,7 +362,7 @@ parse_tocfile (_img_private_t *cd, const char *psz_cue_name) } else if (0 == strcmp ("CD_ROM_XA", psz_keyword)) { if (-1 == i) { if (NULL != cd) - cd->mode = TRACK_FORMAT_XA; + cd->disc_mode = CDIO_DISC_MODE_CD_XA_2_1; } else { goto not_in_global_section; } @@ -991,6 +992,7 @@ cdio_open_cdrdao (const char *psz_cue_name) .get_cdtext = _get_cdtext_image, .get_devices = cdio_get_devices_cdrdao, .get_default_device = cdio_get_default_device_cdrdao, + .get_discmode = _get_discmode_image, .get_drive_cap = _get_drive_cap_image, .get_first_track_num= _get_first_track_num_image, .get_mcn = _get_mcn_image, diff --git a/lib/image/nrg.c b/lib/image/nrg.c index 7f737e12..3dc5a147 100644 --- a/lib/image/nrg.c +++ b/lib/image/nrg.c @@ -1,5 +1,5 @@ /* - $Id: nrg.c,v 1.32 2004/07/17 22:16:47 rocky Exp $ + $Id: nrg.c,v 1.33 2004/07/24 14:23:39 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein Copyright (C) 2001, 2003 Herbert Valerio Riedel @@ -45,7 +45,7 @@ #include "_cdio_stdio.h" #include "nrg.h" -static const char _rcsid[] = "$Id: nrg.c,v 1.32 2004/07/17 22:16:47 rocky Exp $"; +static const char _rcsid[] = "$Id: nrg.c,v 1.33 2004/07/24 14:23:39 rocky Exp $"; /* reader */ @@ -80,7 +80,7 @@ typedef struct { track_t i_tracks; /* number of tracks in image */ track_t i_first_track; /* track number of first track */ cdtext_t cdtext; /* CD-TEXT */ - track_format_t mode; + discmode_t disc_mode; /* Nero Specific stuff. Note: for the image_free to work, this *must* be last. */ @@ -396,32 +396,32 @@ parse_nrg (_img_private_t *env, const char *psz_nrg_name) switch (env->dtyp) { case 0: /* Mode 1 */ - track_format = TRACK_FORMAT_DATA; - env->mode = MODE1; + track_format = TRACK_FORMAT_DATA; + env->disc_mode = CDIO_DISC_MODE_CD_DATA_1; break; case 2: /* Mode 2 form 1 */ - form2 = 0; - track_format = TRACK_FORMAT_XA; - env->mode = MODE2_FORM1; + form2 = 0; + track_format = TRACK_FORMAT_XA; + env->disc_mode = CDIO_DISC_MODE_CD_XA_2_1; break; case 3: /* Mode 2 */ - track_format = TRACK_FORMAT_XA; - env->mode = MODE2; + track_format = TRACK_FORMAT_XA; + env->disc_mode = CDIO_DISC_MODE_CD_XA_2_1; /* ?? */ break; case 0x6: /* Mode2 form mix */ - track_format = TRACK_FORMAT_XA; - env->mode = MODE2_FORM_MIX; + track_format = TRACK_FORMAT_XA; + env->disc_mode = CDIO_DISC_MODE_CD_MIXED; break; case 0x20: /* ??? Mode2 form 2, Mode2 raw?? */ - track_format = TRACK_FORMAT_XA; - env->mode = MODE2_FORM2; /* Just a guess. */ + track_format = TRACK_FORMAT_XA; + env->disc_mode = CDIO_DISC_MODE_CD_XA_2_2; /* ??. */ break; case 0x7: - track_format = TRACK_FORMAT_AUDIO; - env->mode = AUDIO; + track_format = TRACK_FORMAT_AUDIO; + env->disc_mode = CDIO_DISC_MODE_CD_DA; break; default: cdio_log (log_level, "Unknown track format %x\n", @@ -509,43 +509,43 @@ parse_nrg (_img_private_t *env, const char *psz_nrg_name) switch (track_mode) { case 0: /* Mode 1 */ - track_format = TRACK_FORMAT_DATA; - track_green = false; /* ?? */ - blocksize = CDIO_CD_FRAMESIZE; - env->mode = MODE1; + track_format = TRACK_FORMAT_DATA; + track_green = false; /* ?? */ + blocksize = CDIO_CD_FRAMESIZE; + env->disc_mode = CDIO_DISC_MODE_CD_DATA_1; break; case 2: /* Mode 2 form 1 */ - track_format = TRACK_FORMAT_XA; - track_green = false; /* ?? */ - blocksize = CDIO_CD_FRAMESIZE; - env->mode = MODE2_FORM1; + track_format = TRACK_FORMAT_XA; + track_green = false; /* ?? */ + blocksize = CDIO_CD_FRAMESIZE; + env->disc_mode = CDIO_DISC_MODE_CD_XA_2_1; break; case 3: /* Mode 2 */ - track_format = TRACK_FORMAT_XA; - track_green = true; - blocksize = M2RAW_SECTOR_SIZE; - env->mode = MODE2; + track_format = TRACK_FORMAT_XA; + track_green = true; + blocksize = M2RAW_SECTOR_SIZE; + env->disc_mode = CDIO_DISC_MODE_CD_XA_2_1; /* ?? */ break; case 06: /* Mode2 form mix */ - track_format = TRACK_FORMAT_XA; - track_green = true; - blocksize = M2RAW_SECTOR_SIZE; - env->mode = MODE2_FORM_MIX; + track_format = TRACK_FORMAT_XA; + track_green = true; + blocksize = M2RAW_SECTOR_SIZE; + env->disc_mode = CDIO_DISC_MODE_CD_MIXED; break; case 0x20: /* ??? Mode2 form 2, Mode2 raw?? */ - track_format = TRACK_FORMAT_XA; - track_green = true; - blocksize = M2RAW_SECTOR_SIZE; - env->mode = MODE2_FORM2; /* Just a guess. */ + track_format = TRACK_FORMAT_XA; + track_green = true; + blocksize = M2RAW_SECTOR_SIZE; + env->disc_mode = CDIO_DISC_MODE_CD_XA_2_2; /* ??. */ break; case 7: - track_format = TRACK_FORMAT_AUDIO; - track_green = false; - blocksize = CDIO_CD_FRAMESIZE_RAW; - env->mode = AUDIO; + track_format = TRACK_FORMAT_AUDIO; + track_green = false; + blocksize = CDIO_CD_FRAMESIZE_RAW; + env->disc_mode = CDIO_DISC_MODE_CD_DA; break; default: cdio_log (log_level, @@ -756,6 +756,7 @@ _init_nrg (_img_private_t *env) } env->psz_mcn = NULL; + env->disc_mode = CDIO_DISC_MODE_NO_INFO; cdtext_init (&(env->cdtext)); @@ -1189,6 +1190,7 @@ cdio_open_nrg (const char *psz_source) .get_cdtext = _get_cdtext_image, .get_devices = cdio_get_devices_nrg, .get_default_device = cdio_get_default_device_nrg, + .get_discmode = _get_discmode_image, .get_drive_cap = _get_drive_cap_image, .get_first_track_num= _get_first_track_num_image, .get_mcn = _get_mcn_image, diff --git a/lib/image_common.h b/lib/image_common.h index 2c892843..89fb8bcf 100644 --- a/lib/image_common.h +++ b/lib/image_common.h @@ -1,5 +1,5 @@ /* - $Id: image_common.h,v 1.13 2004/07/17 22:16:47 rocky Exp $ + $Id: image_common.h,v 1.14 2004/07/24 14:23:37 rocky Exp $ Copyright (C) 2004 Rocky Bernstein @@ -119,6 +119,16 @@ _get_cdtext_image (void *user_data, track_t i_track) } +/*! + Get disc type associated with cd_obj. +*/ +static discmode_t +_get_discmode_image (void *p_user_data) +{ + _img_private_t *p_env = p_user_data; + return p_env->disc_mode; +} + /*! Return the media catalog number (MCN) from the CD or NULL if there is none or we don't have the ability to get it. diff --git a/src/cd-info.c b/src/cd-info.c index c5daa58a..8031ce07 100644 --- a/src/cd-info.c +++ b/src/cd-info.c @@ -1,5 +1,5 @@ /* - $Id: cd-info.c,v 1.73 2004/07/17 22:16:47 rocky Exp $ + $Id: cd-info.c,v 1.74 2004/07/24 14:23:39 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein Copyright (C) 1996, 1997, 1998 Gerd Knorr @@ -79,8 +79,8 @@ struct arguments int no_ioctl; int no_analysis; char *access_mode; /* Access method driver should use for control */ -#ifdef HAVE_CDDB int no_cddb; /* If set the below are meaningless. */ +#ifdef HAVE_CDDB char *cddb_email; /* email to report to CDDB server. */ char *cddb_server; /* CDDB server to contact */ int cddb_port; /* port number to contact CDDB server. */ @@ -90,6 +90,8 @@ struct arguments char *cddb_cachedir; #endif int no_vcd; + int no_device; + int no_disc_mode; uint32_t debug_level; int version_only; int silent; @@ -162,8 +164,17 @@ parse_options (int argc, const char *argv[]) {"cddb-timeout", '\0', POPT_ARG_INT, &opts.cddb_timeout, 0, "CDDB timeout value in seconds (default 10 seconds)"}, +#else + {"no-cddb", '\0', POPT_ARG_NONE, &opts.no_cddb, 1, + "Don't look up audio CDDB information - for this build, this is always set"}, #endif + {"no-device-info", '\0', POPT_ARG_NONE, &opts.no_device, 0, + "Don't show device info, just CD info"}, + + {"no-disc-mode", '\0', POPT_ARG_NONE, &opts.no_disc_mode, 0, + "Don't show disc-mode info"}, + #ifdef HAVE_VCDINFO {"no-vcd", 'v', POPT_ARG_NONE, &opts.no_vcd, 0, "Don't look up Video CD information"}, @@ -803,6 +814,8 @@ init(void) opts.silent = false; opts.list_drives = false; opts.no_header = false; + opts.no_device = 0; + opts.no_disc_mode = 0; opts.debug_level = 0; opts.no_tracks = 0; opts.print_iso9660 = 0; @@ -814,7 +827,13 @@ init(void) opts.cddb_server = NULL; opts.cddb_timeout = -1; opts.cddb_disable_cache = false; - +#else + opts.no_cddb = 1; +#endif +#ifdef HAVE_VCDINFO + opts.no_vcd = 0; +#else + opts.no_vcd = 1; #endif opts.no_ioctl = 0; opts.no_analysis = 0; @@ -959,13 +978,13 @@ main(int argc, const char *argv[]) } } - if (opts.silent == 0) { + if (0 == opts.silent) { printf("CD location : %s\n", source_name); printf("CD driver name: %s\n", cdio_get_driver_name(cdio)); printf(" access mode: %s\n\n", cdio_get_arg(cdio, "access-mode")); } - { + if (0 == opts.no_device) { cdio_drive_read_cap_t i_read_cap; cdio_drive_write_cap_t i_write_cap; cdio_drive_misc_cap_t i_misc_cap; @@ -988,16 +1007,53 @@ main(int argc, const char *argv[]) if (device_list) free(device_list); } + printf(STRONG "\n"); + + + if ( 0 == opts.no_disc_mode ) { + printf("Disc mode is listed as: "); + switch(cdio_get_discmode(cdio)) { + case CDIO_DISC_MODE_CD_DA: + printf("CD-DA\n"); + break; + case CDIO_DISC_MODE_CD_DATA_1: + printf("CD-ROM form 1 mode 1"); + break; + case CDIO_DISC_MODE_CD_DATA_2: + printf("CD-ROM form 1 mode 2"); + break; + case CDIO_DISC_MODE_CD_XA_2_1: + printf("CD-ROM XA form2 mode 1"); + break; + case CDIO_DISC_MODE_CD_XA_2_2: + printf("CD-ROM XA form2 mode 2"); + break; + case CDIO_DISC_MODE_CD_MIXED: + printf("CD-ROM mixed mode"); + break; + case CDIO_DISC_MODE_DVD: + printf("some sort of DVD"); + break; + case CDIO_DISC_MODE_NO_INFO: + printf("No information"); + break; + case CDIO_DISC_MODE_ERROR: + printf("No error"); + break; + } + printf("\n"); + } + i_first_track = cdio_get_first_track_num(cdio); i_tracks = cdio_get_num_tracks(cdio); if (!opts.no_tracks) { - printf(STRONG "CD-ROM Track List (%i - %i)\n" NORMAL, + printf("CD-ROM Track List (%i - %i)\n" NORMAL, i_first_track, i_tracks); printf(" #: MSF LSN Type Green?\n"); } - + /* Read and possibly print track information. */ for (i = i_first_track; i <= CDIO_CDROM_LEADOUT_TRACK; i++) { msf_t msf; diff --git a/test/cdda-mcn.right b/test/cdda-mcn.right index 106d3144..4ee53d5e 100644 --- a/test/cdda-mcn.right +++ b/test/cdda-mcn.right @@ -23,6 +23,9 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-DA + CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 audio false diff --git a/test/cdda.right b/test/cdda.right index 946d4f72..cbe138e5 100644 --- a/test/cdda.right +++ b/test/cdda.right @@ -23,6 +23,9 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-DA + CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 audio false diff --git a/test/check_cue.sh.in b/test/check_cue.sh.in index bf2fd2c2..2adc0d70 100644 --- a/test/check_cue.sh.in +++ b/test/check_cue.sh.in @@ -1,5 +1,5 @@ #!/bin/sh -#$Id: check_cue.sh.in,v 1.19 2004/05/06 12:05:50 rocky Exp $ +#$Id: check_cue.sh.in,v 1.20 2004/07/24 14:23:39 rocky Exp $ # Tests to see that BIN/CUE and cdrdao TOC file iamge reading is correct # (via cd-info). @@ -40,7 +40,7 @@ check_result $RC "cd-info TOC test $testnum" "cd-info $opts" fname=isofs-m1 testnum='ISO 9660 mode1 CUE' if test -f ${srcdir}/${fname}.bin ; then - opts="-q --cue-file ${srcdir}/${fname}.cue --iso9660" + opts="-q --no-disc-mode --cue-file ${srcdir}/${fname}.cue --iso9660" test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right RC=$? check_result $RC "cd-info CUE test $testnum" "$opts" @@ -50,7 +50,7 @@ fi testnum='ISO 9660 mode1 TOC' if test -f ${srcdir}/${fname}.bin ; then - opts="-q --toc-file ${srcdir}/${fname}.toc --iso9660" + opts="-q --no-disc-mode --toc-file ${srcdir}/${fname}.toc --iso9660" test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right RC=$? check_result $RC "cd-info TOC test $testnum" "cd-info $opts" @@ -66,12 +66,12 @@ else fi testnum='Video CD' if test -f ${srcdir}/${fname}.bin ; then - opts="-q -c ${srcdir}/${fname}.cue --iso9660" + opts="-q --no-disc-mode -c ${srcdir}/${fname}.cue --iso9660" test_cdinfo "$opts" ${fname}.dump $right RC=$? check_result $RC "cd-info CUE test $testnum" "cd-info $opts" - opts="-q -t ${srcdir}/${fname}.toc --iso9660" + opts="-q --no-disc-mode -t ${srcdir}/${fname}.toc --iso9660" if test -f ${srcdir}/${fname}.toc ; then test_cdinfo "$opts" ${fname}.dump $right RC=$? @@ -86,7 +86,7 @@ fi fname=svcd_ogt_test_ntsc testnum='Super Video CD' if test -f ${srcdir}/${fname}.bin ; then - opts="-q --cue-file ${srcdir}/${fname}.cue $vcd_opt --iso9660" + opts="-q --no-disc-mode --cue-file ${srcdir}/${fname}.cue $vcd_opt --iso9660" test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right RC=$? check_result $RC "cd-info CUE test $testnum" "cd-info $opts" diff --git a/test/check_opts0.right b/test/check_opts0.right index 0031de49..535a8fd2 100644 --- a/test/check_opts0.right +++ b/test/check_opts0.right @@ -22,6 +22,9 @@ Writing.... Can write CD-RW : Yes Can write DVD-R : No Can write DVD-RAM : No +__________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 Media Catalog Number (MCN): 0000010271955 __________________________________ CD Analysis Report diff --git a/test/check_opts1.right b/test/check_opts1.right index 0031de49..535a8fd2 100644 --- a/test/check_opts1.right +++ b/test/check_opts1.right @@ -22,6 +22,9 @@ Writing.... Can write CD-RW : Yes Can write DVD-R : No Can write DVD-RAM : No +__________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 Media Catalog Number (MCN): 0000010271955 __________________________________ CD Analysis Report diff --git a/test/check_opts2.right b/test/check_opts2.right index b52037cd..60d306fc 100644 --- a/test/check_opts2.right +++ b/test/check_opts2.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/check_opts3.right b/test/check_opts3.right index b52037cd..60d306fc 100644 --- a/test/check_opts3.right +++ b/test/check_opts3.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/check_opts4.right b/test/check_opts4.right index 42db33e5..13b927bd 100644 --- a/test/check_opts4.right +++ b/test/check_opts4.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/check_opts5.right b/test/check_opts5.right index 42db33e5..13b927bd 100644 --- a/test/check_opts5.right +++ b/test/check_opts5.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/check_opts6.right b/test/check_opts6.right index 42db33e5..13b927bd 100644 --- a/test/check_opts6.right +++ b/test/check_opts6.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/check_opts7.right b/test/check_opts7.right index 42db33e5..13b927bd 100644 --- a/test/check_opts7.right +++ b/test/check_opts7.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM form 1 mode 2 CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/isofs-m1.right b/test/isofs-m1.right index 55d2d5f3..7079bed8 100644 --- a/test/isofs-m1.right +++ b/test/isofs-m1.right @@ -23,6 +23,7 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + CD-ROM Track List (1 - 1) #: MSF LSN Type Green? 1: 00:02:00 000000 data false diff --git a/test/monvoisin.right b/test/monvoisin.right index 1fb24516..753147c4 100644 --- a/test/monvoisin.right +++ b/test/monvoisin.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM XA form2 mode 1 CD-ROM Track List (1 - 2) #: MSF LSN Type Green? 1: 00:02:00 000000 XA true diff --git a/test/svcd_ogt_test_ntsc.right b/test/svcd_ogt_test_ntsc.right index 836eb2a9..306441aa 100644 --- a/test/svcd_ogt_test_ntsc.right +++ b/test/svcd_ogt_test_ntsc.right @@ -23,6 +23,7 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + CD-ROM Track List (1 - 2) #: MSF LSN Type Green? 1: 00:02:00 000000 XA true diff --git a/test/svcdgs.right b/test/svcdgs.right index a18b2e02..ff6983ae 100644 --- a/test/svcdgs.right +++ b/test/svcdgs.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM XA form2 mode 1 CD-ROM Track List (1 - 2) #: MSF LSN Type Green? 1: 00:02:00 000000 XA true diff --git a/test/vcd_demo_vcdinfo.right b/test/vcd_demo_vcdinfo.right index af5c9508..a1656042 100644 --- a/test/vcd_demo_vcdinfo.right +++ b/test/vcd_demo_vcdinfo.right @@ -23,6 +23,7 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + CD-ROM Track List (1 - 3) #: MSF LSN Type Green? 1: 00:02:00 000000 XA true diff --git a/test/videocd.right b/test/videocd.right index bb00c71a..0e8a2f47 100644 --- a/test/videocd.right +++ b/test/videocd.right @@ -23,6 +23,8 @@ Writing.... Can write DVD-R : No Can write DVD-RAM : No __________________________________ + +Disc mode is listed as: CD-ROM XA form2 mode 1 CD-ROM Track List (1 - 5) #: MSF LSN Type Green? 1: 00:02:00 000000 XA true