_cdio_sunos.c: fix bug in audio mode reading.
*.c: replcate {from,to}_bcd8 with corresponding cdio_ names.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_sunos.c,v 1.78 2004/11/13 23:36:22 rocky Exp $
|
$Id: _cdio_sunos.c,v 1.79 2004/11/18 01:56:09 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#ifdef HAVE_SOLARIS_CDROM
|
#ifdef HAVE_SOLARIS_CDROM
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.78 2004/11/13 23:36:22 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.79 2004/11/18 01:56:09 rocky Exp $";
|
||||||
|
|
||||||
#ifdef HAVE_GLOB_H
|
#ifdef HAVE_GLOB_H
|
||||||
#include <glob.h>
|
#include <glob.h>
|
||||||
@@ -181,17 +181,16 @@ static int
|
|||||||
_read_audio_sectors_solaris (void *p_user_data, void *data, lsn_t lsn,
|
_read_audio_sectors_solaris (void *p_user_data, void *data, lsn_t lsn,
|
||||||
unsigned int nblocks)
|
unsigned int nblocks)
|
||||||
{
|
{
|
||||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
struct cdrom_msf solaris_msf;
|
||||||
struct cdrom_msf *msf = (struct cdrom_msf *) &buf;
|
|
||||||
msf_t _msf;
|
msf_t _msf;
|
||||||
struct cdrom_cdda cdda;
|
struct cdrom_cdda cdda;
|
||||||
|
|
||||||
_img_private_t *p_env = p_user_data;
|
_img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf);
|
cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf);
|
||||||
msf->cdmsf_min0 = from_bcd8(_msf.m);
|
solaris_msf.cdmsf_min0 = cdio_from_bcd8(_msf.m);
|
||||||
msf->cdmsf_sec0 = from_bcd8(_msf.s);
|
solaris_msf.cdmsf_sec0 = cdio_from_bcd8(_msf.s);
|
||||||
msf->cdmsf_frame0 = from_bcd8(_msf.f);
|
solaris_msf.cdmsf_frame0 = cdio_from_bcd8(_msf.f);
|
||||||
|
|
||||||
if (p_env->gen.ioctls_debugged == 75)
|
if (p_env->gen.ioctls_debugged == 75)
|
||||||
cdio_debug ("only displaying every 75th ioctl from now on");
|
cdio_debug ("only displaying every 75th ioctl from now on");
|
||||||
@@ -207,15 +206,16 @@ _read_audio_sectors_solaris (void *p_user_data, void *data, lsn_t lsn,
|
|||||||
|
|
||||||
p_env->gen.ioctls_debugged++;
|
p_env->gen.ioctls_debugged++;
|
||||||
|
|
||||||
cdda.cdda_addr = lsn;
|
cdda.cdda_addr = lsn;
|
||||||
cdda.cdda_length = nblocks;
|
cdda.cdda_length = nblocks;
|
||||||
cdda.cdda_data = (caddr_t) data;
|
cdda.cdda_data = (caddr_t) data;
|
||||||
|
cdda.cdda_subcode = CDROM_DA_NO_SUBCODE;
|
||||||
|
|
||||||
if (ioctl (p_env->gen.fd, CDROMCDDA, &cdda) == -1) {
|
if (ioctl (p_env->gen.fd, CDROMCDDA, &cdda) == -1) {
|
||||||
perror ("ioctl(..,CDROMCDDA,..)");
|
perror ("ioctl(..,CDROMCDDA,..)");
|
||||||
return 1;
|
return 1;
|
||||||
/* exit (EXIT_FAILURE); */
|
/* exit (EXIT_FAILURE); */
|
||||||
}
|
}
|
||||||
memcpy (data, buf, CDIO_CD_FRAMESIZE_RAW);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ _read_mode2_sector_solaris (void *p_user_data, void *p_data, lsn_t lsn,
|
|||||||
bool b_form2)
|
bool b_form2)
|
||||||
{
|
{
|
||||||
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
|
||||||
struct cdrom_msf *msf = (struct cdrom_msf *) &buf;
|
struct cdrom_msf solaris_msf;
|
||||||
msf_t _msf;
|
msf_t _msf;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
struct cdrom_cdxa cd_read;
|
struct cdrom_cdxa cd_read;
|
||||||
@@ -276,9 +276,9 @@ _read_mode2_sector_solaris (void *p_user_data, void *p_data, lsn_t lsn,
|
|||||||
_img_private_t *p_env = p_user_data;
|
_img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf);
|
cdio_lba_to_msf (cdio_lsn_to_lba(lsn), &_msf);
|
||||||
msf->cdmsf_min0 = from_bcd8(_msf.m);
|
solaris_msf.cdmsf_min0 = cdio_from_bcd8(_msf.m);
|
||||||
msf->cdmsf_sec0 = from_bcd8(_msf.s);
|
solaris_msf.cdmsf_sec0 = cdio_from_bcd8(_msf.s);
|
||||||
msf->cdmsf_frame0 = from_bcd8(_msf.f);
|
solaris_msf.cdmsf_frame0 = cdio_from_bcd8(_msf.f);
|
||||||
|
|
||||||
if (p_env->gen.ioctls_debugged == 75)
|
if (p_env->gen.ioctls_debugged == 75)
|
||||||
cdio_debug ("only displaying every 75th ioctl from now on");
|
cdio_debug ("only displaying every 75th ioctl from now on");
|
||||||
@@ -291,7 +291,8 @@ _read_mode2_sector_solaris (void *p_user_data, void *p_data, lsn_t lsn,
|
|||||||
&& p_env->gen.ioctls_debugged % 75 == 0)
|
&& p_env->gen.ioctls_debugged % 75 == 0)
|
||||||
|| p_env->gen.ioctls_debugged % (30 * 75) == 0)
|
|| p_env->gen.ioctls_debugged % (30 * 75) == 0)
|
||||||
cdio_debug ("reading %2.2d:%2.2d:%2.2d",
|
cdio_debug ("reading %2.2d:%2.2d:%2.2d",
|
||||||
msf->cdmsf_min0, msf->cdmsf_sec0, msf->cdmsf_frame0);
|
solaris_msf.cdmsf_min0, solaris_msf.cdmsf_sec0,
|
||||||
|
solaris_msf.cdmsf_frame0);
|
||||||
|
|
||||||
p_env->gen.ioctls_debugged++;
|
p_env->gen.ioctls_debugged++;
|
||||||
|
|
||||||
@@ -741,9 +742,9 @@ _cdio_get_track_msf(void *p_user_data, track_t i_track, msf_t *msf)
|
|||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
struct cdrom_tocentry *msf0 = &p_env->tocent[i_track-1];
|
struct cdrom_tocentry *msf0 = &p_env->tocent[i_track-1];
|
||||||
msf->m = to_bcd8(msf0->cdte_addr.msf.minute);
|
msf->m = cdio_to_bcd8(msf0->cdte_addr.msf.minute);
|
||||||
msf->s = to_bcd8(msf0->cdte_addr.msf.second);
|
msf->s = cdio_to_bcd8(msf0->cdte_addr.msf.second);
|
||||||
msf->f = to_bcd8(msf0->cdte_addr.msf.frame);
|
msf->f = cdio_to_bcd8(msf0->cdte_addr.msf.frame);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
lib/sector.c
16
lib/sector.c
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: sector.c,v 1.14 2004/09/03 23:20:11 rocky Exp $
|
$Id: sector.c,v 1.15 2004/11/18 01:56:09 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: sector.c,v 1.14 2004/09/03 23:20:11 rocky Exp $";
|
static const char _rcsid[] = "$Id: sector.c,v 1.15 2004/11/18 01:56:09 rocky Exp $";
|
||||||
|
|
||||||
lba_t
|
lba_t
|
||||||
cdio_lba_to_lsn (lba_t lba)
|
cdio_lba_to_lsn (lba_t lba)
|
||||||
@@ -75,9 +75,9 @@ cdio_lsn_to_msf (lsn_t lsn, msf_t *msf)
|
|||||||
m = 99;
|
m = 99;
|
||||||
}
|
}
|
||||||
|
|
||||||
msf->m = to_bcd8 (m);
|
msf->m = cdio_to_bcd8 (m);
|
||||||
msf->s = to_bcd8 (s);
|
msf->s = cdio_to_bcd8 (s);
|
||||||
msf->f = to_bcd8 (f);
|
msf->f = cdio_to_bcd8 (f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -129,13 +129,13 @@ cdio_msf_to_lba (const msf_t *msf)
|
|||||||
|
|
||||||
cdio_assert (msf != 0);
|
cdio_assert (msf != 0);
|
||||||
|
|
||||||
lba = from_bcd8 (msf->m);
|
lba = cdio_from_bcd8 (msf->m);
|
||||||
lba *= CDIO_CD_SECS_PER_MIN;
|
lba *= CDIO_CD_SECS_PER_MIN;
|
||||||
|
|
||||||
lba += from_bcd8 (msf->s);
|
lba += cdio_from_bcd8 (msf->s);
|
||||||
lba *= CDIO_CD_FRAMES_PER_SEC;
|
lba *= CDIO_CD_FRAMES_PER_SEC;
|
||||||
|
|
||||||
lba += from_bcd8 (msf->f);
|
lba += cdio_from_bcd8 (msf->f);
|
||||||
|
|
||||||
return lba;
|
return lba;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user