Expand getting drive capabilities. We now have 3 masks where we had
only one before.
This commit is contained in:
@@ -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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -33,6 +33,69 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
#include <cdio/cdio.h>
|
#include <cdio/cdio.h>
|
||||||
|
|
||||||
|
#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
|
int
|
||||||
main(int argc, const char *argv[])
|
main(int argc, const char *argv[])
|
||||||
{
|
{
|
||||||
@@ -41,36 +104,22 @@ main(int argc, const char *argv[])
|
|||||||
|
|
||||||
if (NULL != cdio) {
|
if (NULL != cdio) {
|
||||||
char *default_device = cdio_get_default_device(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));
|
printf("The driver selected is %s\n", cdio_get_driver_name(cdio));
|
||||||
|
|
||||||
if (default_device) {
|
if (default_device)
|
||||||
cdio_drive_cap_t i_drive_cap = cdio_get_drive_cap(cdio);
|
|
||||||
printf("The default device for this driver is %s\n", 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) {
|
cdio_get_drive_cap(cdio, &i_read_cap, &i_write_cap, &i_misc_cap);
|
||||||
printf("Error in getting drive properties\n");
|
print_drive_capabilities(i_read_cap, i_write_cap, i_misc_cap);
|
||||||
} 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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free(default_device);
|
free(default_device);
|
||||||
cdio_destroy(cdio);
|
cdio_destroy(cdio);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printf("Problem in trying to find a driver.\n\n");
|
printf("Problem in trying to find a driver.\n\n");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* -*- c -*-
|
/* -*- 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 <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -224,7 +224,10 @@ extern "C" {
|
|||||||
there is no media in it and it is possible for this routine to return
|
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.
|
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.
|
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
|
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.
|
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.
|
Get the media catalog number (MCN) from the CD.
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -100,6 +100,9 @@
|
|||||||
in p. We interpret this and return a bit mask set according to the
|
in p. We interpret this and return a bit mask set according to the
|
||||||
capabilities.
|
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__ */
|
#endif /* __SCSI_MMC_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 <hvr@gnu.org>
|
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -272,59 +272,79 @@ extern "C" {
|
|||||||
typedef int cdio_fs_anal_t;
|
typedef int cdio_fs_anal_t;
|
||||||
|
|
||||||
/*! The type of an drive capability bit mask. See below for values*/
|
/*! 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()
|
\brief Drive types returned by cdio_get_drive_cap()
|
||||||
|
|
||||||
Most are copied from the GNU/Linux the uniform CD-ROM driver header
|
NOTE: Setting a bit here means the presence of a capability.
|
||||||
linux/cdrom.h> NOTE: Setting a bit here means the presence of
|
|
||||||
a capability.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CDIO_DRIVE_CAP_CLOSE_TRAY 0x00001 /**< caddy systems can't
|
#define CDIO_DRIVE_CAP_ERROR 0x40000 /**< Error */
|
||||||
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_UNKNOWN 0x80000 /**< Dunno. It can be on if we
|
#define CDIO_DRIVE_CAP_UNKNOWN 0x80000 /**< Dunno. It can be on if we
|
||||||
have only partial information
|
have only partial information
|
||||||
or are not completely certain
|
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... */
|
/**< Masks derived from above... */
|
||||||
#define CDIO_DRIVE_CAP_CD_WRITER \
|
#define CDIO_DRIVE_CAP_WRITE_CD ( \
|
||||||
(CDIO_DRIVE_CAP_CD_R|CDIO_DRIVE_CAP_CD_RW)
|
CDIO_DRIVE_CAP_WRITE_CD_R \
|
||||||
|
| CDIO_DRIVE_CAP_WRITE_CD_RW \
|
||||||
|
)
|
||||||
/**< Has some sort of CD writer ability */
|
/**< Has some sort of CD writer ability */
|
||||||
|
|
||||||
#define CDIO_DRIVE_CAP_CD \
|
/**< Masks derived from above... */
|
||||||
(CDIO_DRIVE_CAP_CD_AUDIO|CDIO_DRIVE_CAP_CD_WRITER)
|
#define CDIO_DRIVE_CAP_WRITE_DVD ( \
|
||||||
/**< Has some sort of CD ability */
|
| 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 \
|
#define CDIO_DRIVE_CAP_WRITE \
|
||||||
(CDIO_DRIVE_CAP_DVD_R|CDIO_DRIVE_CAP_DVD_RAM)
|
(CDIO_DRIVE_CAP_WRITE_CD | CDIO_DRIVE_CAP_WRITE_DVD)
|
||||||
/**< Has some sort of DVD writer ability */
|
/**< Has some sort of DVD or CD writing ability */
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
track flags
|
track flags
|
||||||
|
|||||||
@@ -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 <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#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 <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@@ -930,17 +930,63 @@ _get_mcn_linux (const void *env) {
|
|||||||
string when done with it.
|
string when done with it.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
static cdio_drive_cap_t
|
static void
|
||||||
_get_drive_cap_linux (const void *env) {
|
_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;
|
const _img_private_t *_obj = env;
|
||||||
int32_t i_drivetype;
|
int32_t i_drivetype;
|
||||||
|
|
||||||
i_drivetype = ioctl (_obj->gen.fd, CDROM_GET_CAPABILITY, CDSL_CURRENT);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
/* If >= 0 we can safely cast as cdio_drive_cap_t and return */
|
*p_read_cap = 0;
|
||||||
return (cdio_drive_cap_t) i_drivetype;
|
*p_write_cap = 0;
|
||||||
|
*p_misc_cap = 0;
|
||||||
|
|
||||||
|
/* 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -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 <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#ifdef HAVE_SOLARIS_CDROM
|
#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
|
#ifdef HAVE_GLOB_H
|
||||||
#include <glob.h>
|
#include <glob.h>
|
||||||
@@ -142,7 +142,7 @@ _cdio_init (_img_private_t *env)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
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)
|
unsigned int nblocks)
|
||||||
{
|
{
|
||||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||||
@@ -189,7 +189,7 @@ _cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
|||||||
from lsn. Returns 0 if no error.
|
from lsn. Returns 0 if no error.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_cdio_read_mode1_sector (void *env, void *data, lsn_t lsn,
|
_read_mode1_sector_solaris (void *env, void *data, lsn_t lsn,
|
||||||
bool b_form2)
|
bool b_form2)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ _cdio_read_mode1_sector (void *env, void *data, lsn_t lsn,
|
|||||||
Returns 0 if no error.
|
Returns 0 if no error.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_cdio_read_mode1_sectors (void *user_data, void *data, lsn_t lsn,
|
_read_mode1_sectors_solaris (void *user_data, void *data, lsn_t lsn,
|
||||||
bool b_form2, unsigned int nblocks)
|
bool b_form2, unsigned int nblocks)
|
||||||
{
|
{
|
||||||
_img_private_t *env = user_data;
|
_img_private_t *env = user_data;
|
||||||
@@ -216,7 +216,7 @@ _cdio_read_mode1_sectors (void *user_data, void *data, lsn_t lsn,
|
|||||||
unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE;
|
unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE;
|
||||||
|
|
||||||
for (i = 0; i < nblocks; i++) {
|
for (i = 0; i < nblocks; i++) {
|
||||||
if ( (retval = _cdio_read_mode1_sector (env,
|
if ( (retval = _read_mode1_sector_solaris (env,
|
||||||
((char *)data) + (blocksize * i),
|
((char *)data) + (blocksize * i),
|
||||||
lsn + i, b_form2)) )
|
lsn + i, b_form2)) )
|
||||||
return retval;
|
return retval;
|
||||||
@@ -229,7 +229,7 @@ _cdio_read_mode1_sectors (void *user_data, void *data, lsn_t lsn,
|
|||||||
Returns 0 if no error.
|
Returns 0 if no error.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
_read_mode2_sector_solaris (void *user_data, void *data, lsn_t lsn,
|
||||||
bool b_form2)
|
bool b_form2)
|
||||||
{
|
{
|
||||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||||
@@ -288,7 +288,7 @@ _cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
|||||||
Returns 0 if no error.
|
Returns 0 if no error.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn,
|
_read_mode2_sectors_solaris (void *user_data, void *data, lsn_t lsn,
|
||||||
bool b_form2, unsigned int nblocks)
|
bool b_form2, unsigned int nblocks)
|
||||||
{
|
{
|
||||||
_img_private_t *env = user_data;
|
_img_private_t *env = user_data;
|
||||||
@@ -297,7 +297,7 @@ _cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn,
|
|||||||
unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE;
|
unsigned int blocksize = b_form2 ? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE;
|
||||||
|
|
||||||
for (i = 0; i < nblocks; i++) {
|
for (i = 0; i < nblocks; i++) {
|
||||||
if ( (retval = _cdio_read_mode2_sector (env,
|
if ( (retval = _read_mode2_sector_solaris (env,
|
||||||
((char *)data) + (blocksize * i),
|
((char *)data) + (blocksize * i),
|
||||||
lsn + i, b_form2)) )
|
lsn + i, b_form2)) )
|
||||||
return retval;
|
return retval;
|
||||||
@@ -497,7 +497,7 @@ _get_cdtext_solaris (void *user_data, track_t i_track)
|
|||||||
also free obj.
|
also free obj.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_cdio_eject_media (void *user_data) {
|
_eject_media_solaris (void *user_data) {
|
||||||
|
|
||||||
_img_private_t *env = user_data;
|
_img_private_t *env = user_data;
|
||||||
int ret;
|
int ret;
|
||||||
@@ -536,7 +536,7 @@ _cdio_malloc_and_zero(size_t size) {
|
|||||||
Return the value associated with the key "arg".
|
Return the value associated with the key "arg".
|
||||||
*/
|
*/
|
||||||
static const char *
|
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;
|
_img_private_t *env = user_data;
|
||||||
|
|
||||||
@@ -593,13 +593,15 @@ cdio_get_default_device_solaris(void)
|
|||||||
string when done with it.
|
string when done with it.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
static cdio_drive_cap_t
|
static void
|
||||||
_cdio_get_drive_cap_solaris (const void *user_data)
|
_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;
|
const _img_private_t *env = user_data;
|
||||||
int status;
|
int status;
|
||||||
struct uscsi_cmd my_cmd;
|
struct uscsi_cmd my_cmd;
|
||||||
int32_t i_drivetype = 0;
|
|
||||||
uint8_t buf[192] = { 0, };
|
uint8_t buf[192] = { 0, };
|
||||||
unsigned char my_rq_buf[26] = {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. */
|
/* Don't handle these yet. */
|
||||||
break;
|
break;
|
||||||
case CDIO_MMC_CAPABILITIES_PAGE:
|
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;
|
break;
|
||||||
default: ;
|
default: ;
|
||||||
}
|
}
|
||||||
@@ -665,7 +667,7 @@ _cdio_get_drive_cap_solaris (const void *user_data)
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
static char *
|
static char *
|
||||||
_cdio_get_mcn_solaris (const void *user_data)
|
_get_mcn_solaris (const void *user_data)
|
||||||
{
|
{
|
||||||
const _img_private_t *env = user_data;
|
const _img_private_t *env = user_data;
|
||||||
struct uscsi_cmd my_cmd;
|
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;
|
char *psz_source;
|
||||||
|
|
||||||
cdio_funcs _funcs = {
|
cdio_funcs _funcs = {
|
||||||
.eject_media = _cdio_eject_media,
|
.eject_media = _eject_media_solaris,
|
||||||
.free = cdio_generic_free,
|
.free = cdio_generic_free,
|
||||||
.get_arg = _cdio_get_arg,
|
.get_arg = _get_arg_solaris,
|
||||||
.get_cdtext = _get_cdtext_solaris,
|
.get_cdtext = _get_cdtext_solaris,
|
||||||
.get_devices = cdio_get_devices_solaris,
|
.get_devices = cdio_get_devices_solaris,
|
||||||
.get_default_device = cdio_get_default_device_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_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_num_tracks = _cdio_get_num_tracks,
|
||||||
.get_track_format = _cdio_get_track_format,
|
.get_track_format = _cdio_get_track_format,
|
||||||
.get_track_green = _cdio_get_track_green,
|
.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,
|
.get_track_msf = _cdio_get_track_msf,
|
||||||
.lseek = cdio_generic_lseek,
|
.lseek = cdio_generic_lseek,
|
||||||
.read = cdio_generic_read,
|
.read = cdio_generic_read,
|
||||||
.read_audio_sectors = _cdio_read_audio_sectors,
|
.read_audio_sectors = _read_audio_sectors_solaris,
|
||||||
.read_mode1_sector = _cdio_read_mode1_sector,
|
.read_mode1_sector = _read_mode1_sector_solaris,
|
||||||
.read_mode1_sectors = _cdio_read_mode1_sectors,
|
.read_mode1_sectors = _read_mode1_sectors_solaris,
|
||||||
.read_mode2_sector = _cdio_read_mode2_sector,
|
.read_mode2_sector = _read_mode2_sector_solaris,
|
||||||
.read_mode2_sectors = _cdio_read_mode2_sectors,
|
.read_mode2_sectors = _read_mode2_sectors_solaris,
|
||||||
.stat_size = _cdio_stat_size,
|
.stat_size = _cdio_stat_size,
|
||||||
.set_arg = _set_arg_solaris
|
.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;
|
_data->b_cdtext_init = false;
|
||||||
|
|
||||||
if (NULL == psz_orig_source) {
|
if (NULL == psz_orig_source) {
|
||||||
psz_source=cdio_get_default_device_solaris();
|
psz_source=_get_default_device_solaris();
|
||||||
if (NULL == psz_source) return NULL;
|
if (NULL == psz_source) return NULL;
|
||||||
_set_arg_solaris(_data, "source", psz_source);
|
_set_arg_solaris(_data, "source", psz_source);
|
||||||
free(psz_source);
|
free(psz_source);
|
||||||
|
|||||||
36
lib/cdio.c
36
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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
#include <cdio/logging.h>
|
#include <cdio/logging.h>
|
||||||
#include "cdio_private.h"
|
#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] =
|
const char *track_format2str[6] =
|
||||||
@@ -427,19 +427,22 @@ cdio_get_devices_with_cap (char* search_devices[],
|
|||||||
string when done with it.
|
string when done with it.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
cdio_drive_cap_t
|
void
|
||||||
cdio_get_drive_cap (const CdIo *cdio)
|
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 =
|
/* This seems like a safe bet. */
|
||||||
CDIO_DRIVE_CAP_UNKNOWN | CDIO_DRIVE_CAP_CD_AUDIO; /* A safe guess. */
|
*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) {
|
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.
|
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.
|
string when done with it.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
cdio_drive_cap_t
|
void
|
||||||
cdio_get_drive_cap_dev (const char *device)
|
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,
|
CdIo *cdio=scan_for_driver(CDIO_MIN_DRIVER, CDIO_MAX_DRIVER,
|
||||||
device, NULL);
|
device, NULL);
|
||||||
if (cdio) {
|
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);
|
cdio_destroy(cdio);
|
||||||
}
|
}
|
||||||
return i_drivetype;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -87,8 +87,10 @@ extern "C" {
|
|||||||
|
|
||||||
See cd_types.h for a list of bitmasks for the drive type;
|
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
|
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.
|
there is none or we don't have the ability to get it.
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
(*.cue).
|
(*.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 "image.h"
|
||||||
#include "cdio_assert.h"
|
#include "cdio_assert.h"
|
||||||
@@ -838,23 +838,6 @@ cdio_get_default_device_bincue(void)
|
|||||||
return drive;
|
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.
|
Return the number of tracks in the current medium.
|
||||||
CDIO_INVALID_TRACK is returned on error.
|
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_cdtext = _get_cdtext_image,
|
||||||
.get_devices = cdio_get_devices_bincue,
|
.get_devices = cdio_get_devices_bincue,
|
||||||
.get_default_device = cdio_get_default_device_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_first_track_num= _get_first_track_num_image,
|
||||||
.get_mcn = _get_mcn_image,
|
.get_mcn = _get_mcn_image,
|
||||||
.get_num_tracks = _get_num_tracks_image,
|
.get_num_tracks = _get_num_tracks_image,
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
toc reading routine adapted from cuetools
|
toc reading routine adapted from cuetools
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
(*.cue).
|
(*.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 "image.h"
|
||||||
#include "cdio_assert.h"
|
#include "cdio_assert.h"
|
||||||
@@ -878,23 +878,6 @@ cdio_get_default_device_cdrdao(void)
|
|||||||
return drive;
|
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.
|
Return the number of tracks in the current medium.
|
||||||
CDIO_INVALID_TRACK is returned on error.
|
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_cdtext = _get_cdtext_image,
|
||||||
.get_devices = cdio_get_devices_cdrdao,
|
.get_devices = cdio_get_devices_cdrdao,
|
||||||
.get_default_device = cdio_get_default_device_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_first_track_num= _get_first_track_num_image,
|
||||||
.get_mcn = _get_mcn_image,
|
.get_mcn = _get_mcn_image,
|
||||||
.get_num_tracks = _get_num_tracks_image,
|
.get_num_tracks = _get_num_tracks_image,
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
#include "_cdio_stdio.h"
|
#include "_cdio_stdio.h"
|
||||||
#include "nrg.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 */
|
/* reader */
|
||||||
@@ -1088,23 +1088,6 @@ cdio_get_default_device_nrg(void)
|
|||||||
return drive;
|
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.
|
Return the number of tracks in the current medium.
|
||||||
CDIO_INVALID_TRACK is returned on error.
|
CDIO_INVALID_TRACK is returned on error.
|
||||||
@@ -1206,7 +1189,7 @@ cdio_open_nrg (const char *psz_source)
|
|||||||
.get_cdtext = _get_cdtext_image,
|
.get_cdtext = _get_cdtext_image,
|
||||||
.get_devices = cdio_get_devices_nrg,
|
.get_devices = cdio_get_devices_nrg,
|
||||||
.get_default_device = cdio_get_default_device_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_first_track_num= _get_first_track_num_image,
|
||||||
.get_mcn = _get_mcn_image,
|
.get_mcn = _get_mcn_image,
|
||||||
.get_num_tracks = _get_num_tracks_image,
|
.get_num_tracks = _get_num_tracks_image,
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -217,4 +217,29 @@ _set_arg_image (void *user_data, const char key[], const char value[])
|
|||||||
return 0;
|
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__ */
|
#endif /* __CDIO_IMAGE_COMMON_H__ */
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* Common MMC routines.
|
/* 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 <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -31,25 +31,27 @@
|
|||||||
in p. We interpret this and return a bit mask set according to the
|
in p. We interpret this and return a bit mask set according to the
|
||||||
capabilities.
|
capabilities.
|
||||||
*/
|
*/
|
||||||
cdio_drive_cap_t
|
void
|
||||||
cdio_get_drive_cap_mmc(const uint8_t *p)
|
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 */
|
/* Reader */
|
||||||
if (p[2] & 0x02) i_drivetype |= CDIO_DRIVE_CAP_CD_RW;
|
if (p[2] & 0x02) *p_read_cap |= CDIO_DRIVE_CAP_READ_CD_RW;
|
||||||
if (p[2] & 0x08) i_drivetype |= CDIO_DRIVE_CAP_DVD;
|
if (p[2] & 0x08) *p_read_cap |= CDIO_DRIVE_CAP_READ_DVD_ROM;
|
||||||
if (p[5] & 0x01) i_drivetype |= CDIO_DRIVE_CAP_CD_AUDIO;
|
if (p[5] & 0x01) *p_read_cap |= CDIO_DRIVE_CAP_READ_AUDIO;
|
||||||
|
|
||||||
/* Writer */
|
/* Writer */
|
||||||
if (p[3] & 0x01) i_drivetype |= CDIO_DRIVE_CAP_CD_R;
|
if (p[3] & 0x01) *p_write_cap |= CDIO_DRIVE_CAP_WRITE_CD_R;
|
||||||
if (p[3] & 0x10) i_drivetype |= CDIO_DRIVE_CAP_DVD_R;
|
if (p[3] & 0x10) *p_write_cap |= CDIO_DRIVE_CAP_WRITE_DVD_R;
|
||||||
if (p[3] & 0x20) i_drivetype |= CDIO_DRIVE_CAP_DVD_RAM;
|
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] & 0x01) *p_misc_cap |= CDIO_DRIVE_CAP_MISC_LOCK;
|
||||||
if (p[6] & 0x08) i_drivetype |= CDIO_DRIVE_CAP_OPEN_TRAY;
|
if (p[6] & 0x08) *p_misc_cap |= CDIO_DRIVE_CAP_MISC_OPEN_TRAY;
|
||||||
if (p[6] >> 5 != 0)
|
if (p[6] >> 5 != 0)
|
||||||
i_drivetype |= CDIO_DRIVE_CAP_CLOSE_TRAY;
|
*p_misc_cap |= CDIO_DRIVE_CAP_MISC_CLOSE_TRAY;
|
||||||
return i_drivetype;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -229,10 +229,14 @@ main(int argc, const char *argv[])
|
|||||||
cd_drives = cdio_get_devices(DRIVER_DEVICE);
|
cd_drives = cdio_get_devices(DRIVER_DEVICE);
|
||||||
if (NULL != cd_drives)
|
if (NULL != cd_drives)
|
||||||
for( cd = cd_drives; *cd != NULL; cd++ ) {
|
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);
|
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");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,11 +245,15 @@ main(int argc, const char *argv[])
|
|||||||
cd_drives = NULL;
|
cd_drives = NULL;
|
||||||
} else {
|
} else {
|
||||||
/* Print CD-drive info for given source */
|
/* 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);
|
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");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
|
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
|
||||||
@@ -966,8 +966,12 @@ main(int argc, const char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
cdio_drive_cap_t i_drive_cap = cdio_get_drive_cap(cdio);
|
cdio_drive_read_cap_t i_read_cap;
|
||||||
print_drive_capabilities(i_drive_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) {
|
if (opts.list_drives) {
|
||||||
|
|||||||
86
src/util.c
86
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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -87,52 +87,60 @@ fillout_device_name(const char *device_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Prints out drive capabilities */
|
/* Prints out drive capabilities */
|
||||||
void
|
void print_drive_capabilities(cdio_drive_read_cap_t i_read_cap,
|
||||||
print_drive_capabilities(cdio_drive_cap_t i_drive_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) {
|
if (CDIO_DRIVE_CAP_ERROR == i_misc_cap) {
|
||||||
printf("Error in getting drive properties\n");
|
printf("Error in getting drive hardware properties\n");
|
||||||
} else {
|
} else {
|
||||||
printf("Hardware : %s\n",
|
printf(_("Hardware : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_FILE
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_FILE
|
||||||
? "Disk Image" : "CD-ROM or DVD");
|
? "Disk Image" : "CD-ROM or DVD");
|
||||||
printf(_("Can open tray : %s\n"),
|
printf(_("Can open tray : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_OPEN_TRAY ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_OPEN_TRAY ? "Yes" : "No");
|
||||||
printf(_("Can close tray : %s\n"),
|
printf(_("Can close tray : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_CLOSE_TRAY ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_CLOSE_TRAY ? "Yes" : "No");
|
||||||
printf(_("Can disable manual eject: %s\n"),
|
printf(_("Can disable manual eject : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_LOCK ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_LOCK ? "Yes" : "No");
|
||||||
printf(_("Can select juke-box disc: %s\n\n"),
|
printf(_("Can select juke-box disc : %s\n\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_SELECT_DISC ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_SELECT_DISC ? "Yes" : "No");
|
||||||
|
|
||||||
printf(_("Can set drive speed : %s\n"),
|
printf(_("Can set drive speed : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_SELECT_SPEED ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_SELECT_SPEED ? "Yes" : "No");
|
||||||
printf(_("Can detect if CD changed: %s\n"),
|
printf(_("Can detect if CD changed : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_MEDIA_CHANGED ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED ? "Yes" : "No");
|
||||||
printf(_("Can read Media Cat. No. : %s\n"),
|
printf(_("Can read multiple sessions : %s\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_MCN ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_MULTI_SESSION ? "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"),
|
printf(_("Can hard reset device : %s\n\n"),
|
||||||
i_drive_cap & CDIO_DRIVE_CAP_RESET ? "Yes" : "No");
|
i_misc_cap & CDIO_DRIVE_CAP_MISC_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");
|
|
||||||
}
|
}
|
||||||
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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 <rocky@panix.com>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
|
|
||||||
@@ -101,6 +101,9 @@ void print_version (char *program_name, const char *version,
|
|||||||
char *fillout_device_name(const char *device_name);
|
char *fillout_device_name(const char *device_name);
|
||||||
|
|
||||||
/* Prints out drive capabilities */
|
/* 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 */
|
#endif /* UTIL_H */
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
Media Catalog Number (MCN): 0000010271955
|
Media Catalog Number (MCN): 0000010271955
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
Media Catalog Number (MCN): 0000010271955
|
Media Catalog Number (MCN): 0000010271955
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ PARTICULAR PURPOSE.
|
|||||||
Hardware : Disk Image
|
Hardware : Disk Image
|
||||||
Can open tray : No
|
Can open tray : No
|
||||||
Can close tray : No
|
Can close tray : No
|
||||||
Can disable manual eject: No
|
Can disable manual eject : No
|
||||||
Can select juke-box disc: No
|
Can select juke-box disc : No
|
||||||
|
|
||||||
Can set drive speed : No
|
Can set drive speed : No
|
||||||
Can detect if CD changed: No
|
Can detect if CD changed : No
|
||||||
Can read Media Cat. No. : Yes
|
Can read multiple sessions : No
|
||||||
Can read sessions > 1 . : No
|
|
||||||
Can hard reset device : No
|
Can hard reset device : No
|
||||||
|
|
||||||
Compact Disc : Yes
|
Reading....
|
||||||
Can play audio : Yes
|
Can play audio : Yes
|
||||||
Can read CD-RW : No
|
Can read CD-R : Yes
|
||||||
Can write CD-R : No
|
Can read CD-RW : Yes
|
||||||
|
Can read DVD-ROM : No
|
||||||
|
|
||||||
Digital Versital Disc : No
|
Writing....
|
||||||
|
Can write CD-RW : Yes
|
||||||
Can write DVD-R : No
|
Can write DVD-R : No
|
||||||
Can write DVD-RAM : No
|
Can write DVD-RAM : No
|
||||||
__________________________________
|
__________________________________
|
||||||
|
|||||||
Reference in New Issue
Block a user