Add image driver track flag reporting. Reorganize code for image drivers
a little better (via image_common.c). Update regression tests for more expanded cd-info output.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: cdrdao.c,v 1.2 2004/12/31 05:47:36 rocky Exp $
|
||||
$Id: cdrdao.c,v 1.3 2004/12/31 07:51:43 rocky Exp $
|
||||
|
||||
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||
toc reading routine adapted from cuetools
|
||||
@@ -25,7 +25,7 @@
|
||||
(*.cue).
|
||||
*/
|
||||
|
||||
static const char _rcsid[] = "$Id: cdrdao.c,v 1.2 2004/12/31 05:47:36 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: cdrdao.c,v 1.3 2004/12/31 07:51:43 rocky Exp $";
|
||||
|
||||
#include "image.h"
|
||||
#include "cdio_assert.h"
|
||||
@@ -64,26 +64,12 @@ static const char _rcsid[] = "$Id: cdrdao.c,v 1.2 2004/12/31 05:47:36 rocky Exp
|
||||
#define DEFAULT_CDIO_DEVICE "videocd.bin"
|
||||
#define DEFAULT_CDIO_CDRDAO "videocd.toc"
|
||||
|
||||
typedef struct {
|
||||
/* Things common to all drivers like this.
|
||||
This must be first. */
|
||||
generic_img_private_t gen;
|
||||
internal_position_t pos;
|
||||
|
||||
char *psz_cue_name;
|
||||
char *psz_mcn; /* Media Catalog Number (5.22.3)
|
||||
exactly 13 bytes */
|
||||
track_info_t tocent[CDIO_CD_MAX_TRACKS+1]; /* entry info for each track
|
||||
add 1 for leadout. */
|
||||
discmode_t disc_mode;
|
||||
} _img_private_t;
|
||||
|
||||
static uint32_t _stat_size_cdrdao (void *user_data);
|
||||
static bool parse_tocfile (_img_private_t *cd, const char *toc_name);
|
||||
|
||||
#define NEED_MEDIA_EJECT_IMAGE
|
||||
#include "image_common.h"
|
||||
|
||||
static uint32_t _stat_size_cdrdao (void *p_user_data);
|
||||
static bool parse_tocfile (_img_private_t *cd, const char *p_toc_name);
|
||||
|
||||
|
||||
/*!
|
||||
Initialize image structures.
|
||||
*/
|
||||
@@ -1132,31 +1118,34 @@ cdio_open_cdrdao (const char *psz_cue_name)
|
||||
|
||||
memset( &_funcs, 0, sizeof(_funcs) );
|
||||
|
||||
_funcs.eject_media = _eject_media_image;
|
||||
_funcs.free = _free_image;
|
||||
_funcs.get_arg = _get_arg_image;
|
||||
_funcs.get_cdtext = get_cdtext_generic;
|
||||
_funcs.get_devices = cdio_get_devices_cdrdao;
|
||||
_funcs.get_default_device = cdio_get_default_device_cdrdao;
|
||||
_funcs.get_discmode = _get_discmode_image;
|
||||
_funcs.get_drive_cap = _get_drive_cap_image;
|
||||
_funcs.get_first_track_num= _get_first_track_num_image;
|
||||
_funcs.get_hwinfo = get_hwinfo_cdrdao;
|
||||
_funcs.get_mcn = _get_mcn_image;
|
||||
_funcs.get_num_tracks = _get_num_tracks_image;
|
||||
_funcs.get_track_format = _get_track_format_cdrdao;
|
||||
_funcs.get_track_green = _get_track_green_cdrdao;
|
||||
_funcs.get_track_lba = _get_lba_track_cdrdao;
|
||||
_funcs.get_track_msf = _get_track_msf_image;
|
||||
_funcs.lseek = _lseek_cdrdao;
|
||||
_funcs.read = _read_cdrdao;
|
||||
_funcs.read_audio_sectors = _read_audio_sectors_cdrdao;
|
||||
_funcs.read_mode1_sector = _read_mode1_sector_cdrdao;
|
||||
_funcs.read_mode1_sectors = _read_mode1_sectors_cdrdao;
|
||||
_funcs.read_mode2_sector = _read_mode2_sector_cdrdao;
|
||||
_funcs.read_mode2_sectors = _read_mode2_sectors_cdrdao;
|
||||
_funcs.set_arg = _set_arg_image;
|
||||
_funcs.stat_size = _stat_size_cdrdao;
|
||||
_funcs.eject_media = _eject_media_image;
|
||||
_funcs.free = _free_image;
|
||||
_funcs.get_arg = _get_arg_image;
|
||||
_funcs.get_cdtext = get_cdtext_generic;
|
||||
_funcs.get_devices = cdio_get_devices_cdrdao;
|
||||
_funcs.get_default_device = cdio_get_default_device_cdrdao;
|
||||
_funcs.get_discmode = _get_discmode_image;
|
||||
_funcs.get_drive_cap = _get_drive_cap_image;
|
||||
_funcs.get_first_track_num = _get_first_track_num_image;
|
||||
_funcs.get_hwinfo = get_hwinfo_cdrdao;
|
||||
_funcs.get_mcn = _get_mcn_image;
|
||||
_funcs.get_num_tracks = _get_num_tracks_image;
|
||||
_funcs.get_track_channels = get_track_channels_image,
|
||||
_funcs.get_track_copy_permit = get_track_copy_permit_image,
|
||||
_funcs.get_track_format = _get_track_format_cdrdao;
|
||||
_funcs.get_track_green = _get_track_green_cdrdao;
|
||||
_funcs.get_track_lba = _get_lba_track_cdrdao;
|
||||
_funcs.get_track_msf = _get_track_msf_image;
|
||||
_funcs.get_track_preemphasis = get_track_preemphasis_image,
|
||||
_funcs.lseek = _lseek_cdrdao;
|
||||
_funcs.read = _read_cdrdao;
|
||||
_funcs.read_audio_sectors = _read_audio_sectors_cdrdao;
|
||||
_funcs.read_mode1_sector = _read_mode1_sector_cdrdao;
|
||||
_funcs.read_mode1_sectors = _read_mode1_sectors_cdrdao;
|
||||
_funcs.read_mode2_sector = _read_mode2_sector_cdrdao;
|
||||
_funcs.read_mode2_sectors = _read_mode2_sectors_cdrdao;
|
||||
_funcs.set_arg = _set_arg_image;
|
||||
_funcs.stat_size = _stat_size_cdrdao;
|
||||
|
||||
if (NULL == psz_cue_name) return NULL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user