Revise audio subchannel structure to remove lba uniion since we don't

support returning LBA's inside the structure.

include/types.h: use cdio_config.h if none was supplied.
This commit is contained in:
rocky
2005-03-19 06:42:22 +00:00
parent 15ce91070e
commit a5161ab684
12 changed files with 84 additions and 79 deletions

View File

@@ -19,7 +19,7 @@ define(RELEASE_NUM, 73)
define(CDIO_VERSION_STR, 0.$1cvs)
AC_PREREQ(2.52)
AC_REVISION([$Id: configure.ac,v 1.150 2005/03/17 07:36:09 rocky Exp $])dnl
AC_REVISION([$Id: configure.ac,v 1.151 2005/03/19 06:42:22 rocky Exp $])dnl
AC_INIT(libcdio, CDIO_VERSION_STR(RELEASE_NUM))
AC_CONFIG_SRCDIR(src/cd-info.c)
@@ -157,6 +157,9 @@ AM_PATH_LIBPOPT(,
enable_iso_info=no;
enable_iso_read=no])
AC_DEFINE(LIBCDIO_CONFIG_H, 1,
[Is set when libcdio's config.h has been included. Applications wishing to sue their own config.h values (such as set by the application's configure script can define this before including any of libcdio's headers.])
dnl headers
AC_HEADER_STDC
@@ -587,6 +590,7 @@ chmod +x test/check_nrg.sh
chmod +x test/check_cue.sh
chmod +x test/check_iso.sh
chmod +x test/check_paranoia.sh
cp config.h include/cdio/cdio_config.h
]],[[]])
AC_OUTPUT

View File

@@ -1,5 +1,5 @@
/*
$Id: audio.c,v 1.3 2005/03/16 02:19:20 rocky Exp $
$Id: audio.c,v 1.4 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2005 Rocky Bernstein <rocky@panix.com>
@@ -464,11 +464,8 @@ main(int argc, char *argv[])
sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) {
{
printf("track %2d - %02d:%02d (%02d:%02d abs) ",
sub.track,
sub.rel_addr.msf.m,
sub.rel_addr.msf.s,
sub.abs_addr.msf.m,
sub.abs_addr.msf.s);
sub.track, sub.rel_addr.m, sub.rel_addr.s,
sub.abs_addr.m, sub.abs_addr.s);
}
}
printf("drive state: %s\n",

View File

@@ -1,3 +1,5 @@
Makefile
Makefile.in
version.h
cdio_config.h

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.am,v 1.23 2005/03/01 00:41:34 rocky Exp $
# $Id: Makefile.am,v 1.24 2005/03/19 06:42:24 rocky Exp $
#
# Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
#
@@ -29,6 +29,7 @@ libcdioinclude_HEADERS = \
paranoia.h \
cdda.h \
cdio.h \
cdio_config.h \
cdtext.h \
cdtext.h \
cd_types.h \
@@ -52,3 +53,4 @@ libcdioinclude_HEADERS = \
EXTRA_DIST = version.h.in
BUILT_SOURCES = version.h
MOSTLYCLEANFILES = cdio_config.h

View File

@@ -1,5 +1,5 @@
/* -*- c -*-
$Id: audio.h,v 1.8 2005/03/14 02:02:49 rocky Exp $
$Id: audio.h,v 1.9 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2005 Rocky Bernstein <rocky@panix.com>
@@ -36,14 +36,14 @@ extern "C" {
/*! This struct is used by the cdio_audio_read_subchannel */
typedef struct cdio_subchannel_s
{
uint8_t format;
uint8_t audio_status;
uint8_t address: 4;
uint8_t control: 4;
uint8_t track;
uint8_t index;
union cdio_cdrom_addr abs_addr;
union cdio_cdrom_addr rel_addr;
uint8_t format;
uint8_t audio_status;
uint8_t address: 4;
uint8_t control: 4;
uint8_t track;
uint8_t index;
msf_t abs_addr;
msf_t rel_addr;
} cdio_subchannel_t;
/*! This struct is used by cdio_audio_get_volume and cdio_audio_set_volume */

