Remove some of the bogus assume 1 is first track.

Renamings: env -> user_data
	   _obj -> env
This commit is contained in:
rocky
2004-06-02 00:43:53 +00:00
parent a26f18d1cd
commit 5e2642af4b
8 changed files with 251 additions and 234 deletions

View File

@@ -1,5 +1,5 @@
/*
$Id: _cdio_linux.c,v 1.48 2004/05/31 12:29:09 rocky Exp $
$Id: _cdio_linux.c,v 1.49 2004/06/02 00:43:53 rocky Exp $
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
@@ -27,7 +27,7 @@
# include "config.h"
#endif
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.48 2004/05/31 12:29:09 rocky Exp $";
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.49 2004/06/02 00:43:53 rocky Exp $";
#include <string.h>
@@ -875,18 +875,18 @@ _get_track_format_linux(void *user_data, track_t i_track)
{
_img_private_t *env = user_data;
if (!env->gen.toc_init) _cdio_read_toc (env) ;
if (i_track > TOTAL_TRACKS || i_track == 0)
return TRACK_FORMAT_ERROR;
i_track -= FIRST_TRACK_NUM;
/* This is pretty much copied from the "badly broken" cdrom_count_tracks
in linux/cdrom.c.
*/
if (env->tocent[i_track-FIRST_TRACK_NUM].cdte_ctrl & CDIO_CDROM_DATA_TRACK) {
if (env->tocent[i_track-FIRST_TRACK_NUM].cdte_format == 0x10)
if (env->tocent[i_track].cdte_ctrl & CDIO_CDROM_DATA_TRACK) {
if (env->tocent[i_track].cdte_format == CDIO_CDROM_CDI_TRACK)
return TRACK_FORMAT_CDI;
else if (env->tocent[i_track-FIRST_TRACK_NUM].cdte_format == 0x20)
else if (env->tocent[i_track].cdte_format == CDIO_CDROM_XA_TRACK)
return TRACK_FORMAT_XA;
else
return TRACK_FORMAT_DATA;