Add get_mcn, although it really only works on GNU/Linux right now.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/* -*- c -*-
|
||||
$Id: cdio.h,v 1.20 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: cdio.h,v 1.21 2003/09/25 09:38:15 rocky Exp $
|
||||
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -130,6 +130,15 @@ extern "C" {
|
||||
*/
|
||||
char * cdio_get_default_device (const CdIo *obj);
|
||||
|
||||
/*!
|
||||
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.
|
||||
|
||||
Note: string is malloc'd so caller has to free() the returned
|
||||
string when done with it.
|
||||
*/
|
||||
char *cdio_get_mcn (const CdIo *obj);
|
||||
|
||||
/*!
|
||||
Return a string containing the name of the driver in use.
|
||||
if CdIo is NULL (we haven't initialized a specific device driver),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_bincue.c,v 1.29 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: _cdio_bincue.c,v 1.30 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2002,2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -24,7 +24,7 @@
|
||||
(*.cue).
|
||||
*/
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_bincue.c,v 1.29 2003/09/20 12:34:02 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_bincue.c,v 1.30 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
#include "cdio_assert.h"
|
||||
#include "cdio_private.h"
|
||||
@@ -95,7 +95,7 @@ typedef struct {
|
||||
} _img_private_t;
|
||||
|
||||
static bool _cdio_image_read_cue (_img_private_t *_obj);
|
||||
static uint32_t _cdio_stat_size (void *user_data);
|
||||
static uint32_t _cdio_stat_size (void *env);
|
||||
|
||||
/*!
|
||||
Initialize image structures.
|
||||
@@ -168,9 +168,9 @@ _cdio_init (_img_private_t *_obj)
|
||||
information in each sector.
|
||||
*/
|
||||
static off_t
|
||||
_cdio_lseek (void *user_data, off_t offset, int whence)
|
||||
_cdio_lseek (void *env, off_t offset, int whence)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
/* real_offset is the real byte offset inside the disk image
|
||||
The number below was determined empirically. I'm guessing
|
||||
@@ -215,9 +215,9 @@ _cdio_lseek (void *user_data, off_t offset, int whence)
|
||||
boundaries.
|
||||
*/
|
||||
static ssize_t
|
||||
_cdio_read (void *user_data, void *data, size_t size)
|
||||
_cdio_read (void *env, void *data, size_t size)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||
char *p = data;
|
||||
ssize_t final_size=0;
|
||||
@@ -266,9 +266,9 @@ _cdio_read (void *user_data, void *data, size_t size)
|
||||
Return the size of the CD in logical block address (LBA) units.
|
||||
*/
|
||||
static uint32_t
|
||||
_cdio_stat_size (void *user_data)
|
||||
_cdio_stat_size (void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
long size;
|
||||
int blocksize = _obj->sector_2336
|
||||
? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE_RAW;
|
||||
@@ -463,10 +463,10 @@ _cdio_image_read_cue (_img_private_t *_obj)
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_audio_sectors (void *env, void *data, lsn_t lsn,
|
||||
unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int ret;
|
||||
|
||||
_cdio_init (_obj);
|
||||
@@ -499,10 +499,10 @@ _cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_mode2_sector (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int ret;
|
||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||
int blocksize = _obj->sector_2336
|
||||
@@ -535,10 +535,10 @@ _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, uint32_t lsn,
|
||||
_cdio_read_mode2_sectors (void *env, void *data, uint32_t lsn,
|
||||
bool mode2_form2, unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int i;
|
||||
int retval;
|
||||
|
||||
@@ -567,9 +567,9 @@ _cdio_read_mode2_sectors (void *user_data, void *data, uint32_t lsn,
|
||||
Set the device to use in I/O operations.
|
||||
*/
|
||||
static int
|
||||
_cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
_cdio_set_arg (void *env, const char key[], const char value[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source"))
|
||||
{
|
||||
@@ -608,9 +608,9 @@ _cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
Return the value associated with the key "arg".
|
||||
*/
|
||||
static const char *
|
||||
_cdio_get_arg (void *user_data, const char key[])
|
||||
_cdio_get_arg (void *env, const char key[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source")) {
|
||||
return _obj->gen.source_name;
|
||||
@@ -634,9 +634,9 @@ cdio_get_default_device_bincue(void)
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_first_track_num(void *user_data)
|
||||
_cdio_get_first_track_num(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
_cdio_init (_obj);
|
||||
|
||||
@@ -650,9 +650,9 @@ _cdio_get_first_track_num(void *user_data)
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_num_tracks(void *user_data)
|
||||
_cdio_get_num_tracks(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
_cdio_init (_obj);
|
||||
|
||||
return _obj->have_cue && _obj->total_tracks > 0 ? _obj->total_tracks : 1;
|
||||
@@ -663,9 +663,9 @@ _cdio_get_num_tracks(void *user_data)
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_format_t
|
||||
_cdio_get_track_format(void *user_data, track_t track_num)
|
||||
_cdio_get_track_format(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->gen.init) _cdio_init(_obj);
|
||||
|
||||
@@ -684,9 +684,9 @@ _cdio_get_track_format(void *user_data, track_t track_num)
|
||||
FIXME: there's gotta be a better design for this and get_track_format?
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_green(void *user_data, track_t track_num)
|
||||
_cdio_get_track_green(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->gen.init) _cdio_init(_obj);
|
||||
|
||||
@@ -704,9 +704,9 @@ _cdio_get_track_green(void *user_data, track_t track_num)
|
||||
1 is returned on error.
|
||||
*/
|
||||
static lba_t
|
||||
_cdio_get_track_lba(void *user_data, track_t track_num)
|
||||
_cdio_get_track_lba(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
_cdio_init (_obj);
|
||||
|
||||
if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = _obj->total_tracks+1;
|
||||
@@ -725,9 +725,9 @@ _cdio_get_track_lba(void *user_data, track_t track_num)
|
||||
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_msf(void *user_data, track_t track_num, msf_t *msf)
|
||||
_cdio_get_track_msf(void *env, track_t track_num, msf_t *msf)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
_cdio_init (_obj);
|
||||
|
||||
if (NULL == msf) return false;
|
||||
@@ -816,6 +816,7 @@ cdio_open_common (_img_private_t **_data)
|
||||
.get_arg = _cdio_get_arg,
|
||||
.get_default_device = cdio_get_default_device_bincue,
|
||||
.get_first_track_num= _cdio_get_first_track_num,
|
||||
.get_mcn = NULL,
|
||||
.get_num_tracks = _cdio_get_num_tracks,
|
||||
.get_track_format = _cdio_get_track_format,
|
||||
.get_track_green = _cdio_get_track_green,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_bsdi.c,v 1.12 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: _cdio_bsdi.c,v 1.13 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2002,2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -27,7 +27,7 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.12 2003/09/20 12:34:02 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.13 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
#include <cdio/sector.h>
|
||||
#include <cdio/util.h>
|
||||
@@ -502,6 +502,7 @@ cdio_open_bsdi (const char *source_name)
|
||||
.get_arg = _cdio_get_arg,
|
||||
.get_default_device = cdio_get_default_device_bsdi,
|
||||
.get_first_track_num= _cdio_get_first_track_num,
|
||||
.get_mcn = NULL,
|
||||
.get_num_tracks = _cdio_get_num_tracks,
|
||||
.get_track_format = _cdio_get_track_format,
|
||||
.get_track_green = _cdio_get_track_green,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_freebsd.c,v 1.15 2003/09/01 15:11:36 rocky Exp $
|
||||
$Id: _cdio_freebsd.c,v 1.16 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_freebsd.c,v 1.15 2003/09/01 15:11:36 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_freebsd.c,v 1.16 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
#include <cdio/sector.h>
|
||||
#include <cdio/util.h>
|
||||
@@ -118,14 +118,15 @@ _read_mode2 (int fd, void *buf, lba_t lba, unsigned int nblocks,
|
||||
Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_audio_sector (void *user_data, void *data, lsn_t lsn)
|
||||
_cdio_read_audio_sectors (void *env, void *data, lsn_t lsn
|
||||
unsigned int nblocks)
|
||||
{
|
||||
unsigned char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||
|
||||
struct cdrom_cdda cdda;
|
||||
|
||||
cdda.cdda_addr = frame;
|
||||
cdda.cdda_length = 1;
|
||||
cdda.cdda_length = nblocks;
|
||||
cdda.cdda_data = buf;
|
||||
cdda.cdda_subcode = CDROM_DA_NO_SUBCODE;
|
||||
|
||||
@@ -144,14 +145,14 @@ _cdio_read_audio_sector (void *user_data, void *data, lsn_t lsn)
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_mode2_sector (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2)
|
||||
{
|
||||
char buf[M2RAW_SECTOR_SIZE] = { 0, };
|
||||
struct cdrom_msf *msf = (struct cdrom_msf *) &buf;
|
||||
msf_t _msf;
|
||||
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf);
|
||||
msf->cdmsf_min0 = from_bcd8(_msf.m);
|
||||
@@ -205,10 +206,10 @@ _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,
|
||||
_cdio_read_mode2_sectors (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2, unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int i;
|
||||
int retval;
|
||||
|
||||
@@ -234,9 +235,9 @@ _cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
Return the size of the CD in logical block address (LBA) units.
|
||||
*/
|
||||
static uint32_t
|
||||
_cdio_stat_size (void *user_data)
|
||||
_cdio_stat_size (void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
struct ioc_read_toc_single_entry tocent;
|
||||
uint32_t size;
|
||||
@@ -258,9 +259,9 @@ _cdio_stat_size (void *user_data)
|
||||
Set the key "arg" to "value" in source device.
|
||||
*/
|
||||
static int
|
||||
_cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
_cdio_set_arg (void *env, const char key[], const char value[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source"))
|
||||
{
|
||||
@@ -320,9 +321,9 @@ _cdio_read_toc (_img_private_t *_obj)
|
||||
Eject media. Return 1 if successful, 0 otherwise.
|
||||
*/
|
||||
static int
|
||||
_cdio_eject_media (void *user_data) {
|
||||
_cdio_eject_media (void *env) {
|
||||
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int ret=2;
|
||||
int status;
|
||||
int fd;
|
||||
@@ -346,9 +347,9 @@ _cdio_eject_media (void *user_data) {
|
||||
Return the value associated with the key "arg".
|
||||
*/
|
||||
static const char *
|
||||
_cdio_get_arg (void *user_data, const char key[])
|
||||
_cdio_get_arg (void *env, const char key[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source")) {
|
||||
return _obj->gen.source_name;
|
||||
@@ -368,9 +369,9 @@ _cdio_get_arg (void *user_data, const char key[])
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_first_track_num(void *user_data)
|
||||
_cdio_get_first_track_num(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -382,9 +383,9 @@ _cdio_get_first_track_num(void *user_data)
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_num_tracks(void *user_data)
|
||||
_cdio_get_num_tracks(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -395,9 +396,9 @@ _cdio_get_num_tracks(void *user_data)
|
||||
Get format of track.
|
||||
*/
|
||||
static track_format_t
|
||||
_cdio_get_track_format(void *user_data, track_t track_num)
|
||||
_cdio_get_track_format(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -425,9 +426,9 @@ _cdio_get_track_format(void *user_data, track_t track_num)
|
||||
FIXME: there's gotta be a better design for this and get_track_format?
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_green(void *user_data, track_t track_num)
|
||||
_cdio_get_track_green(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -450,9 +451,9 @@ _cdio_get_track_green(void *user_data, track_t track_num)
|
||||
False is returned if there is no track entry.
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_msf(void *user_data, track_t track_num, msf_t *msf)
|
||||
_cdio_get_track_msf(void *env, track_t track_num, msf_t *msf)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (NULL == msf) return false;
|
||||
|
||||
@@ -474,7 +475,7 @@ _cdio_get_track_msf(void *user_data, track_t track_num, msf_t *msf)
|
||||
#endif /* HAVE_FREEBSD_CDROM */
|
||||
|
||||
/*!
|
||||
Return a string containing the default VCD device if none is specified.
|
||||
Return a string containing the default CD device if none is specified.
|
||||
*/
|
||||
char *
|
||||
cdio_get_default_device_freebsd()
|
||||
@@ -501,6 +502,7 @@ cdio_open_freebsd (const char *source_name)
|
||||
.get_arg = _cdio_get_arg,
|
||||
.get_default_device = _cdio_get_default_device_freebsd,
|
||||
.get_first_track_num= _cdio_get_first_track_num,
|
||||
.get_mcn = NULL,
|
||||
.get_num_tracks = _cdio_get_num_tracks,
|
||||
.get_track_format = _cdio_get_track_format,
|
||||
.get_track_green = _cdio_get_track_green,
|
||||
@@ -508,7 +510,7 @@ cdio_open_freebsd (const char *source_name)
|
||||
.get_track_msf = _cdio_get_track_msf,
|
||||
.lseek = cdio_generic_lseek,
|
||||
.read = cdio_generic_read,
|
||||
.read_audio_sector = _cdio_read_audio_sector,
|
||||
.read_audio_sectors = _cdio_read_audio_sectors,
|
||||
.read_mode2_sector = _cdio_read_mode2_sector,
|
||||
.read_mode2_sectors = _cdio_read_mode2_sectors,
|
||||
.set_arg = _cdio_set_arg,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_linux.c,v 1.21 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: _cdio_linux.c,v 1.22 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2002,2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -27,7 +27,7 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.21 2003/09/20 12:34:02 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.22 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
#include <string.h>
|
||||
|
||||
@@ -267,10 +267,10 @@ _cdio_mmc_read_sectors (int fd, void *buf, lba_t lba, int sector_type,
|
||||
Can read only up to 25 blocks.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_audio_sectors (void *user_data, void *buf, lsn_t lsn,
|
||||
_cdio_read_audio_sectors (void *env, void *buf, lsn_t lsn,
|
||||
unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
return _cdio_mmc_read_sectors( _obj->gen.fd, buf, lsn,
|
||||
CDIO_MMC_READ_TYPE_CDDA, nblocks);
|
||||
}
|
||||
@@ -358,14 +358,14 @@ _read_packet_mode2_sectors (int fd, void *buf, lba_t lba,
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_mode2_sector (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2)
|
||||
{
|
||||
char buf[M2RAW_SECTOR_SIZE] = { 0, };
|
||||
struct cdrom_msf *msf = (struct cdrom_msf *) &buf;
|
||||
msf_t _msf;
|
||||
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf);
|
||||
msf->cdmsf_min0 = from_bcd8(_msf.m);
|
||||
@@ -425,13 +425,13 @@ _cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_audio_sector (void *user_data, void *data, lsn_t lsn)
|
||||
_cdio_read_audio_sector (void *env, void *data, lsn_t lsn)
|
||||
{
|
||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||
struct cdrom_msf *msf = (struct cdrom_msf *) &buf;
|
||||
msf_t _msf;
|
||||
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
cdio_lsn_to_msf (lsn, &_msf);
|
||||
msf->cdmsf_min0 = from_bcd8(_msf.m);
|
||||
@@ -483,10 +483,10 @@ _cdio_read_audio_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,
|
||||
_cdio_read_mode2_sectors (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2, unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int i;
|
||||
int retval;
|
||||
|
||||
@@ -513,9 +513,9 @@ _cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
Return the size of the CD in logical block address (LBA) units.
|
||||
*/
|
||||
static uint32_t
|
||||
_cdio_stat_size (void *user_data)
|
||||
_cdio_stat_size (void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
struct cdrom_tocentry tocent;
|
||||
uint32_t size;
|
||||
@@ -537,9 +537,9 @@ _cdio_stat_size (void *user_data)
|
||||
Set the key "arg" to "value" in source device.
|
||||
*/
|
||||
static int
|
||||
_cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
_cdio_set_arg (void *env, const char key[], const char value[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source"))
|
||||
{
|
||||
@@ -684,9 +684,9 @@ _cdio_eject_scsi(int fd)
|
||||
Return 0 if success and 1 for failure, and 2 if no routine.
|
||||
*/
|
||||
static int
|
||||
_cdio_eject_media (void *user_data) {
|
||||
_cdio_eject_media (void *env) {
|
||||
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int ret=2;
|
||||
int status;
|
||||
int fd;
|
||||
@@ -731,9 +731,9 @@ _cdio_eject_media (void *user_data) {
|
||||
Return the value associated with the key "arg".
|
||||
*/
|
||||
static const char *
|
||||
_cdio_get_arg (void *user_data, const char key[])
|
||||
_cdio_get_arg (void *env, const char key[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source")) {
|
||||
return _obj->gen.source_name;
|
||||
@@ -757,23 +757,40 @@ _cdio_get_arg (void *user_data, const char key[])
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_first_track_num(void *user_data)
|
||||
_cdio_get_first_track_num(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->gen.toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
return FIRST_TRACK_NUM;
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the media catalog number MCN.
|
||||
|
||||
Note: string is malloc'd so caller should free() then returned
|
||||
string when done with it.
|
||||
|
||||
*/
|
||||
static char *
|
||||
_cdio_get_mcn (void *env) {
|
||||
|
||||
struct cdrom_mcn mcn;
|
||||
_img_private_t *_obj = env;
|
||||
if (ioctl(_obj->gen.fd, CDROM_GET_MCN, &mcn) != 0)
|
||||
return NULL;
|
||||
return strdup(mcn.medium_catalog_number);
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the number of tracks in the current medium.
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_num_tracks(void *user_data)
|
||||
_cdio_get_num_tracks(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->gen.toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -784,9 +801,9 @@ _cdio_get_num_tracks(void *user_data)
|
||||
Get format of track.
|
||||
*/
|
||||
static track_format_t
|
||||
_cdio_get_track_format(void *user_data, track_t track_num)
|
||||
_cdio_get_track_format(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->gen.toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -817,9 +834,9 @@ _cdio_get_track_format(void *user_data, track_t track_num)
|
||||
FIXME: there's gotta be a better design for this and get_track_format?
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_green(void *user_data, track_t track_num)
|
||||
_cdio_get_track_green(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->gen.toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -842,9 +859,9 @@ _cdio_get_track_green(void *user_data, track_t track_num)
|
||||
False is returned if there is no track entry.
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_msf(void *user_data, track_t track_num, msf_t *msf)
|
||||
_cdio_get_track_msf(void *env, track_t track_num, msf_t *msf)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (NULL == msf) return false;
|
||||
|
||||
@@ -945,6 +962,7 @@ cdio_open_linux (const char *orig_source_name)
|
||||
.get_arg = _cdio_get_arg,
|
||||
.get_default_device = cdio_get_default_device_linux,
|
||||
.get_first_track_num= _cdio_get_first_track_num,
|
||||
.get_mcn = _cdio_get_mcn,
|
||||
.get_num_tracks = _cdio_get_num_tracks,
|
||||
.get_track_format = _cdio_get_track_format,
|
||||
.get_track_green = _cdio_get_track_green,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_nrg.c,v 1.17 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: _cdio_nrg.c,v 1.18 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2001,2003 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "cdio_private.h"
|
||||
#include "_cdio_stdio.h"
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_nrg.c,v 1.17 2003/09/20 12:34:02 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_nrg.c,v 1.18 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
/* structures used */
|
||||
|
||||
@@ -143,7 +143,7 @@ typedef struct {
|
||||
} _img_private_t;
|
||||
|
||||
static bool _cdio_parse_nero_footer (_img_private_t *_obj);
|
||||
static uint32_t _cdio_stat_size (void *user_data);
|
||||
static uint32_t _cdio_stat_size (void *env);
|
||||
|
||||
/* Updates internal track TOC, so we can later
|
||||
simulate ioctl(CDROMREADTOCENTRY).
|
||||
@@ -517,9 +517,9 @@ _cdio_init (_img_private_t *_obj)
|
||||
information in each sector.
|
||||
*/
|
||||
static off_t
|
||||
_cdio_lseek (void *user_data, off_t offset, int whence)
|
||||
_cdio_lseek (void *env, off_t offset, int whence)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
/* real_offset is the real byte offset inside the disk image
|
||||
The number below was determined empirically. I'm guessing
|
||||
@@ -576,16 +576,16 @@ _cdio_lseek (void *user_data, off_t offset, int whence)
|
||||
boundaries.
|
||||
*/
|
||||
static ssize_t
|
||||
_cdio_read (void *user_data, void *buf, size_t size)
|
||||
_cdio_read (void *env, void *buf, size_t size)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
return cdio_stream_read(_obj->gen.data_source, buf, size, 1);
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
_cdio_stat_size (void *user_data)
|
||||
_cdio_stat_size (void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
return _obj->size;
|
||||
}
|
||||
@@ -595,10 +595,10 @@ _cdio_stat_size (void *user_data)
|
||||
from LSN. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_audio_sectors (void *env, void *data, lsn_t lsn,
|
||||
unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
CdioListNode *node;
|
||||
|
||||
@@ -635,10 +635,10 @@ _cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
}
|
||||
|
||||
static int
|
||||
_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_mode2_sector (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||
int blocksize = _obj->sector_2336
|
||||
? M2RAW_SECTOR_SIZE : CDIO_CD_FRAMESIZE_RAW;
|
||||
@@ -691,10 +691,10 @@ _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, uint32_t lsn,
|
||||
_cdio_read_mode2_sectors (void *env, void *data, uint32_t lsn,
|
||||
bool mode2_form2, unsigned nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int i;
|
||||
int retval;
|
||||
|
||||
@@ -720,9 +720,9 @@ _cdio_read_mode2_sectors (void *user_data, void *data, uint32_t lsn,
|
||||
Set the device to use in I/O operations.
|
||||
*/
|
||||
static int
|
||||
_cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
_cdio_set_arg (void *env, const char key[], const char value[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source"))
|
||||
{
|
||||
@@ -743,9 +743,9 @@ _cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
Return the value associated with the key "arg".
|
||||
*/
|
||||
static const char *
|
||||
_cdio_get_arg (void *user_data, const char key[])
|
||||
_cdio_get_arg (void *env, const char key[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source")) {
|
||||
return _obj->gen.source_name;
|
||||
@@ -767,9 +767,9 @@ cdio_get_default_device_nrg()
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_first_track_num(void *user_data)
|
||||
_cdio_get_first_track_num(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
return _obj->first_track_num;
|
||||
}
|
||||
@@ -779,9 +779,9 @@ _cdio_get_first_track_num(void *user_data)
|
||||
one big track.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_num_tracks(void *user_data)
|
||||
_cdio_get_num_tracks(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
return _obj->total_tracks;
|
||||
}
|
||||
@@ -791,9 +791,9 @@ _cdio_get_num_tracks(void *user_data)
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_format_t
|
||||
_cdio_get_track_format(void *user_data, track_t track_num)
|
||||
_cdio_get_track_format(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (track_num > _obj->total_tracks || track_num == 0)
|
||||
return TRACK_FORMAT_ERROR;
|
||||
@@ -810,9 +810,9 @@ _cdio_get_track_format(void *user_data, track_t track_num)
|
||||
FIXME: there's gotta be a better design for this and get_track_format?
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_green(void *user_data, track_t track_num)
|
||||
_cdio_get_track_green(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (track_num > _obj->total_tracks || track_num == 0)
|
||||
return false;
|
||||
@@ -827,9 +827,9 @@ _cdio_get_track_green(void *user_data, track_t track_num)
|
||||
using track_num LEADOUT_TRACK or the total tracks+1.
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_msf(void *user_data, track_t track_num, msf_t *msf)
|
||||
_cdio_get_track_msf(void *env, track_t track_num, msf_t *msf)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (NULL == msf) return 1;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_osx.c,v 1.7 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: _cdio_osx.c,v 1.8 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com> from vcdimager code
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
@@ -31,7 +31,7 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.7 2003/09/20 12:34:02 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.8 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
#include <cdio/sector.h>
|
||||
#include <cdio/util.h>
|
||||
@@ -83,8 +83,8 @@ typedef struct {
|
||||
} _img_private_t;
|
||||
|
||||
static void
|
||||
_cdio_osx_free (void *user_data) {
|
||||
_img_private_t *_obj = user_data;
|
||||
_cdio_osx_free (void *env) {
|
||||
_img_private_t *_obj = env;
|
||||
if (NULL == _obj) return;
|
||||
cdio_generic_free(_obj);
|
||||
if (NULL != _obj->pp_lba) free((void *) _obj->pp_lba);
|
||||
@@ -155,10 +155,10 @@ _cdio_read_mode2_form2_sectors (int device_handle, void *data, lsn_t lsn,
|
||||
Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_mode2_sectors (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2, unsigned int nblocks)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
int i;
|
||||
int retval;
|
||||
|
||||
@@ -184,10 +184,10 @@ _cdio_read_mode2_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_audio_sectors (void *env, void *data, lsn_t lsn,
|
||||
unsigned int nblocks)
|
||||
{
|
||||
return _cdio_read_mode2_sectors(user_data, data, lsn, true, nblocks);
|
||||
return _cdio_read_mode2_sectors(env, data, lsn, true, nblocks);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -195,19 +195,19 @@ _cdio_read_audio_sectors (void *user_data, void *data, lsn_t lsn,
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
static int
|
||||
_cdio_read_mode2_sector (void *user_data, void *data, lsn_t lsn,
|
||||
_cdio_read_mode2_sector (void *env, void *data, lsn_t lsn,
|
||||
bool mode2_form2)
|
||||
{
|
||||
return _cdio_read_mode2_sectors(user_data, data, lsn, mode2_form2, 1);
|
||||
return _cdio_read_mode2_sectors(env, data, lsn, mode2_form2, 1);
|
||||
}
|
||||
|
||||
/*!
|
||||
Set the key "arg" to "value" in source device.
|
||||
*/
|
||||
static int
|
||||
_cdio_set_arg (void *user_data, const char key[], const char value[])
|
||||
_cdio_set_arg (void *env, const char key[], const char value[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source"))
|
||||
{
|
||||
@@ -406,9 +406,9 @@ _cdio_read_toc (_img_private_t *_obj)
|
||||
False is returned if there is no track entry.
|
||||
*/
|
||||
static lsn_t
|
||||
_cdio_get_track_lba(void *user_data, track_t track_num)
|
||||
_cdio_get_track_lba(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -432,9 +432,9 @@ _cdio_get_track_lba(void *user_data, track_t track_num)
|
||||
*/
|
||||
|
||||
static int
|
||||
_cdio_eject_media (void *user_data) {
|
||||
_cdio_eject_media (void *env) {
|
||||
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
FILE *p_eject;
|
||||
char *psz_disk;
|
||||
@@ -476,18 +476,18 @@ _cdio_eject_media (void *user_data) {
|
||||
Return the size of the CD in logical block address (LBA) units.
|
||||
*/
|
||||
static uint32_t
|
||||
_cdio_stat_size (void *user_data)
|
||||
_cdio_stat_size (void *env)
|
||||
{
|
||||
return _cdio_get_track_lba(user_data, CDIO_CDROM_LEADOUT_TRACK);
|
||||
return _cdio_get_track_lba(env, CDIO_CDROM_LEADOUT_TRACK);
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the value associated with the key "arg".
|
||||
*/
|
||||
static const char *
|
||||
_cdio_get_arg (void *user_data, const char key[])
|
||||
_cdio_get_arg (void *env, const char key[])
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!strcmp (key, "source")) {
|
||||
return _obj->gen.source_name;
|
||||
@@ -507,9 +507,9 @@ _cdio_get_arg (void *user_data, const char key[])
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_first_track_num(void *user_data)
|
||||
_cdio_get_first_track_num(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -539,9 +539,9 @@ _cdio_get_first_track_num(void *user_data)
|
||||
This is the externally called interface.
|
||||
*/
|
||||
static track_t
|
||||
_cdio_get_num_tracks(void *user_data)
|
||||
_cdio_get_num_tracks(void *env)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
return( _obj->num_tracks );
|
||||
@@ -551,9 +551,9 @@ _cdio_get_num_tracks(void *user_data)
|
||||
Get format of track.
|
||||
*/
|
||||
static track_format_t
|
||||
_cdio_get_track_format(void *user_data, track_t track_num)
|
||||
_cdio_get_track_format(void *env, track_t track_num)
|
||||
{
|
||||
_img_private_t *_obj = user_data;
|
||||
_img_private_t *_obj = env;
|
||||
|
||||
if (!_obj->toc_init) _cdio_read_toc (_obj) ;
|
||||
|
||||
@@ -586,7 +586,7 @@ _cdio_get_track_format(void *user_data, track_t track_num)
|
||||
FIXME: there's gotta be a better design for this and get_track_format?
|
||||
*/
|
||||
static bool
|
||||
_cdio_get_track_green(void *user_data, track_t track_num)
|
||||
_cdio_get_track_green(void *env, track_t track_num)
|
||||
{
|
||||
|
||||
#if 0
|
||||
@@ -637,6 +637,7 @@ cdio_open_osx (const char *source_name)
|
||||
.get_arg = _cdio_get_arg,
|
||||
.get_default_device = cdio_get_default_device_osx,
|
||||
.get_first_track_num= _cdio_get_first_track_num,
|
||||
.get_mcn = NULL, /*there is a readMCN, but how to use? */
|
||||
.get_num_tracks = _cdio_get_num_tracks,
|
||||
.get_track_format = _cdio_get_track_format,
|
||||
.get_track_green = _cdio_get_track_green,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: _cdio_win32.c,v 1.13 2003/09/21 06:10:59 rocky Exp $
|
||||
$Id: _cdio_win32.c,v 1.14 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
static const char _rcsid[] = "$Id: _cdio_win32.c,v 1.13 2003/09/21 06:10:59 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: _cdio_win32.c,v 1.14 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
#include <cdio/cdio.h>
|
||||
#include <cdio/sector.h>
|
||||
@@ -1076,6 +1076,7 @@ cdio_open_win32 (const char *source_name)
|
||||
.get_arg = _cdio_get_arg,
|
||||
.get_default_device = cdio_get_default_device_win32,
|
||||
.get_first_track_num= _cdio_get_first_track_num,
|
||||
.get_mcn = NULL,
|
||||
.get_num_tracks = _cdio_get_num_tracks,
|
||||
.get_track_format = _cdio_get_track_format,
|
||||
.get_track_green = _cdio_get_track_green,
|
||||
|
||||
61
lib/cdio.c
61
lib/cdio.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: cdio.c,v 1.26 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: cdio.c,v 1.27 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
@@ -35,7 +35,7 @@
|
||||
#include <cdio/logging.h>
|
||||
#include "cdio_private.h"
|
||||
|
||||
static const char _rcsid[] = "$Id: cdio.c,v 1.26 2003/09/20 12:34:02 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: cdio.c,v 1.27 2003/09/25 09:38:16 rocky Exp $";
|
||||
|
||||
|
||||
const char *track_format2str[6] =
|
||||
@@ -171,7 +171,7 @@ cdio_eject_media (CdIo **obj)
|
||||
if ((obj == NULL) || (*obj == NULL)) return 1;
|
||||
|
||||
if ((*obj)->op.eject_media) {
|
||||
int ret = (*obj)->op.eject_media ((*obj)->user_data);
|
||||
int ret = (*obj)->op.eject_media ((*obj)->env);
|
||||
if (0 == ret) {
|
||||
cdio_destroy(*obj);
|
||||
*obj = NULL;
|
||||
@@ -194,7 +194,7 @@ cdio_get_arg (const CdIo *obj, const char key[])
|
||||
if (obj == NULL) return NULL;
|
||||
|
||||
if (obj->op.get_arg) {
|
||||
return obj->op.get_arg (obj->user_data, key);
|
||||
return obj->op.get_arg (obj->env, key);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
@@ -257,12 +257,27 @@ cdio_get_first_track_num (const CdIo *obj)
|
||||
cdio_assert (obj != NULL);
|
||||
|
||||
if (obj->op.get_first_track_num) {
|
||||
return obj->op.get_first_track_num (obj->user_data);
|
||||
return obj->op.get_first_track_num (obj->env);
|
||||
} else {
|
||||
return CDIO_INVALID_TRACK;
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
Return a string containing the name of the driver in use.
|
||||
if CdIo is NULL (we haven't initialized a specific device driver),
|
||||
then return NULL.
|
||||
*/
|
||||
char *
|
||||
cdio_get_mcn (const CdIo *obj)
|
||||
{
|
||||
if (obj->op.get_mcn) {
|
||||
return obj->op.get_mcn (obj->env);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the number of tracks in the current medium.
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
@@ -273,7 +288,7 @@ cdio_get_num_tracks (const CdIo *obj)
|
||||
if (obj == NULL) return CDIO_INVALID_TRACK;
|
||||
|
||||
if (obj->op.get_num_tracks) {
|
||||
return obj->op.get_num_tracks (obj->user_data);
|
||||
return obj->op.get_num_tracks (obj->env);
|
||||
} else {
|
||||
return CDIO_INVALID_TRACK;
|
||||
}
|
||||
@@ -288,7 +303,7 @@ cdio_get_track_format(const CdIo *obj, track_t track_num)
|
||||
cdio_assert (obj != NULL);
|
||||
|
||||
if (obj->op.get_track_format) {
|
||||
return obj->op.get_track_format (obj->user_data, track_num);
|
||||
return obj->op.get_track_format (obj->env, track_num);
|
||||
} else {
|
||||
return TRACK_FORMAT_ERROR;
|
||||
}
|
||||
@@ -308,7 +323,7 @@ cdio_get_track_green(const CdIo *obj, track_t track_num)
|
||||
cdio_assert (obj != NULL);
|
||||
|
||||
if (obj->op.get_track_green) {
|
||||
return obj->op.get_track_green (obj->user_data, track_num);
|
||||
return obj->op.get_track_green (obj->env, track_num);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@@ -327,7 +342,7 @@ cdio_get_track_lba(const CdIo *obj, track_t track_num)
|
||||
if (obj == NULL) return CDIO_INVALID_LBA;
|
||||
|
||||
if (obj->op.get_track_lba) {
|
||||
return obj->op.get_track_lba (obj->user_data, track_num);
|
||||
return obj->op.get_track_lba (obj->env, track_num);
|
||||
} else {
|
||||
msf_t msf;
|
||||
if (obj->op.get_track_msf)
|
||||
@@ -350,7 +365,7 @@ cdio_get_track_lsn(const CdIo *obj, track_t track_num)
|
||||
if (obj == NULL) return CDIO_INVALID_LBA;
|
||||
|
||||
if (obj->op.get_track_lba) {
|
||||
return cdio_lba_to_lsn(obj->op.get_track_lba (obj->user_data, track_num));
|
||||
return cdio_lba_to_lsn(obj->op.get_track_lba (obj->env, track_num));
|
||||
} else {
|
||||
msf_t msf;
|
||||
if (cdio_get_track_msf(obj, track_num, &msf))
|
||||
@@ -372,9 +387,9 @@ cdio_get_track_msf(const CdIo *obj, track_t track_num, /*out*/ msf_t *msf)
|
||||
cdio_assert (obj != NULL);
|
||||
|
||||
if (obj->op.get_track_msf) {
|
||||
return obj->op.get_track_msf (obj->user_data, track_num, msf);
|
||||
return obj->op.get_track_msf (obj->env, track_num, msf);
|
||||
} else if (obj->op.get_track_lba) {
|
||||
lba_t lba = obj->op.get_track_lba (obj->user_data, track_num);
|
||||
lba_t lba = obj->op.get_track_lba (obj->env, track_num);
|
||||
if (lba == CDIO_INVALID_LBA) return false;
|
||||
cdio_lba_to_msf(lba, msf);
|
||||
return true;
|
||||
@@ -443,13 +458,13 @@ cdio_init(void)
|
||||
}
|
||||
|
||||
CdIo *
|
||||
cdio_new (void *user_data, const cdio_funcs *funcs)
|
||||
cdio_new (void *env, const cdio_funcs *funcs)
|
||||
{
|
||||
CdIo *new_obj;
|
||||
|
||||
new_obj = _cdio_malloc (sizeof (CdIo));
|
||||
|
||||
new_obj->user_data = user_data;
|
||||
new_obj->env = env;
|
||||
new_obj->op = *funcs;
|
||||
|
||||
return new_obj;
|
||||
@@ -465,7 +480,7 @@ cdio_destroy (CdIo *obj)
|
||||
if (obj == NULL) return;
|
||||
|
||||
if (obj->op.free != NULL)
|
||||
obj->op.free (obj->user_data);
|
||||
obj->op.free (obj->env);
|
||||
free (obj);
|
||||
}
|
||||
|
||||
@@ -480,7 +495,7 @@ cdio_lseek (const CdIo *obj, off_t offset, int whence)
|
||||
if (obj == NULL) return -1;
|
||||
|
||||
if (obj->op.lseek)
|
||||
return obj->op.lseek (obj->user_data, offset, whence);
|
||||
return obj->op.lseek (obj->env, offset, whence);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -495,7 +510,7 @@ cdio_read (const CdIo *obj, void *buf, size_t size)
|
||||
if (obj == NULL) return -1;
|
||||
|
||||
if (obj->op.read)
|
||||
return obj->op.read (obj->user_data, buf, size);
|
||||
return obj->op.read (obj->env, buf, size);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -506,7 +521,7 @@ cdio_read_audio_sector (const CdIo *obj, void *buf, lsn_t lsn)
|
||||
cdio_assert (buf != NULL);
|
||||
|
||||
if (obj->op.read_audio_sectors != NULL)
|
||||
return obj->op.read_audio_sectors (obj->user_data, buf, lsn, 1);
|
||||
return obj->op.read_audio_sectors (obj->env, buf, lsn, 1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -518,7 +533,7 @@ cdio_read_audio_sectors (const CdIo *obj, void *buf, lsn_t lsn,
|
||||
cdio_assert (buf != NULL);
|
||||
|
||||
if (obj->op.read_audio_sectors != NULL)
|
||||
return obj->op.read_audio_sectors (obj->user_data, buf, lsn, nblocks);
|
||||
return obj->op.read_audio_sectors (obj->env, buf, lsn, nblocks);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -585,7 +600,7 @@ cdio_read_mode2_sector (const CdIo *obj, void *buf, lsn_t lsn,
|
||||
|| obj->op.read_mode2_sectors != NULL);
|
||||
|
||||
if (obj->op.read_mode2_sector)
|
||||
return obj->op.read_mode2_sector (obj->user_data, buf, lsn, is_form2);
|
||||
return obj->op.read_mode2_sector (obj->env, buf, lsn, is_form2);
|
||||
|
||||
/* fallback */
|
||||
if (obj->op.read_mode2_sectors != NULL)
|
||||
@@ -601,7 +616,7 @@ cdio_read_mode2_sectors (const CdIo *obj, void *buf, lsn_t lsn, bool mode2raw,
|
||||
cdio_assert (buf != NULL);
|
||||
cdio_assert (obj->op.read_mode2_sectors != NULL);
|
||||
|
||||
return obj->op.read_mode2_sectors (obj->user_data, buf, lsn,
|
||||
return obj->op.read_mode2_sectors (obj->env, buf, lsn,
|
||||
mode2raw, num_sectors);
|
||||
}
|
||||
|
||||
@@ -610,7 +625,7 @@ cdio_stat_size (const CdIo *obj)
|
||||
{
|
||||
cdio_assert (obj != NULL);
|
||||
|
||||
return obj->op.stat_size (obj->user_data);
|
||||
return obj->op.stat_size (obj->env);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -623,7 +638,7 @@ cdio_set_arg (CdIo *obj, const char key[], const char value[])
|
||||
cdio_assert (obj->op.set_arg != NULL);
|
||||
cdio_assert (key != NULL);
|
||||
|
||||
return obj->op.set_arg (obj->user_data, key, value);
|
||||
return obj->op.set_arg (obj->env, key, value);
|
||||
}
|
||||
|
||||
static CdIo *
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: cdio_private.h,v 1.13 2003/09/20 12:34:02 rocky Exp $
|
||||
$Id: cdio_private.h,v 1.14 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
@@ -43,34 +43,40 @@ extern "C" {
|
||||
Eject media in CD drive. If successful, as a side effect we
|
||||
also free obj. Return 0 if success and 1 for failure.
|
||||
*/
|
||||
int (*eject_media) (void *user_data);
|
||||
int (*eject_media) (void *env);
|
||||
|
||||
/*!
|
||||
Release and free resources associated with cd.
|
||||
*/
|
||||
void (*free) (void *user_data);
|
||||
void (*free) (void *env);
|
||||
|
||||
/*!
|
||||
Return the value associated with the key "arg".
|
||||
*/
|
||||
const char * (*get_arg) (void *user_data, const char key[]);
|
||||
const char * (*get_arg) (void *env, const char key[]);
|
||||
|
||||
/*!
|
||||
Return a string containing the default CD device if none is specified.
|
||||
*/
|
||||
char * (*get_default_device)(void);
|
||||
|
||||
/*!
|
||||
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.
|
||||
*/
|
||||
char * (*get_mcn) (void *env);
|
||||
|
||||
/*!
|
||||
Return the number of of the first track.
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
track_t (*get_first_track_num) (void *user_data);
|
||||
track_t (*get_first_track_num) (void *env);
|
||||
|
||||
/*!
|
||||
Return the number of tracks in the current medium.
|
||||
CDIO_INVALID_TRACK is returned on error.
|
||||
*/
|
||||
track_t (*get_num_tracks) (void *user_data);
|
||||
track_t (*get_num_tracks) (void *env);
|
||||
|
||||
/*!
|
||||
Return the starting LBA for track number
|
||||
@@ -79,12 +85,12 @@ extern "C" {
|
||||
using track_num LEADOUT_TRACK or the total tracks+1.
|
||||
CDIO_INVALID_LBA is returned on error.
|
||||
*/
|
||||
lba_t (*get_track_lba) (void *user_data, track_t track_num);
|
||||
lba_t (*get_track_lba) (void *env, track_t track_num);
|
||||
|
||||
/*!
|
||||
Get format of track.
|
||||
*/
|
||||
track_format_t (*get_track_format) (void *user_data, track_t track_num);
|
||||
track_format_t (*get_track_format) (void *env, track_t track_num);
|
||||
|
||||
/*!
|
||||
Return true if we have XA data (green, mode2 form1) or
|
||||
@@ -94,7 +100,7 @@ extern "C" {
|
||||
|
||||
FIXME: there's gotta be a better design for this and get_track_format?
|
||||
*/
|
||||
bool (*get_track_green) (void *user_data, track_t track_num);
|
||||
bool (*get_track_green) (void *env, track_t track_num);
|
||||
|
||||
/*!
|
||||
Return the starting MSF (minutes/secs/frames) for track number
|
||||
@@ -103,34 +109,34 @@ extern "C" {
|
||||
using track_num LEADOUT_TRACK or the total tracks+1.
|
||||
False is returned on error.
|
||||
*/
|
||||
bool (*get_track_msf) (void *user_data, track_t track_num, msf_t *msf);
|
||||
bool (*get_track_msf) (void *env, track_t track_num, msf_t *msf);
|
||||
|
||||
/*!
|
||||
lseek - reposition read/write file offset
|
||||
Returns (off_t) -1 on error.
|
||||
Similar to libc's lseek()
|
||||
*/
|
||||
off_t (*lseek) (void *user_data, off_t offset, int whence);
|
||||
off_t (*lseek) (void *env, off_t offset, int whence);
|
||||
|
||||
/*!
|
||||
Reads into buf the next size bytes.
|
||||
Returns -1 on error.
|
||||
Similar to libc's read()
|
||||
*/
|
||||
ssize_t (*read) (void *user_data, void *buf, size_t size);
|
||||
ssize_t (*read) (void *env, void *buf, size_t size);
|
||||
|
||||
/*!
|
||||
Reads a single mode2 sector from cd device into buf starting
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
int (*read_audio_sectors) (void *user_data, void *buf, lsn_t lsn,
|
||||
int (*read_audio_sectors) (void *env, void *buf, lsn_t lsn,
|
||||
unsigned int nblocks);
|
||||
|
||||
/*!
|
||||
Reads a single mode2 sector from cd device into buf starting
|
||||
from lsn. Returns 0 if no error.
|
||||
*/
|
||||
int (*read_mode2_sector) (void *user_data, void *buf, lsn_t lsn,
|
||||
int (*read_mode2_sector) (void *env, void *buf, lsn_t lsn,
|
||||
bool mode2raw);
|
||||
|
||||
/*!
|
||||
@@ -138,18 +144,18 @@ extern "C" {
|
||||
from lsn.
|
||||
Returns 0 if no error.
|
||||
*/
|
||||
int (*read_mode2_sectors) (void *user_data, void *buf, lsn_t lsn,
|
||||
int (*read_mode2_sectors) (void *env, void *buf, lsn_t lsn,
|
||||
bool mode2raw, unsigned int nblocks);
|
||||
|
||||
/*!
|
||||
Set the arg "key" with "value" in the source device.
|
||||
*/
|
||||
int (*set_arg) (void *user_data, const char key[], const char value[]);
|
||||
int (*set_arg) (void *env, const char key[], const char value[]);
|
||||
|
||||
/*!
|
||||
Return the size of the CD in logical block address (LBA) units.
|
||||
*/
|
||||
uint32_t (*stat_size) (void *user_data);
|
||||
uint32_t (*stat_size) (void *env);
|
||||
|
||||
} cdio_funcs;
|
||||
|
||||
@@ -158,7 +164,7 @@ extern "C" {
|
||||
struct _CdIo {
|
||||
driver_id_t driver_id; /* Particular driver opened. */
|
||||
cdio_funcs op; /* driver-specific routines handling implimentatin*/
|
||||
void *user_data; /* environment. Passed to routine above. */
|
||||
void *env; /* environment. Passed to routine above. */
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -191,7 +197,7 @@ extern "C" {
|
||||
lba_t lba; /* Current LBA */
|
||||
} internal_position_t;
|
||||
|
||||
CdIo * cdio_new (void *user_data, const cdio_funcs *funcs);
|
||||
CdIo * cdio_new (void *env, const cdio_funcs *funcs);
|
||||
|
||||
/* The below structure describes a specific CD Input driver */
|
||||
typedef struct
|
||||
@@ -225,36 +231,36 @@ extern "C" {
|
||||
Bogus eject media when there is no ejectable media, e.g. a disk image
|
||||
We always return 2. Should we also free resources?
|
||||
*/
|
||||
int cdio_generic_bogus_eject_media (void *user_data);
|
||||
int cdio_generic_bogus_eject_media (void *env);
|
||||
|
||||
/*!
|
||||
Release and free resources associated with cd.
|
||||
*/
|
||||
void cdio_generic_free (void *user_data);
|
||||
void cdio_generic_free (void *env);
|
||||
|
||||
/*!
|
||||
Initialize CD device.
|
||||
*/
|
||||
bool cdio_generic_init (void *user_data);
|
||||
bool cdio_generic_init (void *env);
|
||||
|
||||
/*!
|
||||
Reads into buf the next size bytes.
|
||||
Returns -1 on error.
|
||||
Is in fact libc's read().
|
||||
*/
|
||||
off_t cdio_generic_lseek (void *user_data, off_t offset, int whence);
|
||||
off_t cdio_generic_lseek (void *env, off_t offset, int whence);
|
||||
|
||||
/*!
|
||||
Reads into buf the next size bytes.
|
||||
Returns -1 on error.
|
||||
Is in fact libc's read().
|
||||
*/
|
||||
ssize_t cdio_generic_read (void *user_data, void *buf, size_t size);
|
||||
ssize_t cdio_generic_read (void *env, void *buf, size_t size);
|
||||
|
||||
/*!
|
||||
Release and free resources associated with stream or disk image.
|
||||
*/
|
||||
void cdio_generic_stream_free (void *user_data);
|
||||
void cdio_generic_stream_free (void *env);
|
||||
|
||||
/*!
|
||||
Return true if source_name could be a device containing a CD-ROM on
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: cd-info.c,v 1.37 2003/09/21 04:36:41 rocky Exp $
|
||||
$Id: cd-info.c,v 1.38 2003/09/25 09:38:16 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
Copyright (C) 1996,1997,1998 Gerd Knorr <kraxel@bytesex.org>
|
||||
@@ -66,7 +66,6 @@
|
||||
#endif
|
||||
|
||||
#if CDIO_IOCTL_FINISHED
|
||||
struct cdrom_mcn mcn;
|
||||
struct cdrom_multisession ms;
|
||||
struct cdrom_subchnl sub;
|
||||
#endif
|
||||
@@ -736,6 +735,7 @@ main(int argc, const char *argv[])
|
||||
int first_data = -1; /* # of first data track */
|
||||
int first_audio = -1; /* # of first audio track */
|
||||
cdio_analysis_t cdio_analysis;
|
||||
char *media_catalog_number;
|
||||
|
||||
memset(&cdio_analysis, 0, sizeof(cdio_analysis));
|
||||
init();
|
||||
@@ -845,19 +845,21 @@ main(int argc, const char *argv[])
|
||||
if (i == num_tracks) i = CDIO_CDROM_LEADOUT_TRACK-1;
|
||||
}
|
||||
|
||||
/* get MCN */
|
||||
media_catalog_number = cdio_get_mcn(cdio);
|
||||
printf("Get MCN : "); fflush(stdout);
|
||||
if (NULL == media_catalog_number)
|
||||
printf("not available\n");
|
||||
else {
|
||||
printf("%s\n", media_catalog_number);
|
||||
free(media_catalog_number);
|
||||
}
|
||||
|
||||
|
||||
#if CDIO_IOCTL_FINISHED
|
||||
if (!opts.no_ioctl) {
|
||||
printf(STRONG "What ioctl's report...\n" NORMAL);
|
||||
|
||||
#ifdef CDROM_GET_MCN
|
||||
/* get mcn */
|
||||
printf("Get MCN : "); fflush(stdout);
|
||||
if (ioctl(filehandle,CDROM_GET_MCN, &mcn))
|
||||
printf("FAILED\n");
|
||||
else
|
||||
printf("%s\n",mcn.medium_catalog_number);
|
||||
#endif
|
||||
|
||||
#ifdef CDROM_DISC_STATUS
|
||||
/* get disk status */
|
||||
printf("disc status : "); fflush(stdout);
|
||||
|
||||
@@ -6,6 +6,7 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 audio
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
Audio CD, CDDB disc ID is 02000401
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
This is free software; see the source for copying conditions.
|
||||
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE.
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
This is free software; see the source for copying conditions.
|
||||
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE.
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -6,3 +6,4 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
|
||||
@@ -6,3 +6,4 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
|
||||
@@ -6,6 +6,7 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -6,6 +6,7 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -6,6 +6,7 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -6,6 +6,7 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -6,6 +6,7 @@ CD-ROM Track List (1 - 1)
|
||||
#: MSF LSN Type
|
||||
1: 00:02:00 000000 data
|
||||
170: 00:06:02 000302 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -7,6 +7,7 @@ CD-ROM Track List (1 - 2)
|
||||
1: 00:02:00 000000 XA
|
||||
2: 00:18:51 001251 XA
|
||||
170: 00:39:71 002846 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with CD-RTOS and ISO 9660 filesystem
|
||||
|
||||
@@ -7,6 +7,7 @@ CD-ROM Track List (1 - 2)
|
||||
1: 00:02:00 000000 XA
|
||||
2: 00:09:01 000526 XA
|
||||
170: 00:56:56 004106 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with CD-RTOS and ISO 9660 filesystem
|
||||
@@ -48,5 +49,5 @@ ISO9660 filesystem
|
||||
- ----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00 tracks.svd
|
||||
|
||||
XA sectors Super Video CD (SVCD) or Chaoji Video CD (CVD)
|
||||
session #2 starts at track 2, LSN: 526, ISO 9660 blocks: 376
|
||||
session #2 starts at track 2, LSN: 526, ISO 9660 blocks: 376
|
||||
ISO 9660: 376 blocks, label `SVCD_OGT_TEST_NTSC '
|
||||
|
||||
@@ -7,6 +7,7 @@ CD-ROM Track List (1 - 2)
|
||||
1: 00:02:00 000000 XA
|
||||
2: 00:22:53 001553 XA
|
||||
170: 01:17:62 005687 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with ISO 9660 filesystem
|
||||
|
||||
@@ -8,6 +8,7 @@ CD-ROM Track List (1 - 3)
|
||||
2: 00:17:57 001182 XA
|
||||
3: 00:24:71 001721 XA
|
||||
170: 00:30:10 002110 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with CD-RTOS and ISO 9660 filesystem
|
||||
@@ -92,5 +93,5 @@ publisher id: `LAURENS KOEHOORN'
|
||||
preparer id: `LKVCDIMAGER 5.0.7.10(WIN32)'
|
||||
application id: `'
|
||||
|
||||
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
|
||||
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
|
||||
ISO 9660: 1032 blocks, label `V0469 '
|
||||
|
||||
@@ -10,6 +10,7 @@ CD-ROM Track List (1 - 5)
|
||||
4: 00:19:01 001276 XA
|
||||
5: 00:22:01 001501 XA
|
||||
170: 00:25:01 001726 leadout
|
||||
Get MCN : not available
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
CD-ROM with CD-RTOS and ISO 9660 filesystem
|
||||
@@ -56,5 +57,5 @@ ISO9660 filesystem
|
||||
- ----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00 tracks.svd
|
||||
|
||||
XA sectors Super Video CD (SVCD) or Chaoji Video CD (CVD)
|
||||
session #2 starts at track 2, LSN: 826, ISO 9660 blocks: 676
|
||||
session #2 starts at track 2, LSN: 826, ISO 9660 blocks: 676
|
||||
ISO 9660: 676 blocks, label `SVIDEOCD '
|
||||
|
||||
Reference in New Issue
Block a user