View File

@@ -1,5 +1,5 @@
/*
$Id: types.h,v 1.29 2005/03/18 01:15:49 rocky Exp $
$Id: types.h,v 1.30 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -31,6 +31,10 @@
extern "C" {
#endif /* __cplusplus */
#ifndef LIBCDIO_CONFIG_H
#include <cdio/cdio_config.h>
#endif
/* provide some C99 definitions */
#if defined(HAVE_SYS_TYPES_H)

View File

@@ -1,5 +1,5 @@
/*
$Id: freebsd.c,v 1.24 2005/03/17 15:32:27 rocky Exp $
$Id: freebsd.c,v 1.25 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -27,7 +27,7 @@
# include "config.h"
#endif
static const char _rcsid[] = "$Id: freebsd.c,v 1.24 2005/03/17 15:32:27 rocky Exp $";
static const char _rcsid[] = "$Id: freebsd.c,v 1.25 2005/03/19 06:42:24 rocky Exp $";
#include "freebsd.h"
@@ -361,16 +361,23 @@ audio_read_subchannel_freebsd (void *p_user_data,
struct cd_sub_channel_info bsdinfo;
i_rc = ioctl(p_env->gen.fd, CDIOCREADSUBCHANNEL, &bsdinfo);
if (0 == i_rc) {
/*p_subchannel*/
msf_t msf;
p_subchannel->audio_status = bsdinfo.header.audio_status;
p_subchannel->address = bsdinfo.what.position.addr_type;
p_subchannel->control = bsdinfo.what.position.control;
p_subchannel->track = bsdinfo.what.position.track_number;
p_subchannel->index = bsdinfo.what.position.index_number;
memcpy(&(p_subchannel->abs_addr), &bsdinfo.what.position.absaddr.lba,
sizeof(cdio_subchannel_t));
memcpy(&(p_subchannel->rel_addr), &bsdinfo.what.position.reladdr.lba,
sizeof(cdio_subchannel_t));
cdio_lba_to_msf(bsdinfo.what.position.absaddr.lba, &msf);
p_subchannel->abs_addr.m = cdio_from_bcd8 (msf.m);
p_subchannel->abs_addr.s = cdio_from_bcd8 (msf.s);
p_subchannel->abs_addr.f = cdio_from_bcd8 (msf.f);
cdio_lsn_to_msf(bsdinfo.what.position.reladr.lba, &msf);
p_subchannel->rel_addr.m = cdio_from_bcd8 (msf.m);
p_subchannel->rel_addr.s = cdio_from_bcd8 (msf.s);
p_subchannel->rel_addr.f = cdio_from_bcd8 (msf.f);
}
return i_rc;
}
@@ -463,7 +470,6 @@ get_arg_freebsd (void *user_data, const char key[])
*/
static char *
get_mcn_freebsd (const void *p_user_data) {
const _img_private_t *p_env = p_user_data;
return (p_env->access_mode == _AM_IOCTL)

View File

@@ -1,5 +1,5 @@
/*
$Id: win32_ioctl.c,v 1.24 2005/03/17 19:41:16 rocky Exp $
$Id: win32_ioctl.c,v 1.25 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -26,7 +26,7 @@
# include "config.h"
#endif
static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.24 2005/03/17 19:41:16 rocky Exp $";
static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.25 2005/03/19 06:42:24 rocky Exp $";
#ifdef HAVE_WIN32_CDROM
@@ -219,12 +219,12 @@ audio_read_subchannel_win32ioctl (void *p_user_data,
const UCHAR *rel_addr =
q_subchannel_data.CurrentPosition.TrackRelativeAddress;
p_subchannel->abs_addr.msf.m = abs_addr[1];
p_subchannel->abs_addr.msf.s = abs_addr[2];
p_subchannel->abs_addr.msf.f = abs_addr[3];
p_subchannel->rel_addr.msf.m = rel_addr[1];
p_subchannel->rel_addr.msf.s = rel_addr[2];
p_subchannel->rel_addr.msf.f = rel_addr[3];
p_subchannel->abs_addr.m = abs_addr[1];
p_subchannel->abs_addr.s = abs_addr[2];
p_subchannel->abs_addr.f = abs_addr[3];
p_subchannel->rel_addr.m = rel_addr[1];
p_subchannel->rel_addr.s = rel_addr[2];
p_subchannel->rel_addr.f = rel_addr[3];
}
return DRIVER_OP_SUCCESS;

View File

@@ -1,5 +1,5 @@
/*
$Id: bsdi.c,v 1.5 2005/03/18 22:53:48 rocky Exp $
$Id: bsdi.c,v 1.6 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -27,7 +27,7 @@
# include "config.h"
#endif
static const char _rcsid[] = "$Id: bsdi.c,v 1.5 2005/03/18 22:53:48 rocky Exp $";
static const char _rcsid[] = "$Id: bsdi.c,v 1.6 2005/03/19 06:42:24 rocky Exp $";
#include <cdio/logging.h>
#include <cdio/sector.h>
@@ -335,14 +335,14 @@ audio_read_subchannel_bsdi (void *p_user_data, cdio_subchannel_t *p_subchannel)
p_subchannel->index = cdstat.index_num;
cdio_lba_to_msf(cdstat.abs_frame, &msf);
p_subchannel->abs_addr.msf.m = cdio_from_bcd8 (msf.m);
p_subchannel->abs_addr.msf.s = cdio_from_bcd8 (msf.s);
p_subchannel->abs_addr.msf.f = cdio_from_bcd8 (msf.f);
p_subchannel->abs_addr.m = cdio_from_bcd8 (msf.m);
p_subchannel->abs_addr.s = cdio_from_bcd8 (msf.s);
p_subchannel->abs_addr.f = cdio_from_bcd8 (msf.f);
cdio_lsn_to_msf(cdstat.rel_frame, &msf);
p_subchannel->rel_addr.msf.m = cdio_from_bcd8 (msf.m);
p_subchannel->rel_addr.msf.s = cdio_from_bcd8 (msf.s);
p_subchannel->rel_addr.msf.f = cdio_from_bcd8 (msf.f);
p_subchannel->rel_addr.m = cdio_from_bcd8 (msf.m);
p_subchannel->rel_addr.s = cdio_from_bcd8 (msf.s);
p_subchannel->rel_addr.f = cdio_from_bcd8 (msf.f);
switch(cdstat.state) {
case cdstate_unknown:

View File

@@ -1,6 +1,6 @@
/* Common Multimedia Command (MMC) routines.
$Id: mmc.c,v 1.22 2005/03/09 10:23:03 rocky Exp $
$Id: mmc.c,v 1.23 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -602,18 +602,18 @@ mmc_audio_read_subchannel (CdIo_t *p_cdio, cdio_subchannel_t *p_subchannel)
i_rc = mmc_run_cmd(p_cdio, DEFAULT_TIMEOUT_MS, &cdb, SCSI_MMC_DATA_READ,
sizeof(mmc_subchannel_t), &mmc_subchannel);
if (DRIVER_OP_SUCCESS == i_rc) {
p_subchannel->format = mmc_subchannel.format;
p_subchannel->audio_status = mmc_subchannel.audio_status;
p_subchannel->address = mmc_subchannel.address;
p_subchannel->control = mmc_subchannel.control;
p_subchannel->track = mmc_subchannel.track;
p_subchannel->index = mmc_subchannel.index;
p_subchannel->abs_addr.msf.m = mmc_subchannel.abs_addr[1];
p_subchannel->abs_addr.msf.s = mmc_subchannel.abs_addr[2];
p_subchannel->abs_addr.msf.f = mmc_subchannel.abs_addr[3];
p_subchannel->rel_addr.msf.m = mmc_subchannel.rel_addr[1];
p_subchannel->rel_addr.msf.s = mmc_subchannel.rel_addr[2];
p_subchannel->rel_addr.msf.f = mmc_subchannel.rel_addr[3];
p_subchannel->format = mmc_subchannel.format;
p_subchannel->audio_status = mmc_subchannel.audio_status;
p_subchannel->address = mmc_subchannel.address;
p_subchannel->control = mmc_subchannel.control;
p_subchannel->track = mmc_subchannel.track;
p_subchannel->index = mmc_subchannel.index;
p_subchannel->abs_addr.m = mmc_subchannel.abs_addr[1];
p_subchannel->abs_addr.s = mmc_subchannel.abs_addr[2];
p_subchannel->abs_addr.f = mmc_subchannel.abs_addr[3];
p_subchannel->rel_addr.m = mmc_subchannel.rel_addr[1];
p_subchannel->rel_addr.s = mmc_subchannel.rel_addr[2];
p_subchannel->rel_addr.f = mmc_subchannel.rel_addr[3];
}
return i_rc;
}

View File

@@ -1,5 +1,5 @@
/*
$Id: cd-info.c,v 1.136 2005/03/18 12:56:00 rocky Exp $
$Id: cd-info.c,v 1.137 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
Copyright (C) 1996, 1997, 1998 Gerd Knorr <kraxel@bytesex.org>
@@ -1092,10 +1092,10 @@ main(int argc, const char *argv[])
if (b_position)
report( stdout, " at: %02d:%02d abs / %02d:%02d track %d\n",
subchannel.abs_addr.msf.m,
subchannel.abs_addr.msf.s,
subchannel.rel_addr.msf.m,
subchannel.rel_addr.msf.s,
subchannel.abs_addr.m,
subchannel.abs_addr.s,
subchannel.rel_addr.m,
subchannel.rel_addr.s,
subchannel.track );
if (b_volume) {

View File

@@ -1,5 +1,5 @@
/*
$Id: cdda-player.c,v 1.19 2005/03/18 15:42:25 rocky Exp $
$Id: cdda-player.c,v 1.20 2005/03/19 06:42:24 rocky Exp $
Copyright (C) 2005 Rocky Bernstein <rocky@panix.com>
@@ -550,7 +550,7 @@ skip(int diff)
if (!b_cd || i_first_track == CDIO_CDROM_LEADOUT_TRACK)
return;
sec = cdio_audio_get_msf_seconds(&sub.abs_addr.msf);
sec = cdio_audio_get_msf_seconds(&sub.abs_addr);
sec += diff;
if (sec < 0) sec = 0;
@@ -607,24 +607,17 @@ display_status(bool b_status_only)
uint8_t i_level = audio_volume.level[i_vol_port];
sprintf(line,
"track %2d - %02d:%02d of %s (%02d:%02d abs) %s volume: %d",
sub.track,
sub.rel_addr.msf.m,
sub.rel_addr.msf.s,
sub.track, sub.rel_addr.m, sub.rel_addr.s,
cd_info[sub.track].length,
sub.abs_addr.msf.m,
sub.abs_addr.msf.s,
sub.abs_addr.m, sub.abs_addr.s,
mmc_audio_state2str(sub.audio_status),
(i_level*100+128) / 256 );
} else
sprintf(line,"track %2d - %02d:%02d of %s (%02d:%02d abs) %s",
sub.track,
sub.rel_addr.msf.m,
sub.rel_addr.msf.s,
cd_info[sub.track].length,
sub.abs_addr.msf.m,
sub.abs_addr.msf.s,
mmc_audio_state2str(sub.audio_status));
sub.track, sub.rel_addr.m, sub.rel_addr.s,
cd_info[sub.track].length, sub.abs_addr.m, sub.abs_addr.s,
mmc_audio_state2str(sub.audio_status));
} else {
sprintf(line,"%s", mmc_audio_state2str(sub.audio_status));
@@ -1403,11 +1396,8 @@ main(int argc, char *argv[])
sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) {
{
printf("track %2d - %02d:%02d (%02d:%02d abs) ",
sub.track,
sub.rel_addr.msf.m,
sub.rel_addr.msf.s,
sub.abs_addr.msf.m,
sub.abs_addr.msf.s);
sub.track, sub.rel_addr.m, sub.rel_addr.s,
sub.abs_addr.m, sub.abs_addr.s);
}
}
printf("drive state: %s\n",