From e84c6316b0b3aecc88e822b0ef17e8675efd17aa Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 17 Jul 2004 22:16:46 +0000 Subject: [PATCH] Expand getting drive capabilities. We now have 3 masks where we had only one before. --- example/sample2.c | 97 ++++++++++++++++++++++++-------- include/cdio/cdio.h | 14 +++-- include/cdio/scsi_mmc.h | 7 ++- include/cdio/types.h | 102 ++++++++++++++++++++-------------- lib/_cdio_linux.c | 60 +++++++++++++++++--- lib/_cdio_sunos.c | 66 +++++++++++----------- lib/cdio.c | 36 +++++++----- lib/cdio_private.h | 8 ++- lib/image/bincue.c | 23 +------- lib/image/cdrdao.c | 23 +------- lib/image/nrg.c | 23 +------- lib/image_common.h | 27 ++++++++- lib/scsi_mmc.c | 32 ++++++----- src/cd-drive.c | 18 ++++-- src/cd-info.c | 10 +++- src/util.c | 94 +++++++++++++++++-------------- src/util.h | 7 ++- test/cdda-mcn.right | 35 ++++++------ test/cdda.right | 35 ++++++------ test/check_opts0.right | 35 ++++++------ test/check_opts1.right | 35 ++++++------ test/check_opts2.right | 35 ++++++------ test/check_opts3.right | 35 ++++++------ test/check_opts4.right | 35 ++++++------ test/check_opts5.right | 35 ++++++------ test/check_opts6.right | 35 ++++++------ test/check_opts7.right | 35 ++++++------ test/isofs-m1.right | 35 ++++++------ test/monvoisin.right | 35 ++++++------ test/svcd_ogt_test_ntsc.right | 35 ++++++------ test/svcdgs.right | 35 ++++++------ test/vcd_demo_vcdinfo.right | 35 ++++++------ test/videocd.right | 35 ++++++------ 33 files changed, 679 insertions(+), 528 deletions(-) diff --git a/example/sample2.c b/example/sample2.c index 950198cc..4bbde3ba 100644 --- a/example/sample2.c +++ b/example/sample2.c @@ -1,5 +1,5 @@ /* - $Id: sample2.c,v 1.9 2004/07/13 12:28:18 rocky Exp $ + $Id: sample2.c,v 1.10 2004/07/17 22:16:46 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein @@ -33,6 +33,69 @@ #include #endif #include + +#define _(x) x + +/* Prints out drive capabilities */ +static void +print_drive_capabilities(cdio_drive_read_cap_t i_read_cap, + cdio_drive_write_cap_t i_write_cap, + cdio_drive_misc_cap_t i_misc_cap) +{ + if (CDIO_DRIVE_CAP_ERROR == i_misc_cap) { + printf("Error in getting drive hardware properties\n"); + } else { + printf(_("Hardware : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_FILE + ? "Disk Image" : "CD-ROM or DVD"); + printf(_("Can open tray : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_OPEN_TRAY ? "Yes" : "No"); + printf(_("Can close tray : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_CLOSE_TRAY ? "Yes" : "No"); + printf(_("Can disable manual eject : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_LOCK ? "Yes" : "No"); + printf(_("Can select juke-box disc : %s\n\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_SELECT_DISC ? "Yes" : "No"); + + printf(_("Can set drive speed : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_SELECT_SPEED ? "Yes" : "No"); + printf(_("Can detect if CD changed : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED ? "Yes" : "No"); + printf(_("Can read multiple sessions : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_MULTI_SESSION ? "Yes" : "No"); + printf(_("Can hard reset device : %s\n\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_RESET ? "Yes" : "No"); + } + + + if (CDIO_DRIVE_CAP_ERROR == i_read_cap) { + printf("Error in getting drive reading properties\n"); + } else { + printf("Reading....\n"); + printf(_(" Can play audio : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_AUDIO ? "Yes" : "No"); + printf(_(" Can read CD-R : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_CD_R ? "Yes" : "No"); + printf(_(" Can read CD-RW : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_CD_RW ? "Yes" : "No"); + printf(_(" Can read DVD-ROM : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_DVD_ROM ? "Yes" : "No"); + } + + + if (CDIO_DRIVE_CAP_ERROR == i_write_cap) { + printf("Error in getting drive writing properties\n"); + } else { + printf("\nWriting....\n"); + printf(_(" Can write CD-RW : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_CD_RW ? "Yes" : "No"); + printf(_(" Can write DVD-R : %s\n"), + i_write_cap & CDIO_DRIVE_CAP_READ_DVD_R ? "Yes" : "No"); + printf(_(" Can write DVD-RAM : %s\n"), + i_write_cap & CDIO_DRIVE_CAP_READ_DVD_RAM ? "Yes" : "No"); + } +} + int main(int argc, const char *argv[]) { @@ -41,36 +104,22 @@ main(int argc, const char *argv[]) if (NULL != cdio) { char *default_device = cdio_get_default_device(cdio); - + cdio_drive_read_cap_t i_read_cap; + cdio_drive_write_cap_t i_write_cap; + cdio_drive_misc_cap_t i_misc_cap; + printf("The driver selected is %s\n", cdio_get_driver_name(cdio)); - if (default_device) { - cdio_drive_cap_t i_drive_cap = cdio_get_drive_cap(cdio); + if (default_device) printf("The default device for this driver is %s\n", default_device); - printf("drive capability in hex: %x\n", (unsigned int) i_drive_cap); - if (CDIO_DRIVE_CAP_ERROR == i_drive_cap) { - printf("Error in getting drive properties\n"); - } else if (CDIO_DRIVE_CAP_UNKNOWN == i_drive_cap) { - printf("Can't determine drive properties\n"); - } else if (CDIO_DRIVE_CAP_FILE == i_drive_cap) { - printf("Disc-image file\n"); - } else { - if (i_drive_cap & CDIO_DRIVE_CAP_CD_R) - printf("Drive can read CD-ROM\n"); - if (i_drive_cap & CDIO_DRIVE_CAP_CD_RW) - printf("Drive can write CD-ROM\n"); - if (i_drive_cap & CDIO_DRIVE_CAP_DVD) - printf("Drive can read DVD\n"); - if (i_drive_cap & CDIO_DRIVE_CAP_DVD_R) - printf("Drive can write DVD-R\n"); - if (i_drive_cap & CDIO_DRIVE_CAP_DVD_RAM) - printf("Drive can write DVD-RAM\n"); - } - } + + cdio_get_drive_cap(cdio, &i_read_cap, &i_write_cap, &i_misc_cap); + print_drive_capabilities(i_read_cap, i_write_cap, i_misc_cap); free(default_device); cdio_destroy(cdio); printf("\n"); + } else { printf("Problem in trying to find a driver.\n\n"); } diff --git a/include/cdio/cdio.h b/include/cdio/cdio.h index 069bd3ab..618d32b0 100644 --- a/include/cdio/cdio.h +++ b/include/cdio/cdio.h @@ -1,5 +1,5 @@ /* -*- c -*- - $Id: cdio.h,v 1.57 2004/07/17 02:18:27 rocky Exp $ + $Id: cdio.h,v 1.58 2004/07/17 22:16:46 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2003, 2004 Rocky Bernstein @@ -224,8 +224,11 @@ extern "C" { there is no media in it and it is possible for this routine to return NULL even though there may be a hardware CD-ROM. */ - cdio_drive_cap_t cdio_get_drive_cap (const CdIo *obj); - + void cdio_get_drive_cap (const CdIo *obj, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap); + /*! Get the drive capabilities for a specified device. @@ -235,7 +238,10 @@ extern "C" { there is no media in it and it is possible for this routine to return NULL even though there may be a hardware CD-ROM. */ - cdio_drive_cap_t cdio_get_drive_cap_dev (const char *device); + void cdio_get_drive_cap_dev (const char *device, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap); /*! Get the media catalog number (MCN) from the CD. diff --git a/include/cdio/scsi_mmc.h b/include/cdio/scsi_mmc.h index ef62179b..35202650 100644 --- a/include/cdio/scsi_mmc.h +++ b/include/cdio/scsi_mmc.h @@ -1,5 +1,5 @@ /* - $Id: scsi_mmc.h,v 1.7 2004/07/08 06:29:45 rocky Exp $ + $Id: scsi_mmc.h,v 1.8 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein @@ -100,6 +100,9 @@ in p. We interpret this and return a bit mask set according to the capabilities. */ -cdio_drive_cap_t cdio_get_drive_cap_mmc(const uint8_t *p); +void cdio_get_drive_cap_mmc(const uint8_t *p, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap); #endif /* __SCSI_MMC_H__ */ diff --git a/include/cdio/types.h b/include/cdio/types.h index c37ceee3..c32e6c17 100644 --- a/include/cdio/types.h +++ b/include/cdio/types.h @@ -1,5 +1,5 @@ /* - $Id: types.h,v 1.18 2004/06/27 15:29:21 rocky Exp $ + $Id: types.h,v 1.19 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004 Rocky Bernstein @@ -272,59 +272,79 @@ extern "C" { typedef int cdio_fs_anal_t; /*! The type of an drive capability bit mask. See below for values*/ - typedef uint32_t cdio_drive_cap_t; + typedef uint32_t cdio_drive_read_cap_t; + typedef uint32_t cdio_drive_write_cap_t; + typedef uint32_t cdio_drive_misc_cap_t; /*! \brief Drive types returned by cdio_get_drive_cap() - Most are copied from the GNU/Linux the uniform CD-ROM driver header - linux/cdrom.h> NOTE: Setting a bit here means the presence of - a capability. + NOTE: Setting a bit here means the presence of a capability. */ -#define CDIO_DRIVE_CAP_CLOSE_TRAY 0x00001 /**< caddy systems can't - close... */ -#define CDIO_DRIVE_CAP_OPEN_TRAY 0x00002 /**< but can eject. */ -#define CDIO_DRIVE_CAP_LOCK 0x00004 /**< disable manual eject */ -#define CDIO_DRIVE_CAP_SELECT_SPEED 0x00008 /**< programmable speed */ -#define CDIO_DRIVE_CAP_SELECT_DISC 0x00010 /**< select disc from juke-box */ -#define CDIO_DRIVE_CAP_MULTI_SESSION 0x00020 /**< read sessions>1 */ -#define CDIO_DRIVE_CAP_MCN 0x00040 /**< Medium Catalog Number */ -#define CDIO_DRIVE_CAP_MEDIA_CHANGED 0x00080 /**< media changed */ -#define CDIO_DRIVE_CAP_CD_AUDIO 0x00100 /**< drive can play CD audio */ -#define CDIO_DRIVE_CAP_RESET 0x00200 /**< hard reset device */ -#define CDIO_DRIVE_CAP_IOCTLS 0x00400 /**< driver has non-standard - ioctls */ -#define CDIO_DRIVE_CAP_DRIVE_STATUS 0x00800 /**< driver implements drive - status */ -#define CDIO_DRIVE_CAP_GENERIC_PACKET 0x01000 /**< driver implements generic - packets */ -#define CDIO_DRIVE_CAP_CD_R 0x02000 /**< drive can write CD-R */ -#define CDIO_DRIVE_CAP_CD_RW 0x04000 /**< drive can read CD-RW */ -#define CDIO_DRIVE_CAP_DVD 0x08000 /**< drive can read DVD */ -#define CDIO_DRIVE_CAP_DVD_R 0x10000 /**< drive can write DVD-R */ -#define CDIO_DRIVE_CAP_DVD_RAM 0x20000 /**< drive can write DVD-RAM */ - -/**< These are not taken by GNU/Linux cdrom.h (yet) */ -#define CDIO_DRIVE_CAP_ERROR 0x00000 /**< Error */ -#define CDIO_DRIVE_CAP_FILE 0x40000 /**< drive is really a file, i.e - a CD file image */ +#define CDIO_DRIVE_CAP_ERROR 0x40000 /**< Error */ #define CDIO_DRIVE_CAP_UNKNOWN 0x80000 /**< Dunno. It can be on if we have only partial information or are not completely certain - */ + */ + +#define CDIO_DRIVE_CAP_MISC_CLOSE_TRAY 0x00001 /**< caddy systems can't + close... */ +#define CDIO_DRIVE_CAP_MISC_OPEN_TRAY 0x00002 /**< but can eject. */ +#define CDIO_DRIVE_CAP_MISC_LOCK 0x00004 /**< disable manual eject */ +#define CDIO_DRIVE_CAP_MISC_SELECT_SPEED 0x00008 /**< programmable speed */ +#define CDIO_DRIVE_CAP_MISC_SELECT_DISC 0x00010 /**< select disc from + juke-box */ +#define CDIO_DRIVE_CAP_MISC_MULTI_SESSION 0x00020 /**< read sessions>1 */ +#define CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED 0x00080 /**< media changed */ +#define CDIO_DRIVE_CAP_MISC_RESET 0x00100 /**< hard reset device */ +#define CDIO_DRIVE_CAP_MISC_FILE 0x20000 /**< drive is really a file, + i.e a CD file image */ + + /*! Reading masks.. */ +#define CDIO_DRIVE_CAP_READ_AUDIO 0x00001 /**< drive can play CD audio */ +#define CDIO_DRIVE_CAP_READ_CD_G 0x00002 /**< drive can read CD G */ +#define CDIO_DRIVE_CAP_READ_CD_R 0x00004 /**< drive can read CD-R */ +#define CDIO_DRIVE_CAP_READ_CD_RW 0x00008 /**< drive can read CD-RW */ +#define CDIO_DRIVE_CAP_READ_DVD_R 0x00010 /**< drive can read DVD-R */ +#define CDIO_DRIVE_CAP_READ_DVD_PR 0x00020 /**< drive can read DVD+R */ +#define CDIO_DRIVE_CAP_READ_DVD_RAM 0x00040 /**< drive can read DVD-RAM */ +#define CDIO_DRIVE_CAP_READ_DVD_ROM 0x00080 /**< drive can read DVD-ROM */ +#define CDIO_DRIVE_CAP_READ_DVD_RW 0x00100 /**< drive can read DVD-RW */ +#define CDIO_DRIVE_CAP_READ_DVD_RPW 0x00200 /**< drive can read DVD+RW */ +#define CDIO_DRIVE_CAP_READ_C2_ERRS 0x00400 /**< has C2 error correction */ + + /*! Writing masks.. */ +#define CDIO_DRIVE_CAP_WRITE_CD_R 0x00001 /**< drive can write CD-R */ +#define CDIO_DRIVE_CAP_WRITE_CD_RW 0x00002 /**< drive can write CD-R */ +#define CDIO_DRIVE_CAP_WRITE_DVD_R 0x00004 /**< drive can write DVD-R */ +#define CDIO_DRIVE_CAP_WRITE_DVD_PR 0x00008 /**< drive can write DVD+R */ +#define CDIO_DRIVE_CAP_WRITE_DVD_RAM 0x00010 /**< drive can write DVD-RAM */ +#define CDIO_DRIVE_CAP_WRITE_DVD_RW 0x00020 /**< drive can write DVD-RAM */ +#define CDIO_DRIVE_CAP_WRITE_DVD_RPW 0x00040 /**< drive can write DVD-RAM */ +#define CDIO_DRIVE_CAP_WRITE_MT_RAIN 0x00080 /**< Mount Rainier */ +#define CDIO_DRIVE_CAP_WRITE_BUF_UN 0x00100 /**< buffer underrun protect'n */ + /**< Masks derived from above... */ -#define CDIO_DRIVE_CAP_CD_WRITER \ - (CDIO_DRIVE_CAP_CD_R|CDIO_DRIVE_CAP_CD_RW) +#define CDIO_DRIVE_CAP_WRITE_CD ( \ + CDIO_DRIVE_CAP_WRITE_CD_R \ + | CDIO_DRIVE_CAP_WRITE_CD_RW \ + ) /**< Has some sort of CD writer ability */ -#define CDIO_DRIVE_CAP_CD \ - (CDIO_DRIVE_CAP_CD_AUDIO|CDIO_DRIVE_CAP_CD_WRITER) -/**< Has some sort of CD ability */ +/**< Masks derived from above... */ +#define CDIO_DRIVE_CAP_WRITE_DVD ( \ + | CDIO_DRIVE_CAP_WRITE_DVD_R \ + | CDIO_DRIVE_CAP_WRITE_DVD_PR \ + | CDIO_DRIVE_CAP_WRITE_DVD_RAM \ + | CDIO_DRIVE_CAP_WRITE_DVD_RW \ + | CDIO_DRIVE_CAP_WRITE_DVD_RPW \ + ) +/**< Has some sort of DVD writer ability */ -#define CDIO_DRIVE_CAP_DVD_WRITER \ - (CDIO_DRIVE_CAP_DVD_R|CDIO_DRIVE_CAP_DVD_RAM) - /**< Has some sort of DVD writer ability */ +#define CDIO_DRIVE_CAP_WRITE \ + (CDIO_DRIVE_CAP_WRITE_CD | CDIO_DRIVE_CAP_WRITE_DVD) +/**< Has some sort of DVD or CD writing ability */ /*! track flags diff --git a/lib/_cdio_linux.c b/lib/_cdio_linux.c index 57df8223..0b99d503 100644 --- a/lib/_cdio_linux.c +++ b/lib/_cdio_linux.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_linux.c,v 1.67 2004/07/17 08:59:44 rocky Exp $ + $Id: _cdio_linux.c,v 1.68 2004/07/17 22:16:47 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.67 2004/07/17 08:59:44 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.68 2004/07/17 22:16:47 rocky Exp $"; #include @@ -930,17 +930,63 @@ _get_mcn_linux (const void *env) { string when done with it. */ -static cdio_drive_cap_t -_get_drive_cap_linux (const void *env) { +static void +_get_drive_cap_linux (const void *env, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap) +{ const _img_private_t *_obj = env; int32_t i_drivetype; i_drivetype = ioctl (_obj->gen.fd, CDROM_GET_CAPABILITY, CDSL_CURRENT); - if (i_drivetype < 0) return CDIO_DRIVE_CAP_ERROR; + if (i_drivetype < 0) { + *p_read_cap = CDIO_DRIVE_CAP_ERROR; + *p_write_cap = CDIO_DRIVE_CAP_ERROR; + *p_misc_cap = CDIO_DRIVE_CAP_ERROR; + return; + } + + *p_read_cap = 0; + *p_write_cap = 0; + *p_misc_cap = 0; - /* If >= 0 we can safely cast as cdio_drive_cap_t and return */ - return (cdio_drive_cap_t) i_drivetype; + /* Reader */ + if (i_drivetype & CDC_PLAY_AUDIO) + *p_read_cap |= CDIO_DRIVE_CAP_READ_AUDIO; + if (i_drivetype & CDC_CD_R) + *p_read_cap |= CDIO_DRIVE_CAP_READ_CD_R; + if (i_drivetype & CDC_CD_RW) + *p_read_cap |= CDIO_DRIVE_CAP_READ_CD_RW; + if (i_drivetype & CDC_DVD) + *p_read_cap |= CDIO_DRIVE_CAP_READ_DVD_ROM; + + /* Writer */ + if (i_drivetype & CDC_CD_RW) + *p_read_cap |= CDIO_DRIVE_CAP_WRITE_CD_RW; + if (i_drivetype & CDC_DVD_R) + *p_read_cap |= CDIO_DRIVE_CAP_WRITE_DVD_R; + if (i_drivetype & CDC_DVD_RAM) + *p_read_cap |= CDIO_DRIVE_CAP_WRITE_DVD_RAM; + + /* Misc */ + if (i_drivetype & CDC_CLOSE_TRAY) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_CLOSE_TRAY; + if (i_drivetype & CDC_OPEN_TRAY) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_OPEN_TRAY; + if (i_drivetype & CDC_LOCK) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_LOCK; + if (i_drivetype & CDC_SELECT_SPEED) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_SELECT_SPEED; + if (i_drivetype & CDC_SELECT_DISC) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_SELECT_DISC; + if (i_drivetype & CDC_MULTI_SESSION) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_MULTI_SESSION; + if (i_drivetype & CDC_MEDIA_CHANGED) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED; + if (i_drivetype & CDC_RESET) + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_RESET; } /*! diff --git a/lib/_cdio_sunos.c b/lib/_cdio_sunos.c index a6058367..c5670db5 100644 --- a/lib/_cdio_sunos.c +++ b/lib/_cdio_sunos.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_sunos.c,v 1.52 2004/07/17 15:43:57 rocky Exp $ + $Id: _cdio_sunos.c,v 1.53 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004 Rocky Bernstein @@ -38,7 +38,7 @@ #ifdef HAVE_SOLARIS_CDROM -static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.52 2004/07/17 15:43:57 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.53 2004/07/17 22:16:47 rocky Exp $"; #ifdef HAVE_GLOB_H #include @@ -142,7 +142,7 @@ _cdio_init (_img_private_t *env) */ static int -_cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn, +_read_audio_sectors_solaris (void *user_data, void *data, lsn_t lsn, unsigned int nblocks) { char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, }; @@ -189,8 +189,8 @@ _cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn, from lsn. Returns 0 if no error. */ static int -_cdio_read_mode1_sector (void *env, void *data, lsn_t lsn, - bool b_form2) +_read_mode1_sector_solaris (void *env, void *data, lsn_t lsn, + bool b_form2) { #if FIXED @@ -207,8 +207,8 @@ _cdio_read_mode1_sector (void *env, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_cdio_read_mode1_sectors (void *user_data, void *data, lsn_t lsn, - bool b_form2, unsigned int nblocks) +_read_mode1_sectors_solaris (void *user_data, void *data, lsn_t lsn, + bool b_form2, unsigned int nblocks) { _img_private_t *env = user_data; unsigned int i; @@ -216,9 +216,9 @@ _cdio_read_mode1_sectors (void *user_data, void *data, lsn_t lsn, unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE; for (i = 0; i < nblocks; i++) { - if ( (retval = _cdio_read_mode1_sector (env, + if ( (retval = _read_mode1_sector_solaris (env, ((char *)data) + (blocksize * i), - lsn + i, b_form2)) ) + lsn + i, b_form2)) ) return retval; } return 0; @@ -229,8 +229,8 @@ _cdio_read_mode1_sectors (void *user_data, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn, - bool b_form2) +_read_mode2_sector_solaris (void *user_data, void *data, lsn_t lsn, + bool b_form2) { char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, }; struct cdrom_msf *msf = (struct cdrom_msf *) &buf; @@ -288,8 +288,8 @@ _cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn, Returns 0 if no error. */ static int -_cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn, - bool b_form2, unsigned int nblocks) +_read_mode2_sectors_solaris (void *user_data, void *data, lsn_t lsn, + bool b_form2, unsigned int nblocks) { _img_private_t *env = user_data; unsigned int i; @@ -297,9 +297,9 @@ _cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn, unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE; for (i = 0; i < nblocks; i++) { - if ( (retval = _cdio_read_mode2_sector (env, + if ( (retval = _read_mode2_sector_solaris (env, ((char *)data) + (blocksize * i), - lsn + i, b_form2)) ) + lsn + i, b_form2)) ) return retval; } return 0; @@ -497,7 +497,7 @@ _get_cdtext_solaris (void *user_data, track_t i_track) also free obj. */ static int -_cdio_eject_media (void *user_data) { +_eject_media_solaris (void *user_data) { _img_private_t *env = user_data; int ret; @@ -536,7 +536,7 @@ _cdio_malloc_and_zero(size_t size) { Return the value associated with the key "arg". */ static const char * -_cdio_get_arg (void *user_data, const char key[]) +_get_arg_solaris (void *user_data, const char key[]) { _img_private_t *env = user_data; @@ -593,13 +593,15 @@ cdio_get_default_device_solaris(void) string when done with it. */ -static cdio_drive_cap_t -_cdio_get_drive_cap_solaris (const void *user_data) +static void +_get_drive_cap_solaris (const void *user_data, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap) { const _img_private_t *env = user_data; int status; struct uscsi_cmd my_cmd; - int32_t i_drivetype = 0; uint8_t buf[192] = { 0, }; unsigned char my_rq_buf[26] = {0, }; @@ -643,7 +645,7 @@ _cdio_get_drive_cap_solaris (const void *user_data) /* Don't handle these yet. */ break; case CDIO_MMC_CAPABILITIES_PAGE: - i_drivetype |= cdio_get_drive_cap_mmc(p); + cdio_get_drive_cap_mmc(p, p_read_cap, p_write_cap, p_misc_cap); break; default: ; } @@ -665,7 +667,7 @@ _cdio_get_drive_cap_solaris (const void *user_data) */ static char * -_cdio_get_mcn_solaris (const void *user_data) +_get_mcn_solaris (const void *user_data) { const _img_private_t *env = user_data; struct uscsi_cmd my_cmd; @@ -885,15 +887,15 @@ cdio_open_am_solaris (const char *psz_orig_source, const char *access_mode) char *psz_source; cdio_funcs _funcs = { - .eject_media = _cdio_eject_media, + .eject_media = _eject_media_solaris, .free = cdio_generic_free, - .get_arg = _cdio_get_arg, + .get_arg = _get_arg_solaris, .get_cdtext = _get_cdtext_solaris, .get_devices = cdio_get_devices_solaris, .get_default_device = cdio_get_default_device_solaris, - .get_drive_cap = _cdio_get_drive_cap_solaris, + .get_drive_cap = _get_drive_cap_solaris, .get_first_track_num= _cdio_get_first_track_num, - .get_mcn = _cdio_get_mcn_solaris, + .get_mcn = _get_mcn_solaris, .get_num_tracks = _cdio_get_num_tracks, .get_track_format = _cdio_get_track_format, .get_track_green = _cdio_get_track_green, @@ -901,11 +903,11 @@ cdio_open_am_solaris (const char *psz_orig_source, const char *access_mode) .get_track_msf = _cdio_get_track_msf, .lseek = cdio_generic_lseek, .read = cdio_generic_read, - .read_audio_sectors = _cdio_read_audio_sectors, - .read_mode1_sector = _cdio_read_mode1_sector, - .read_mode1_sectors = _cdio_read_mode1_sectors, - .read_mode2_sector = _cdio_read_mode2_sector, - .read_mode2_sectors = _cdio_read_mode2_sectors, + .read_audio_sectors = _read_audio_sectors_solaris, + .read_mode1_sector = _read_mode1_sector_solaris, + .read_mode1_sectors = _read_mode1_sectors_solaris, + .read_mode2_sector = _read_mode2_sector_solaris, + .read_mode2_sectors = _read_mode2_sectors_solaris, .stat_size = _cdio_stat_size, .set_arg = _set_arg_solaris }; @@ -918,7 +920,7 @@ cdio_open_am_solaris (const char *psz_orig_source, const char *access_mode) _data->b_cdtext_init = false; if (NULL == psz_orig_source) { - psz_source=cdio_get_default_device_solaris(); + psz_source=_get_default_device_solaris(); if (NULL == psz_source) return NULL; _set_arg_solaris(_data, "source", psz_source); free(psz_source); diff --git a/lib/cdio.c b/lib/cdio.c index d35796cb..b7ce49a6 100644 --- a/lib/cdio.c +++ b/lib/cdio.c @@ -1,5 +1,5 @@ /* - $Id: cdio.c,v 1.61 2004/07/17 02:18:28 rocky Exp $ + $Id: cdio.c,v 1.62 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein Copyright (C) 2001 Herbert Valerio Riedel @@ -39,7 +39,7 @@ #include #include "cdio_private.h" -static const char _rcsid[] = "$Id: cdio.c,v 1.61 2004/07/17 02:18:28 rocky Exp $"; +static const char _rcsid[] = "$Id: cdio.c,v 1.62 2004/07/17 22:16:47 rocky Exp $"; const char *track_format2str[6] = @@ -427,19 +427,22 @@ cdio_get_devices_with_cap (char* search_devices[], string when done with it. */ -cdio_drive_cap_t -cdio_get_drive_cap (const CdIo *cdio) +void +cdio_get_drive_cap (const CdIo *cdio, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap) { - cdio_drive_cap_t i_drivetype = - CDIO_DRIVE_CAP_UNKNOWN | CDIO_DRIVE_CAP_CD_AUDIO; /* A safe guess. */ + /* This seems like a safe bet. */ + *p_read_cap = CDIO_DRIVE_CAP_UNKNOWN; + *p_write_cap = CDIO_DRIVE_CAP_UNKNOWN; + *p_misc_cap = CDIO_DRIVE_CAP_UNKNOWN; if (cdio && cdio->op.get_drive_cap) { - i_drivetype=cdio->op.get_drive_cap(cdio->env); + cdio->op.get_drive_cap(cdio->env, p_read_cap, p_write_cap, p_misc_cap); } - return i_drivetype; } - /*! Return the the kind of drive capabilities of device. @@ -447,18 +450,23 @@ cdio_get_drive_cap (const CdIo *cdio) string when done with it. */ -cdio_drive_cap_t -cdio_get_drive_cap_dev (const char *device) +void +cdio_get_drive_cap_dev (const char *device, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap) { - cdio_drive_cap_t i_drivetype = CDIO_DRIVE_CAP_UNKNOWN; + /* This seems like a safe bet. */ + *p_read_cap = CDIO_DRIVE_CAP_UNKNOWN; + *p_write_cap = CDIO_DRIVE_CAP_UNKNOWN; + *p_misc_cap = CDIO_DRIVE_CAP_UNKNOWN; CdIo *cdio=scan_for_driver(CDIO_MIN_DRIVER, CDIO_MAX_DRIVER, device, NULL); if (cdio) { - i_drivetype=cdio_get_drive_cap(cdio); + cdio_get_drive_cap(cdio, p_read_cap, p_write_cap, p_misc_cap); cdio_destroy(cdio); } - return i_drivetype; } diff --git a/lib/cdio_private.h b/lib/cdio_private.h index 88ecbf86..70122b37 100644 --- a/lib/cdio_private.h +++ b/lib/cdio_private.h @@ -1,5 +1,5 @@ /* - $Id: cdio_private.h,v 1.29 2004/07/17 02:18:28 rocky Exp $ + $Id: cdio_private.h,v 1.30 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein @@ -87,8 +87,10 @@ extern "C" { See cd_types.h for a list of bitmasks for the drive type; */ - cdio_drive_cap_t (*get_drive_cap) (const void *env); - + void (*get_drive_cap) (const void *env, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap); /*! 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/lib/image/bincue.c b/lib/image/bincue.c index 1d01a5b5..856f6b86 100644 --- a/lib/image/bincue.c +++ b/lib/image/bincue.c @@ -1,5 +1,5 @@ /* - $Id: bincue.c,v 1.34 2004/07/17 02:18:28 rocky Exp $ + $Id: bincue.c,v 1.35 2004/07/17 22:16:47 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.34 2004/07/17 02:18:28 rocky Exp $"; +static const char _rcsid[] = "$Id: bincue.c,v 1.35 2004/07/17 22:16:47 rocky Exp $"; #include "image.h" #include "cdio_assert.h" @@ -838,23 +838,6 @@ cdio_get_default_device_bincue(void) return drive; } -/*! - Return the the kind of drive capabilities of device. - - Note: string is malloc'd so caller should free() then returned - string when done with it. - - */ -static cdio_drive_cap_t -_get_drive_cap_bincue (const void *user_data) { - - /* There may be more in the future but these we can handle now. - Also, we know we can't handle - LOCK, OPEN_TRAY, CLOSE_TRAY, SELECT_SPEED, SELECT_DISC - */ - return CDIO_DRIVE_CAP_FILE | CDIO_DRIVE_CAP_MCN | CDIO_DRIVE_CAP_CD_AUDIO ; -} - /*! Return the number of tracks in the current medium. CDIO_INVALID_TRACK is returned on error. @@ -1029,7 +1012,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_drive_cap = _get_drive_cap_bincue, + .get_drive_cap = _get_drive_cap_image, .get_first_track_num= _get_first_track_num_image, .get_mcn = _get_mcn_image, .get_num_tracks = _get_num_tracks_image, diff --git a/lib/image/cdrdao.c b/lib/image/cdrdao.c index 74da566c..40e3ff5f 100644 --- a/lib/image/cdrdao.c +++ b/lib/image/cdrdao.c @@ -1,5 +1,5 @@ /* - $Id: cdrdao.c,v 1.19 2004/07/11 14:25:07 rocky Exp $ + $Id: cdrdao.c,v 1.20 2004/07/17 22:16:47 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.19 2004/07/11 14:25:07 rocky Exp $"; +static const char _rcsid[] = "$Id: cdrdao.c,v 1.20 2004/07/17 22:16:47 rocky Exp $"; #include "image.h" #include "cdio_assert.h" @@ -878,23 +878,6 @@ cdio_get_default_device_cdrdao(void) return drive; } -/*! - Return the the kind of drive capabilities of device. - - Note: string is malloc'd so caller should free() then returned - string when done with it. - - */ -static cdio_drive_cap_t -_get_drive_cap_cdrdao (const void *user_data) { - - /* There may be more in the future but these we can handle now. - Also, we know we can't handle - LOCK, OPEN_TRAY, CLOSE_TRAY, SELECT_SPEED, SELECT_DISC - */ - return CDIO_DRIVE_CAP_FILE | CDIO_DRIVE_CAP_MCN | CDIO_DRIVE_CAP_CD_AUDIO ; -} - /*! Return the number of tracks in the current medium. CDIO_INVALID_TRACK is returned on error. @@ -1008,7 +991,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_drive_cap = _get_drive_cap_cdrdao, + .get_drive_cap = _get_drive_cap_image, .get_first_track_num= _get_first_track_num_image, .get_mcn = _get_mcn_image, .get_num_tracks = _get_num_tracks_image, diff --git a/lib/image/nrg.c b/lib/image/nrg.c index b6e71959..7f737e12 100644 --- a/lib/image/nrg.c +++ b/lib/image/nrg.c @@ -1,5 +1,5 @@ /* - $Id: nrg.c,v 1.31 2004/07/11 14:25:07 rocky Exp $ + $Id: nrg.c,v 1.32 2004/07/17 22:16:47 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.31 2004/07/11 14:25:07 rocky Exp $"; +static const char _rcsid[] = "$Id: nrg.c,v 1.32 2004/07/17 22:16:47 rocky Exp $"; /* reader */ @@ -1088,23 +1088,6 @@ cdio_get_default_device_nrg(void) return drive; } -/*! - Return the the kind of drive capabilities of device. - - Note: string is malloc'd so caller should free() then returned - string when done with it. - - */ -static cdio_drive_cap_t -_get_drive_cap_nrg (const void *user_data) { - - /* There may be more in the future but these we can handle now. - Also, we know we can't handle - LOCK, OPEN_TRAY, CLOSE_TRAY, SELECT_SPEED, SELECT_DISC - */ - return CDIO_DRIVE_CAP_FILE | CDIO_DRIVE_CAP_MCN | CDIO_DRIVE_CAP_CD_AUDIO ; -} - /*! Return the number of tracks in the current medium. CDIO_INVALID_TRACK is returned on error. @@ -1206,7 +1189,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_drive_cap = _get_drive_cap_nrg, + .get_drive_cap = _get_drive_cap_image, .get_first_track_num= _get_first_track_num_image, .get_mcn = _get_mcn_image, .get_num_tracks = _get_num_tracks_image, diff --git a/lib/image_common.h b/lib/image_common.h index 5c954321..2c892843 100644 --- a/lib/image_common.h +++ b/lib/image_common.h @@ -1,5 +1,5 @@ /* - $Id: image_common.h,v 1.12 2004/07/17 02:18:28 rocky Exp $ + $Id: image_common.h,v 1.13 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2004 Rocky Bernstein @@ -217,4 +217,29 @@ _set_arg_image (void *user_data, const char key[], const char value[]) return 0; } +/*! + Return the the kind of drive capabilities of device. + + */ +static void +_get_drive_cap_image (const void *user_data, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap) +{ + + *p_read_cap = CDIO_DRIVE_CAP_READ_AUDIO + | CDIO_DRIVE_CAP_READ_CD_G + | CDIO_DRIVE_CAP_READ_CD_R + | CDIO_DRIVE_CAP_READ_CD_RW + ; + + *p_write_cap = 0; + + /* In the future we may want to simulate + LOCK, OPEN_TRAY, CLOSE_TRAY, SELECT_SPEED, etc. + */ + *p_misc_cap = CDIO_DRIVE_CAP_MISC_FILE; +} + #endif /* __CDIO_IMAGE_COMMON_H__ */ diff --git a/lib/scsi_mmc.c b/lib/scsi_mmc.c index babb3a1a..4f865908 100644 --- a/lib/scsi_mmc.c +++ b/lib/scsi_mmc.c @@ -1,6 +1,6 @@ /* Common MMC routines. - $Id: scsi_mmc.c,v 1.3 2004/06/28 00:39:21 rocky Exp $ + $Id: scsi_mmc.c,v 1.4 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2004 Rocky Bernstein @@ -31,25 +31,27 @@ in p. We interpret this and return a bit mask set according to the capabilities. */ -cdio_drive_cap_t -cdio_get_drive_cap_mmc(const uint8_t *p) +void +cdio_get_drive_cap_mmc(const uint8_t *p, + cdio_drive_read_cap_t *p_read_cap, + cdio_drive_write_cap_t *p_write_cap, + cdio_drive_misc_cap_t *p_misc_cap) { - cdio_drive_cap_t i_drivetype=0; /* Reader */ - if (p[2] & 0x02) i_drivetype |= CDIO_DRIVE_CAP_CD_RW; - if (p[2] & 0x08) i_drivetype |= CDIO_DRIVE_CAP_DVD; - if (p[5] & 0x01) i_drivetype |= CDIO_DRIVE_CAP_CD_AUDIO; + if (p[2] & 0x02) *p_read_cap |= CDIO_DRIVE_CAP_READ_CD_RW; + if (p[2] & 0x08) *p_read_cap |= CDIO_DRIVE_CAP_READ_DVD_ROM; + if (p[5] & 0x01) *p_read_cap |= CDIO_DRIVE_CAP_READ_AUDIO; /* Writer */ - if (p[3] & 0x01) i_drivetype |= CDIO_DRIVE_CAP_CD_R; - if (p[3] & 0x10) i_drivetype |= CDIO_DRIVE_CAP_DVD_R; - if (p[3] & 0x20) i_drivetype |= CDIO_DRIVE_CAP_DVD_RAM; + if (p[3] & 0x01) *p_write_cap |= CDIO_DRIVE_CAP_WRITE_CD_R; + if (p[3] & 0x10) *p_write_cap |= CDIO_DRIVE_CAP_WRITE_DVD_R; + if (p[3] & 0x20) *p_write_cap |= CDIO_DRIVE_CAP_WRITE_DVD_RAM; - if (p[4] & 0x40) i_drivetype |= CDIO_DRIVE_CAP_MULTI_SESSION; + /* Misc */ + if (p[4] & 0x40) *p_misc_cap |= CDIO_DRIVE_CAP_MISC_MULTI_SESSION; - if (p[6] & 0x01) i_drivetype |= CDIO_DRIVE_CAP_LOCK; - if (p[6] & 0x08) i_drivetype |= CDIO_DRIVE_CAP_OPEN_TRAY; + if (p[6] & 0x01) *p_misc_cap |= CDIO_DRIVE_CAP_MISC_LOCK; + if (p[6] & 0x08) *p_misc_cap |= CDIO_DRIVE_CAP_MISC_OPEN_TRAY; if (p[6] >> 5 != 0) - i_drivetype |= CDIO_DRIVE_CAP_CLOSE_TRAY; - return i_drivetype; + *p_misc_cap |= CDIO_DRIVE_CAP_MISC_CLOSE_TRAY; } diff --git a/src/cd-drive.c b/src/cd-drive.c index 6e166bfd..1ab0c952 100644 --- a/src/cd-drive.c +++ b/src/cd-drive.c @@ -1,5 +1,5 @@ /* - $Id: cd-drive.c,v 1.2 2004/04/25 03:52:37 rocky Exp $ + $Id: cd-drive.c,v 1.3 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2004 Rocky Bernstein @@ -229,10 +229,14 @@ main(int argc, const char *argv[]) cd_drives = cdio_get_devices(DRIVER_DEVICE); if (NULL != cd_drives) for( cd = cd_drives; *cd != NULL; cd++ ) { - cdio_drive_cap_t i_drive_cap = cdio_get_drive_cap_dev(*cd); + cdio_drive_read_cap_t i_read_cap; + cdio_drive_write_cap_t i_write_cap; + cdio_drive_misc_cap_t i_misc_cap; + + cdio_get_drive_cap_dev(*cd, &i_read_cap, &i_write_cap, &i_misc_cap); printf("Drive %s\n", *cd); - print_drive_capabilities(i_drive_cap); + print_drive_capabilities(i_read_cap, i_write_cap, i_misc_cap); printf("\n"); } @@ -241,11 +245,15 @@ main(int argc, const char *argv[]) cd_drives = NULL; } else { /* Print CD-drive info for given source */ + cdio_drive_read_cap_t i_read_cap; + cdio_drive_write_cap_t i_write_cap; + cdio_drive_misc_cap_t i_misc_cap; - cdio_drive_cap_t i_drive_cap = cdio_get_drive_cap_dev(source_name); + cdio_get_drive_cap_dev(source_name, &i_read_cap, &i_write_cap, + &i_misc_cap); printf("Drive %s\n", source_name); - print_drive_capabilities(i_drive_cap); + print_drive_capabilities(i_read_cap, i_write_cap, i_misc_cap); printf("\n"); } diff --git a/src/cd-info.c b/src/cd-info.c index fe9dc11a..c5daa58a 100644 --- a/src/cd-info.c +++ b/src/cd-info.c @@ -1,5 +1,5 @@ /* - $Id: cd-info.c,v 1.72 2004/07/17 02:18:28 rocky Exp $ + $Id: cd-info.c,v 1.73 2004/07/17 22:16:47 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein Copyright (C) 1996, 1997, 1998 Gerd Knorr @@ -966,8 +966,12 @@ main(int argc, const char *argv[]) } { - cdio_drive_cap_t i_drive_cap = cdio_get_drive_cap(cdio); - print_drive_capabilities(i_drive_cap); + cdio_drive_read_cap_t i_read_cap; + cdio_drive_write_cap_t i_write_cap; + cdio_drive_misc_cap_t i_misc_cap; + + cdio_get_drive_cap(cdio, &i_read_cap, &i_write_cap, &i_misc_cap); + print_drive_capabilities(i_read_cap, i_write_cap, i_misc_cap); } if (opts.list_drives) { diff --git a/src/util.c b/src/util.c index ecf5409e..4d094fe6 100644 --- a/src/util.c +++ b/src/util.c @@ -1,5 +1,5 @@ /* - $Id: util.c,v 1.9 2004/06/27 16:37:34 rocky Exp $ + $Id: util.c,v 1.10 2004/07/17 22:16:48 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein @@ -87,52 +87,60 @@ fillout_device_name(const char *device_name) } /* Prints out drive capabilities */ -void -print_drive_capabilities(cdio_drive_cap_t i_drive_cap) +void print_drive_capabilities(cdio_drive_read_cap_t i_read_cap, + cdio_drive_write_cap_t i_write_cap, + cdio_drive_misc_cap_t i_misc_cap) { - if (CDIO_DRIVE_CAP_ERROR == i_drive_cap) { - printf("Error in getting drive properties\n"); + if (CDIO_DRIVE_CAP_ERROR == i_misc_cap) { + printf("Error in getting drive hardware properties\n"); } else { - printf("Hardware : %s\n", - i_drive_cap & CDIO_DRIVE_CAP_FILE + printf(_("Hardware : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_FILE ? "Disk Image" : "CD-ROM or DVD"); - printf(_("Can open tray : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_OPEN_TRAY ? "Yes" : "No"); - printf(_("Can close tray : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_CLOSE_TRAY ? "Yes" : "No"); - printf(_("Can disable manual eject: %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_LOCK ? "Yes" : "No"); - printf(_("Can select juke-box disc: %s\n\n"), - i_drive_cap & CDIO_DRIVE_CAP_SELECT_DISC ? "Yes" : "No"); + printf(_("Can open tray : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_OPEN_TRAY ? "Yes" : "No"); + printf(_("Can close tray : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_CLOSE_TRAY ? "Yes" : "No"); + printf(_("Can disable manual eject : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_LOCK ? "Yes" : "No"); + printf(_("Can select juke-box disc : %s\n\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_SELECT_DISC ? "Yes" : "No"); - printf(_("Can set drive speed : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_SELECT_SPEED ? "Yes" : "No"); - printf(_("Can detect if CD changed: %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_MEDIA_CHANGED ? "Yes" : "No"); - printf(_("Can read Media Cat. No. : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_MCN ? "Yes" : "No"); - printf(_("Can read sessions > 1 . : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_MULTI_SESSION ? "Yes" : "No"); - printf(_("Can hard reset device : %s\n\n"), - i_drive_cap & CDIO_DRIVE_CAP_RESET ? "Yes" : "No"); - - printf(_("Compact Disc : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_CD ? "Yes" : "No"); - printf(_(" Can play audio : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_CD_AUDIO ? "Yes" : "No"); - printf(_(" Can read CD-RW : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_CD_RW ? "Yes" : "No"); - printf(_(" Can write CD-R : %s\n\n"), - i_drive_cap & CDIO_DRIVE_CAP_CD_R ? "Yes" : "No"); - - printf(_("Digital Versital Disc : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_DVD ? "Yes" : "No"); - printf(_(" Can write DVD-R : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_DVD_R ? "Yes" : "No"); - printf(_(" Can write DVD-RAM : %s\n"), - i_drive_cap & CDIO_DRIVE_CAP_DVD_RAM ? "Yes" : "No"); + printf(_("Can set drive speed : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_SELECT_SPEED ? "Yes" : "No"); + printf(_("Can detect if CD changed : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED ? "Yes" : "No"); + printf(_("Can read multiple sessions : %s\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_MULTI_SESSION ? "Yes" : "No"); + printf(_("Can hard reset device : %s\n\n"), + i_misc_cap & CDIO_DRIVE_CAP_MISC_RESET ? "Yes" : "No"); } - if (CDIO_DRIVE_CAP_UNKNOWN == i_drive_cap) { - printf("Not completely sure about drive properties\n\n"); + + + if (CDIO_DRIVE_CAP_ERROR == i_read_cap) { + printf("Error in getting drive reading properties\n"); + } else { + printf("Reading....\n"); + printf(_(" Can play audio : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_AUDIO ? "Yes" : "No"); + printf(_(" Can read CD-R : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_CD_R ? "Yes" : "No"); + printf(_(" Can read CD-RW : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_CD_RW ? "Yes" : "No"); + printf(_(" Can read DVD-ROM : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_DVD_ROM ? "Yes" : "No"); + } + + + if (CDIO_DRIVE_CAP_ERROR == i_write_cap) { + printf("Error in getting drive writing properties\n"); + } else { + printf("\nWriting....\n"); + printf(_(" Can write CD-RW : %s\n"), + i_read_cap & CDIO_DRIVE_CAP_READ_CD_RW ? "Yes" : "No"); + printf(_(" Can write DVD-R : %s\n"), + i_write_cap & CDIO_DRIVE_CAP_READ_DVD_R ? "Yes" : "No"); + printf(_(" Can write DVD-RAM : %s\n"), + i_write_cap & CDIO_DRIVE_CAP_READ_DVD_RAM ? "Yes" : "No"); } } diff --git a/src/util.h b/src/util.h index 0bee05ed..4b786e13 100644 --- a/src/util.h +++ b/src/util.h @@ -1,5 +1,5 @@ /* - $Id: util.h,v 1.4 2004/05/04 02:06:48 rocky Exp $ + $Id: util.h,v 1.5 2004/07/17 22:16:48 rocky Exp $ Copyright (C) 2003, 2004 Rocky Bernstein @@ -101,6 +101,9 @@ void print_version (char *program_name, const char *version, char *fillout_device_name(const char *device_name); /* Prints out drive capabilities */ -void print_drive_capabilities(cdio_drive_cap_t i_drive_cap); +void print_drive_capabilities(cdio_drive_read_cap_t p_read_cap, + cdio_drive_write_cap_t p_write_cap, + cdio_drive_misc_cap_t p_misc_cap); + #endif /* UTIL_H */ diff --git a/test/cdda-mcn.right b/test/cdda-mcn.right index 98b04aff..31562692 100644 --- a/test/cdda-mcn.right +++ b/test/cdda-mcn.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/cdda.right b/test/cdda.right index d7de33ca..fc06ee90 100644 --- a/test/cdda.right +++ b/test/cdda.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/check_opts0.right b/test/check_opts0.right index a0895119..3450b7d6 100644 --- a/test/check_opts0.right +++ b/test/check_opts0.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No Media Catalog Number (MCN): 0000010271955 __________________________________ CD Analysis Report diff --git a/test/check_opts1.right b/test/check_opts1.right index a0895119..3450b7d6 100644 --- a/test/check_opts1.right +++ b/test/check_opts1.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No Media Catalog Number (MCN): 0000010271955 __________________________________ CD Analysis Report diff --git a/test/check_opts2.right b/test/check_opts2.right index 2e20d51e..a168a1e7 100644 --- a/test/check_opts2.right +++ b/test/check_opts2.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/check_opts3.right b/test/check_opts3.right index 2e20d51e..a168a1e7 100644 --- a/test/check_opts3.right +++ b/test/check_opts3.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/check_opts4.right b/test/check_opts4.right index 08721721..1137b0f1 100644 --- a/test/check_opts4.right +++ b/test/check_opts4.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/check_opts5.right b/test/check_opts5.right index 08721721..1137b0f1 100644 --- a/test/check_opts5.right +++ b/test/check_opts5.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/check_opts6.right b/test/check_opts6.right index 08721721..1137b0f1 100644 --- a/test/check_opts6.right +++ b/test/check_opts6.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/check_opts7.right b/test/check_opts7.right index 08721721..1137b0f1 100644 --- a/test/check_opts7.right +++ b/test/check_opts7.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/isofs-m1.right b/test/isofs-m1.right index 078557f4..bfe79b3f 100644 --- a/test/isofs-m1.right +++ b/test/isofs-m1.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 1) #: MSF LSN Type Green? diff --git a/test/monvoisin.right b/test/monvoisin.right index b322a3c8..04a751b4 100644 --- a/test/monvoisin.right +++ b/test/monvoisin.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 2) #: MSF LSN Type Green? diff --git a/test/svcd_ogt_test_ntsc.right b/test/svcd_ogt_test_ntsc.right index 939b5194..7bdb7ca6 100644 --- a/test/svcd_ogt_test_ntsc.right +++ b/test/svcd_ogt_test_ntsc.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 2) #: MSF LSN Type Green? diff --git a/test/svcdgs.right b/test/svcdgs.right index 1e9e2736..35094711 100644 --- a/test/svcdgs.right +++ b/test/svcdgs.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 2) #: MSF LSN Type Green? diff --git a/test/vcd_demo_vcdinfo.right b/test/vcd_demo_vcdinfo.right index 21ea899a..b0b9c6d1 100644 --- a/test/vcd_demo_vcdinfo.right +++ b/test/vcd_demo_vcdinfo.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 3) #: MSF LSN Type Green? diff --git a/test/videocd.right b/test/videocd.right index d5187654..b188a703 100644 --- a/test/videocd.right +++ b/test/videocd.right @@ -1,26 +1,27 @@ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -Hardware : Disk Image -Can open tray : No -Can close tray : No -Can disable manual eject: No -Can select juke-box disc: No +Hardware : Disk Image +Can open tray : No +Can close tray : No +Can disable manual eject : No +Can select juke-box disc : No -Can set drive speed : No -Can detect if CD changed: No -Can read Media Cat. No. : Yes -Can read sessions > 1 . : No -Can hard reset device : No +Can set drive speed : No +Can detect if CD changed : No +Can read multiple sessions : No +Can hard reset device : No -Compact Disc : Yes - Can play audio : Yes - Can read CD-RW : No - Can write CD-R : No +Reading.... + Can play audio : Yes + Can read CD-R : Yes + Can read CD-RW : Yes + Can read DVD-ROM : No -Digital Versital Disc : No - Can write DVD-R : No - Can write DVD-RAM : No +Writing.... + Can write CD-RW : Yes + Can write DVD-R : No + Can write DVD-RAM : No __________________________________ CD-ROM Track List (1 - 5) #: MSF LSN Type Green?