image/common.c, Makefile.am: common image routines.

src/cd-info.c, *.right: Now show file images under "drive capability"
bincue.c/nrg.c: report file image "drive capability"
This commit is contained in:
rocky
2004-04-23 01:01:35 +00:00
parent 12762d2d7c
commit b6a67c8d94
22 changed files with 173 additions and 136 deletions

View File

@@ -1,5 +1,5 @@
/*
$Id: nrg.c,v 1.4 2004/03/20 22:46:57 rocky Exp $
$Id: nrg.c,v 1.5 2004/04/23 01:01:37 rocky Exp $
Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org>
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
@@ -48,7 +48,7 @@
#include "cdio_private.h"
#include "_cdio_stdio.h"
static const char _rcsid[] = "$Id: nrg.c,v 1.4 2004/03/20 22:46:57 rocky Exp $";
static const char _rcsid[] = "$Id: nrg.c,v 1.5 2004/04/23 01:01:37 rocky Exp $";
/* structures used */
@@ -177,6 +177,8 @@ typedef struct {
static bool _cdio_parse_nero_footer (_img_private_t *_obj);
static uint32_t _cdio_stat_size (void *env);
#include "image/common.c"
/* Updates internal track TOC, so we can later
simulate ioctl(CDROMREADTOCENTRY).
*/
@@ -1074,30 +1076,6 @@ cdio_get_default_device_nrg(void)
return drive;
}
/*!
Return the number of of the first track.
CDIO_INVALID_TRACK is returned on error.
*/
static track_t
_cdio_get_first_track_num(void *env)
{
_img_private_t *_obj = env;
return _obj->first_track_num;
}
/*!
Return the number of tracks. We fake it an just say there's
one big track.
*/
static track_t
_cdio_get_num_tracks(void *env)
{
_img_private_t *_obj = env;
return _obj->total_tracks;
}
/*!
Return the number of tracks in the current medium.
CDIO_INVALID_TRACK is returned on error.
@@ -1144,28 +1122,6 @@ _cdio_get_track_green(void *env, track_t track_num)
return _obj->tocent[track_num-1].track_green;
}
/*!
Return the starting MSF (minutes/secs/frames) for the track number
track_num in obj. Tracks numbers start at 1.
The "leadout" track is specified either by
using track_num LEADOUT_TRACK or the total tracks+1.
*/
static bool
_cdio_get_track_msf(void *env, track_t track_num, msf_t *msf)
{
_img_private_t *_obj = env;
if (NULL == msf) return 1;
if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = _obj->total_tracks+1;
if (track_num <= _obj->total_tracks+1 && track_num != 0) {
*msf = _obj->tocent[track_num-1].start_msf;
return true;
} else
return false;
}
CdIo *
cdio_open_nrg (const char *source_name)
{
@@ -1178,12 +1134,14 @@ cdio_open_nrg (const char *source_name)
.get_arg = _cdio_get_arg,
.get_devices = cdio_get_devices_nrg,
.get_default_device = cdio_get_default_device_nrg,
.get_first_track_num= _cdio_get_first_track_num,
.get_num_tracks = _cdio_get_num_tracks,
.get_drive_cap = _cdio_image_get_drive_cap,
.get_first_track_num= _cdio_image_get_first_track_num,
.get_mcn = _cdio_image_get_mcn,
.get_num_tracks = _cdio_image_get_num_tracks,
.get_track_format = _cdio_get_track_format,
.get_track_green = _cdio_get_track_green,
.get_track_lba = NULL, /* Will use generic routine via msf */
.get_track_msf = _cdio_get_track_msf,
.get_track_msf = _cdio_image_get_track_msf,
.lseek = _cdio_lseek,
.read = _cdio_read,
.read_audio_sectors = _cdio_read_audio_sectors,