More lba, lsn confusion.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_osx.c,v 1.5 2003/09/14 17:04:49 rocky Exp $
|
$Id: _cdio_osx.c,v 1.6 2003/09/15 01:37:32 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com> from vcdimager code
|
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com> from vcdimager code
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.5 2003/09/14 17:04:49 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.6 2003/09/15 01:37:32 rocky Exp $";
|
||||||
|
|
||||||
#include <cdio/sector.h>
|
#include <cdio/sector.h>
|
||||||
#include <cdio/util.h>
|
#include <cdio/util.h>
|
||||||
@@ -78,7 +78,7 @@ typedef struct {
|
|||||||
CDTOC *pTOC;
|
CDTOC *pTOC;
|
||||||
int i_descriptors;
|
int i_descriptors;
|
||||||
track_t num_tracks;
|
track_t num_tracks;
|
||||||
lsn_t *pp_lsn;
|
lsn_t *pp_lba;
|
||||||
|
|
||||||
} _img_private_t;
|
} _img_private_t;
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ _cdio_osx_free (void *user_data) {
|
|||||||
_img_private_t *_obj = user_data;
|
_img_private_t *_obj = user_data;
|
||||||
if (NULL == _obj) return;
|
if (NULL == _obj) return;
|
||||||
cdio_generic_free(_obj);
|
cdio_generic_free(_obj);
|
||||||
if (NULL != _obj->pp_lsn) free((void *) _obj->pp_lsn);
|
if (NULL != _obj->pp_lba) free((void *) _obj->pp_lba);
|
||||||
if (NULL != _obj->pTOC) free((void *) _obj->pTOC);
|
if (NULL != _obj->pTOC) free((void *) _obj->pTOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -353,8 +353,8 @@ _cdio_read_toc (_img_private_t *_obj)
|
|||||||
track_t track;
|
track_t track;
|
||||||
int i_tracks;
|
int i_tracks;
|
||||||
|
|
||||||
_obj->pp_lsn = malloc( (_obj->num_tracks + 1) * sizeof(int) );
|
_obj->pp_lba = malloc( (_obj->num_tracks + 1) * sizeof(int) );
|
||||||
if( _obj->pp_lsn == NULL )
|
if( _obj->pp_lba == NULL )
|
||||||
{
|
{
|
||||||
cdio_error("Out of memory in allocating track starting LSNs" );
|
cdio_error("Out of memory in allocating track starting LSNs" );
|
||||||
free( _obj->pTOC );
|
free( _obj->pTOC );
|
||||||
@@ -374,21 +374,21 @@ _cdio_read_toc (_img_private_t *_obj)
|
|||||||
if( track > CDIO_CD_MAX_TRACKS || track < CDIO_CD_MIN_TRACK_NO )
|
if( track > CDIO_CD_MAX_TRACKS || track < CDIO_CD_MIN_TRACK_NO )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
_obj->pp_lsn[i_tracks++] =
|
_obj->pp_lba[i_tracks++] =
|
||||||
cdio_lba_to_lsn(CDConvertMSFToLBA( pTrackDescriptors[i].p ));
|
cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i].p ));
|
||||||
}
|
}
|
||||||
|
|
||||||
if( i_leadout == -1 )
|
if( i_leadout == -1 )
|
||||||
{
|
{
|
||||||
cdio_error( "CD leadout not found" );
|
cdio_error( "CD leadout not found" );
|
||||||
free( _obj->pp_lsn );
|
free( _obj->pp_lba );
|
||||||
free( (void *) _obj->pTOC );
|
free( (void *) _obj->pTOC );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set leadout sector */
|
/* set leadout sector */
|
||||||
_obj->pp_lsn[i_tracks] =
|
_obj->pp_lba[i_tracks] =
|
||||||
cdio_lba_to_lsn(CDConvertMSFToLBA( pTrackDescriptors[i_leadout].p ));
|
cdio_lsn_to_lba(CDConvertMSFToLBA( pTrackDescriptors[i_leadout].p ));
|
||||||
}
|
}
|
||||||
|
|
||||||
_obj->toc_init = true;
|
_obj->toc_init = true;
|
||||||
@@ -405,7 +405,7 @@ _cdio_read_toc (_img_private_t *_obj)
|
|||||||
False is returned if there is no track entry.
|
False is returned if there is no track entry.
|
||||||
*/
|
*/
|
||||||
static lsn_t
|
static lsn_t
|
||||||
_cdio_get_track_lsn(void *user_data, track_t track_num)
|
_cdio_get_track_lba(void *user_data, track_t track_num)
|
||||||
{
|
{
|
||||||
_img_private_t *_obj = user_data;
|
_img_private_t *_obj = user_data;
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ _cdio_get_track_lsn(void *user_data, track_t track_num)
|
|||||||
if (track_num > TOTAL_TRACKS+1 || track_num == 0) {
|
if (track_num > TOTAL_TRACKS+1 || track_num == 0) {
|
||||||
return CDIO_INVALID_LSN;
|
return CDIO_INVALID_LSN;
|
||||||
} else {
|
} else {
|
||||||
return _obj->pp_lsn[track_num-1];
|
return _obj->pp_lba[track_num-1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -477,7 +477,7 @@ _cdio_eject_media (void *user_data) {
|
|||||||
static uint32_t
|
static uint32_t
|
||||||
_cdio_stat_size (void *user_data)
|
_cdio_stat_size (void *user_data)
|
||||||
{
|
{
|
||||||
return _cdio_get_track_lsn(user_data, CDIO_CDROM_LEADOUT_TRACK);
|
return _cdio_get_track_lba(user_data, CDIO_CDROM_LEADOUT_TRACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -639,7 +639,7 @@ cdio_open_osx (const char *source_name)
|
|||||||
.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,
|
||||||
.get_track_lba = _cdio_get_track_lsn,
|
.get_track_lba = _cdio_get_track_lba,
|
||||||
.get_track_msf = NULL,
|
.get_track_msf = NULL,
|
||||||
.lseek = cdio_generic_lseek,
|
.lseek = cdio_generic_lseek,
|
||||||
.read = cdio_generic_read,
|
.read = cdio_generic_read,
|
||||||
|
|||||||
Reference in New Issue
Block a user