Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/libcdio
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -16,9 +16,9 @@
|
|||||||
/depcomp
|
/depcomp
|
||||||
/install-sh
|
/install-sh
|
||||||
/libcdio++.pc
|
/libcdio++.pc
|
||||||
|
/libcdio-*.sig
|
||||||
/libcdio-*.tar.bz2
|
/libcdio-*.tar.bz2
|
||||||
/libcdio-*.tar.gz
|
/libcdio-*.tar.gz
|
||||||
/libcdio-*.sig
|
|
||||||
/libcdio.pc
|
/libcdio.pc
|
||||||
/libcdio_cdda.pc
|
/libcdio_cdda.pc
|
||||||
/libiso9660++.pc
|
/libiso9660++.pc
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2003, 2004, 2006, 2008, 2011
|
# Copyright (C) 2003, 2004, 2006, 2008, 2011, 2012
|
||||||
# Rocky Bernstein <rocky@gnu.org>
|
# Rocky Bernstein <rocky@gnu.org>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
@@ -116,7 +116,6 @@ check_iso.sh: $(top_builddir)/config.status check_iso.sh.in
|
|||||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
chmod +x config_iso.sh
|
chmod +x config_iso.sh
|
||||||
|
|
||||||
# cvs2cl
|
|
||||||
MAINTAINERCLEANFILES = ChangeLog *.rej *.orig
|
MAINTAINERCLEANFILES = ChangeLog *.rej *.orig
|
||||||
|
|
||||||
if MAINTAINER_MODE
|
if MAINTAINER_MODE
|
||||||
|
|||||||
8
README
8
README
@@ -9,9 +9,11 @@ A library for working with ISO-9660 filesystems libiso9660 is
|
|||||||
included. A generic interface for issuing MMC (multimedia commands) is
|
included. A generic interface for issuing MMC (multimedia commands) is
|
||||||
also part of the libcdio library.
|
also part of the libcdio library.
|
||||||
|
|
||||||
Also included is a library for working with ISO-9660 filesystems as is
|
Also included is a library for working with ISO-9660 filesystems.
|
||||||
also the CD-DA error/jitter correction library from cdparanoia
|
|
||||||
(http://www.xiph.org/paranoia).
|
The CD-DA error/jitter correction library from cdparanoia
|
||||||
|
(http://www.xiph.org/paranoia) is included as a separate library
|
||||||
|
licenced under GPL v2.
|
||||||
|
|
||||||
Some support for disk image types like CDRWin's BIN/CUE format,
|
Some support for disk image types like CDRWin's BIN/CUE format,
|
||||||
cdrdao's TOC format, and Nero's NRG format are available. Therefore,
|
cdrdao's TOC format, and Nero's NRG format are available. Therefore,
|
||||||
|
|||||||
@@ -62,15 +62,15 @@ an optional dependency on libcdio).
|
|||||||
Microsoft Windows
|
Microsoft Windows
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The building under Microsoft Windows the thing to do is to install
|
Building under Microsoft Windows is supported for cygwin
|
||||||
cygwin (http://www.cygwin.com). It has been reported that MinGW
|
(http://www.cygwin.com). MinGW (http://www.mingw.org/) may also work,
|
||||||
(http://www.mingw.org/) also works, but it is possible you may
|
but it is possible you may encounter problems there.
|
||||||
encounter more problems there.
|
|
||||||
|
|
||||||
Folks may have used Microsoft compilers (e.g. Visual C), but you may
|
Support for Microsoft compilers (e.g. Visual C) is not officially
|
||||||
find you need to make your own "project" files. Don't undertake this
|
supported. You need to make your own "project" files. Don't
|
||||||
unless you are willing to spend time hacking. xboxmediacenter team
|
undertake this unless you are willing to spend time hacking. In the
|
||||||
folks I believe go this route, so you may be able to use their project
|
past xboxmediacenter team folks I believe have gone this route, as has
|
||||||
|
Pete Batard in his rufus project. You may be able to use their project
|
||||||
files as a starting point.
|
files as a starting point.
|
||||||
|
|
||||||
XBOX
|
XBOX
|
||||||
|
|||||||
@@ -21,14 +21,36 @@
|
|||||||
if ENABLE_CPP
|
if ENABLE_CPP
|
||||||
SUBDIRS = C++
|
SUBDIRS = C++
|
||||||
endif
|
endif
|
||||||
if BUILD_EXAMPLES
|
|
||||||
noinst_PROGRAMS = audio cdchange cdio-eject cdtext device discid drives eject \
|
|
||||||
extract isofile isofile2 isofuzzy isolist isolsn \
|
|
||||||
mmc1 mmc2 mmc2a mmc3 \
|
|
||||||
sample3 sample4 tracks udf1 udffile
|
|
||||||
endif
|
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS)
|
noinst_PROGRAMS = \
|
||||||
|
audio \
|
||||||
|
cdchange \
|
||||||
|
cdio-eject \
|
||||||
|
cdtext \
|
||||||
|
device \
|
||||||
|
discid \
|
||||||
|
drives \
|
||||||
|
eject \
|
||||||
|
extract \
|
||||||
|
isofile \
|
||||||
|
isofile2 \
|
||||||
|
isofuzzy \
|
||||||
|
isolist \
|
||||||
|
isolsn \
|
||||||
|
mmc1 \
|
||||||
|
mmc2 \
|
||||||
|
mmc2a \
|
||||||
|
mmc3 \
|
||||||
|
sample3 \
|
||||||
|
sample4 \
|
||||||
|
tracks \
|
||||||
|
udf1 \
|
||||||
|
udffile
|
||||||
|
|
||||||
|
check_PROGRAMS = cdtext device drives \
|
||||||
|
mmc1 mmc2 mmc2a mmc3 sample4
|
||||||
|
|
||||||
|
INCLUDES = $(LIBCDIO_CFLAGS)
|
||||||
|
|
||||||
audio_DEPENDENCIES = $(LIBCDIO_DEPS)
|
audio_DEPENDENCIES = $(LIBCDIO_DEPS)
|
||||||
audio_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
audio_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
@@ -36,6 +58,9 @@ audio_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
|||||||
cdchange_DEPENDENCIES = $(LIBCDIO_DEPS)
|
cdchange_DEPENDENCIES = $(LIBCDIO_DEPS)
|
||||||
cdchange_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
cdchange_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
|
|
||||||
|
cdio_eject_DEPENDENCIES = $(LIBCDIO_DEPS)
|
||||||
|
cdio_eject_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
|
|
||||||
cdtext_DEPENDENCIES = $(LIBCDIO_DEPS)
|
cdtext_DEPENDENCIES = $(LIBCDIO_DEPS)
|
||||||
cdtext_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
cdtext_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
|
|
||||||
@@ -54,9 +79,6 @@ eject_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
|||||||
extract_DEPENDENCIES = $(LIBISO9660_LIBS) $(LIBUDF_LIBS) $(LIBCDIO_DEPS)
|
extract_DEPENDENCIES = $(LIBISO9660_LIBS) $(LIBUDF_LIBS) $(LIBCDIO_DEPS)
|
||||||
extract_LDADD = $(LIBISO9660_LIBS) $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
extract_LDADD = $(LIBISO9660_LIBS) $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
|
|
||||||
cdio_eject_DEPENDENCIES = $(LIBCDIO_DEPS)
|
|
||||||
cdio_eject_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
|
||||||
|
|
||||||
isofile_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
isofile_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
isofile2_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
isofile2_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
isofuzzy_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
isofuzzy_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
@@ -89,9 +111,6 @@ udf1_LDADD = $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
|||||||
udffile_DEPENDENCIES = $(LIBUDF_LIBS) $(LIBCDIO_DEPS)
|
udffile_DEPENDENCIES = $(LIBUDF_LIBS) $(LIBCDIO_DEPS)
|
||||||
udffile_LDADD = $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
udffile_LDADD = $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
|
|
||||||
check_PROGRAMS = cdtext device drives \
|
|
||||||
mmc1 mmc2 mmc2a mmc3 sample4
|
|
||||||
|
|
||||||
TESTS = $(check_PROGRAMS)
|
TESTS = $(check_PROGRAMS)
|
||||||
|
|
||||||
# iso programs create file "copying"
|
# iso programs create file "copying"
|
||||||
|
|||||||
@@ -153,7 +153,7 @@
|
|||||||
#define CDIO_CD_FRAMESIZE_RAW 2352 /**< bytes per frame, "raw" mode */
|
#define CDIO_CD_FRAMESIZE_RAW 2352 /**< bytes per frame, "raw" mode */
|
||||||
#define CDIO_CD_FRAMESIZE_RAWER 2646 /**< The maximum possible returned
|
#define CDIO_CD_FRAMESIZE_RAWER 2646 /**< The maximum possible returned
|
||||||
bytes */
|
bytes */
|
||||||
#define CDIO_CD_FRAMESIZE_RAW1 (CDIO_CD_CD_FRAMESIZE_RAW-CDIO_CD_SYNC_SIZE) /*2340*/
|
#define CDIO_CD_FRAMESIZE_RAW1 (CDIO_CD_FRAMESIZE_RAW-CDIO_CD_SYNC_SIZE) /*2340*/
|
||||||
#define CDIO_CD_FRAMESIZE_RAW0 (CDIO_CD_FRAMESIZE_RAW-CDIO_CD_SYNC_SIZE-CDIO_CD_HEADER_SIZE) /*2336*/
|
#define CDIO_CD_FRAMESIZE_RAW0 (CDIO_CD_FRAMESIZE_RAW-CDIO_CD_SYNC_SIZE-CDIO_CD_HEADER_SIZE) /*2336*/
|
||||||
|
|
||||||
/*! "before data" part of raw XA (green, mode2) frame */
|
/*! "before data" part of raw XA (green, mode2) frame */
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011
|
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011
|
||||||
Rocky Bernstein <rocky@gnu.org>
|
2012 Rocky Bernstein <rocky@gnu.org>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -601,7 +601,9 @@ get_track_msf_linux(void *p_user_data, track_t i_track, msf_t *msf)
|
|||||||
{
|
{
|
||||||
_img_private_t *p_env = p_user_data;
|
_img_private_t *p_env = p_user_data;
|
||||||
|
|
||||||
if (NULL == msf) return false;
|
if (NULL == msf ||
|
||||||
|
(i_track > CDIO_CD_MAX_TRACKS && i_track != CDIO_CDROM_LEADOUT_TRACK))
|
||||||
|
return false;
|
||||||
|
|
||||||
if (!p_env->gen.toc_init) read_toc_linux (p_user_data) ;
|
if (!p_env->gen.toc_init) read_toc_linux (p_user_data) ;
|
||||||
|
|
||||||
@@ -1179,6 +1181,13 @@ read_toc_linux (void *p_user_data)
|
|||||||
p_env->gen.i_first_track = p_env->tochdr.cdth_trk0;
|
p_env->gen.i_first_track = p_env->tochdr.cdth_trk0;
|
||||||
p_env->gen.i_tracks = p_env->tochdr.cdth_trk1;
|
p_env->gen.i_tracks = p_env->tochdr.cdth_trk1;
|
||||||
|
|
||||||
|
if (p_env->gen.i_tracks > CDIO_CD_MAX_TRACKS) {
|
||||||
|
cdio_log(CDIO_LOG_WARN, "Number of tracks exceeds maximum (%d vs. %d)\n",
|
||||||
|
p_env->gen.i_tracks, CDIO_CD_MAX_TRACKS);
|
||||||
|
p_env->gen.i_tracks = CDIO_CD_MAX_TRACKS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* read individual tracks */
|
/* read individual tracks */
|
||||||
for (i= p_env->gen.i_first_track; i<=p_env->gen.i_tracks; i++) {
|
for (i= p_env->gen.i_first_track; i<=p_env->gen.i_tracks; i++) {
|
||||||
struct cdrom_tocentry *p_toc =
|
struct cdrom_tocentry *p_toc =
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (C) 2003, 2004, 2005, 2008, 2011 Rocky Bernstein <rocky@gnu.org>
|
Copyright (C) 2003, 2004, 2005, 2008, 2011, 2012
|
||||||
|
Rocky Bernstein <rocky@gnu.org>
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@@ -20,10 +21,10 @@
|
|||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
# define __CDIO_CONFIG_H__ 1
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <cdio/cdio.h>
|
#include <cdio/cdio.h>
|
||||||
|
#include <cdio/logging.h>
|
||||||
#include "cdio_private.h"
|
#include "cdio_private.h"
|
||||||
|
|
||||||
const char *track_format2str[6] =
|
const char *track_format2str[6] =
|
||||||
@@ -41,7 +42,11 @@ enum cdio_track_enums;
|
|||||||
track_t
|
track_t
|
||||||
cdio_get_first_track_num(const CdIo_t *p_cdio)
|
cdio_get_first_track_num(const CdIo_t *p_cdio)
|
||||||
{
|
{
|
||||||
if (NULL == p_cdio) return CDIO_INVALID_TRACK;
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return CDIO_INVALID_TRACK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (p_cdio->op.get_first_track_num) {
|
if (p_cdio->op.get_first_track_num) {
|
||||||
return p_cdio->op.get_first_track_num (p_cdio->env);
|
return p_cdio->op.get_first_track_num (p_cdio->env);
|
||||||
@@ -57,7 +62,11 @@ cdio_get_first_track_num (const CdIo_t *p_cdio)
|
|||||||
track_t
|
track_t
|
||||||
cdio_get_last_track_num (const CdIo_t *p_cdio)
|
cdio_get_last_track_num (const CdIo_t *p_cdio)
|
||||||
{
|
{
|
||||||
if (NULL == p_cdio) return CDIO_INVALID_TRACK;
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return CDIO_INVALID_TRACK;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const track_t i_first_track = cdio_get_first_track_num(p_cdio);
|
const track_t i_first_track = cdio_get_first_track_num(p_cdio);
|
||||||
if ( CDIO_INVALID_TRACK != i_first_track ) {
|
if ( CDIO_INVALID_TRACK != i_first_track ) {
|
||||||
@@ -76,6 +85,15 @@ cdio_get_last_track_num (const CdIo_t *p_cdio)
|
|||||||
int
|
int
|
||||||
cdio_get_track_channels(const CdIo_t *p_cdio, track_t i_track)
|
cdio_get_track_channels(const CdIo_t *p_cdio, track_t i_track)
|
||||||
{
|
{
|
||||||
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (i_track > CDIO_CD_MAX_TRACKS) {
|
||||||
|
cdio_log(CDIO_LOG_WARN, "Number of tracks exceeds maximum (%d vs. %d)\n",
|
||||||
|
i_track, CDIO_CD_MAX_TRACKS);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if (p_cdio->op.get_track_channels) {
|
if (p_cdio->op.get_track_channels) {
|
||||||
return p_cdio->op.get_track_channels (p_cdio->env, i_track);
|
return p_cdio->op.get_track_channels (p_cdio->env, i_track);
|
||||||
} else {
|
} else {
|
||||||
@@ -209,7 +227,10 @@ cdio_get_track_green(const CdIo_t *p_cdio, track_t i_track)
|
|||||||
lba_t
|
lba_t
|
||||||
cdio_get_track_lba(const CdIo_t *p_cdio, track_t i_track)
|
cdio_get_track_lba(const CdIo_t *p_cdio, track_t i_track)
|
||||||
{
|
{
|
||||||
if (!p_cdio) return CDIO_INVALID_LBA;
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return CDIO_INVALID_LBA;
|
||||||
|
}
|
||||||
|
|
||||||
if (p_cdio->op.get_track_lba) {
|
if (p_cdio->op.get_track_lba) {
|
||||||
return p_cdio->op.get_track_lba (p_cdio->env, i_track);
|
return p_cdio->op.get_track_lba (p_cdio->env, i_track);
|
||||||
@@ -232,7 +253,16 @@ cdio_get_track_lba(const CdIo_t *p_cdio, track_t i_track)
|
|||||||
lsn_t
|
lsn_t
|
||||||
cdio_get_track_lsn(const CdIo_t *p_cdio, track_t i_track)
|
cdio_get_track_lsn(const CdIo_t *p_cdio, track_t i_track)
|
||||||
{
|
{
|
||||||
if (p_cdio == NULL) return CDIO_INVALID_LSN;
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return CDIO_INVALID_LSN;
|
||||||
|
}
|
||||||
|
if (i_track > CDIO_CD_MAX_TRACKS && i_track != CDIO_CDROM_LEADOUT_TRACK) {
|
||||||
|
cdio_log(CDIO_LOG_WARN, "Number of tracks exceeds maximum (%d vs. %d)\n",
|
||||||
|
i_track, CDIO_CD_MAX_TRACKS);
|
||||||
|
return CDIO_INVALID_LSN;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (p_cdio->op.get_track_lba) {
|
if (p_cdio->op.get_track_lba) {
|
||||||
return cdio_lba_to_lsn(p_cdio->op.get_track_lba (p_cdio->env, i_track));
|
return cdio_lba_to_lsn(p_cdio->op.get_track_lba (p_cdio->env, i_track));
|
||||||
@@ -254,7 +284,16 @@ cdio_get_track_lsn(const CdIo_t *p_cdio, track_t i_track)
|
|||||||
char *
|
char *
|
||||||
cdio_get_track_isrc (const CdIo_t *p_cdio, track_t i_track)
|
cdio_get_track_isrc (const CdIo_t *p_cdio, track_t i_track)
|
||||||
{
|
{
|
||||||
if (p_cdio == NULL) return NULL;
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i_track > CDIO_CD_MAX_TRACKS) {
|
||||||
|
cdio_log(CDIO_LOG_WARN, "Number of tracks exceeds maximum (%d vs. %d)\n",
|
||||||
|
i_track, CDIO_CD_MAX_TRACKS);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (p_cdio->op.get_track_isrc) {
|
if (p_cdio->op.get_track_isrc) {
|
||||||
return p_cdio->op.get_track_isrc (p_cdio->env, i_track);
|
return p_cdio->op.get_track_isrc (p_cdio->env, i_track);
|
||||||
@@ -271,7 +310,10 @@ cdio_get_track_isrc (const CdIo_t *p_cdio, track_t i_track)
|
|||||||
lba_t
|
lba_t
|
||||||
cdio_get_track_pregap_lba(const CdIo_t *p_cdio, track_t i_track)
|
cdio_get_track_pregap_lba(const CdIo_t *p_cdio, track_t i_track)
|
||||||
{
|
{
|
||||||
if (p_cdio == NULL) return CDIO_INVALID_LBA;
|
if (NULL == p_cdio) {
|
||||||
|
cdio_info("Null CdIo object passed\n");
|
||||||
|
return CDIO_INVALID_LBA;
|
||||||
|
}
|
||||||
|
|
||||||
if (p_cdio->op.get_track_pregap_lba) {
|
if (p_cdio->op.get_track_pregap_lba) {
|
||||||
return p_cdio->op.get_track_pregap_lba (p_cdio->env, i_track);
|
return p_cdio->op.get_track_pregap_lba (p_cdio->env, i_track);
|
||||||
|
|||||||
@@ -56,7 +56,9 @@ print_version (char *program_name, const char *version,
|
|||||||
|
|
||||||
if (no_header == 0) {
|
if (no_header == 0) {
|
||||||
report( stdout,
|
report( stdout,
|
||||||
"%s version %s\nCopyright (c) 2003, 2004, 2005, 2007, 2008, 2011 R. Bernstein\n",
|
"%s version %s\n"
|
||||||
|
"Copyright (c) 2003, 2004, 2005, 2007, 2008, 2011, 2012 "
|
||||||
|
"R. Bernstein\n",
|
||||||
program_name, version);
|
program_name, version);
|
||||||
report( stdout,
|
report( stdout,
|
||||||
_("This is free software; see the source for copying conditions.\n\
|
_("This is free software; see the source for copying conditions.\n\
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ hack = check_sizeof testassert testgetdevices testischar \
|
|||||||
EXTRA_PROGRAMS = testdefault
|
EXTRA_PROGRAMS = testdefault
|
||||||
DATA_DIR = @abs_top_srcdir@/test/data
|
DATA_DIR = @abs_top_srcdir@/test/data
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS)
|
INCLUDES = $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS)
|
||||||
|
|
||||||
check_sizeof_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
check_sizeof_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
testassert_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
testassert_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
__________________________________
|
__________________________________
|
||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
__________________________________
|
__________________________________
|
||||||
CD Analysis Report
|
CD Analysis Report
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
__________________________________
|
__________________________________
|
||||||
|
|
||||||
Disc mode is listed as: CD-DATA (Mode 1)
|
Disc mode is listed as: CD-DATA (Mode 1)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
__________________________________
|
__________________________________
|
||||||
CD Analysis Report
|
CD Analysis Report
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ CD-ROM Track List (1 - 1)
|
|||||||
#: MSF LSN Type Green? Copy?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false no
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ CD-ROM Track List (1 - 1)
|
|||||||
#: MSF LSN Type Green? Copy?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false no
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ CD-ROM Track List (1 - 1)
|
|||||||
#: MSF LSN Type Green? Copy?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false no
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
__________________________________
|
__________________________________
|
||||||
CD Analysis Report
|
CD Analysis Report
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ CD-ROM Track List (1 - 1)
|
|||||||
#: MSF LSN Type Green? Copy?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false no
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
__________________________________
|
__________________________________
|
||||||
CD Analysis Report
|
CD Analysis Report
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ CD-ROM Track List (1 - 1)
|
|||||||
#: MSF LSN Type Green? Copy?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false no
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
__________________________________
|
__________________________________
|
||||||
CD Analysis Report
|
CD Analysis Report
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ CD-ROM Track List (1 - 1)
|
|||||||
#: MSF LSN Type Green? Copy?
|
#: MSF LSN Type Green? Copy?
|
||||||
1: 00:02:00 000000 data false no
|
1: 00:02:00 000000 data false no
|
||||||
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
|
||||||
Media Catalog Number (MCN): not available
|
Media Catalog Number (MCN): 0000012101954
|
||||||
Last CD Session LSN: not supported by drive/driver
|
Last CD Session LSN: not supported by drive/driver
|
||||||
__________________________________
|
__________________________________
|
||||||
CD Analysis Report
|
CD Analysis Report
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
CATALOG 0000012101954
|
||||||
FILE "ISOFS-M1.BIN" BINARY
|
FILE "ISOFS-M1.BIN" BINARY
|
||||||
TRACK 01 MODE1/2352
|
TRACK 01 MODE1/2352
|
||||||
INDEX 01 00:00:00
|
INDEX 01 00:00:00
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2009, 2010 Rocky Bernstein <rocky@gnu.org>
|
# Copyright (C) 2009, 2010, 2012 Rocky Bernstein <rocky@gnu.org>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS)
|
INCLUDES = $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS)
|
||||||
DATA_DIR = $(abs_top_srcdir)/test/data
|
DATA_DIR = $(abs_top_srcdir)/test/data
|
||||||
|
|
||||||
abs_path_SOURCES = abs_path.c
|
abs_path_SOURCES = abs_path.c
|
||||||
|
|||||||
@@ -36,8 +36,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <cdio/cdio.h>
|
|
||||||
#include <cdio/logging.h>
|
|
||||||
#include "helper.h"
|
#include "helper.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -46,6 +44,7 @@ main(int argc, const char *argv[])
|
|||||||
CdIo_t *p_cdio;
|
CdIo_t *p_cdio;
|
||||||
char **ppsz_drives=NULL;
|
char **ppsz_drives=NULL;
|
||||||
|
|
||||||
|
cdio_log_set_handler(log_handler);
|
||||||
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
|
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
|
||||||
/* snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1,
|
/* snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1,
|
||||||
"%s/%s", TEST_DIR, cue_file[i]);
|
"%s/%s", TEST_DIR, cue_file[i]);
|
||||||
@@ -60,6 +59,13 @@ main(int argc, const char *argv[])
|
|||||||
p_cdio = cdio_open_linux(ppsz_drives[0]);
|
p_cdio = cdio_open_linux(ppsz_drives[0]);
|
||||||
if (p_cdio) {
|
if (p_cdio) {
|
||||||
const char *psz_source = NULL, *psz_scsi_tuple;
|
const char *psz_source = NULL, *psz_scsi_tuple;
|
||||||
|
lsn_t lsn;
|
||||||
|
|
||||||
|
reset_counts();
|
||||||
|
lsn = cdio_get_track_lsn(p_cdio, CDIO_CD_MAX_TRACKS+1);
|
||||||
|
assert_equal_int(CDIO_INVALID_LSN, lsn,
|
||||||
|
"cdio_get_track_lsn with too large of a track number");
|
||||||
|
reset_counts();
|
||||||
|
|
||||||
check_get_arg_source(p_cdio, ppsz_drives[0]);
|
check_get_arg_source(p_cdio, ppsz_drives[0]);
|
||||||
check_mmc_supported(p_cdio, 3);
|
check_mmc_supported(p_cdio, 3);
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#define __CDIO_CONFIG_H__ 1
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_STDIO_H
|
#ifdef HAVE_STDIO_H
|
||||||
@@ -29,9 +28,51 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <cdio/cdio.h>
|
|
||||||
#include "helper.h"
|
#include "helper.h"
|
||||||
|
|
||||||
|
unsigned int info_msg_count=0;
|
||||||
|
unsigned int debug_msg_count=0;
|
||||||
|
unsigned int warn_msg_count=0;
|
||||||
|
unsigned int error_msg_count=0;
|
||||||
|
const char *info_messages[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
const char *debug_messages[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
const char *warn_messages[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
const char *error_messages[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
|
||||||
|
void
|
||||||
|
assert_equal_int(int expect, int got, const char *msg)
|
||||||
|
{
|
||||||
|
if (expect != got) {
|
||||||
|
fprintf(stderr, "ERROR: Expected %d, got %d\n", expect, got);
|
||||||
|
if (NULL != msg) fprintf(stderr, "%s\n", msg);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
assert_no_warn(const char *msg)
|
||||||
|
{
|
||||||
|
if (warn_msg_count != 0) {
|
||||||
|
unsigned int i;
|
||||||
|
fprintf(stderr, "ERROR: got unexpected warnings:\n");
|
||||||
|
for (i=0; i<warn_msg_count; i++) {
|
||||||
|
fprintf(stderr, "%s\n", warn_messages[i]);
|
||||||
|
}
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
assert_warn(const char *msg)
|
||||||
|
{
|
||||||
|
if (warn_msg_count == 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"ERROR: should have gotten a warning message:\n%s\n",
|
||||||
|
msg);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void check_access_mode(CdIo_t *p_cdio, const char *psz_expected_access_mode)
|
void check_access_mode(CdIo_t *p_cdio, const char *psz_expected_access_mode)
|
||||||
{
|
{
|
||||||
const char *psz_access_mode = cdio_get_arg(p_cdio, "access-mode");
|
const char *psz_access_mode = cdio_get_arg(p_cdio, "access-mode");
|
||||||
@@ -78,3 +119,32 @@ void check_mmc_supported(CdIo_t *p_cdio, int i_expected) {
|
|||||||
exit(32);
|
exit(32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
log_handler(cdio_log_level_t level, const char message[])
|
||||||
|
{
|
||||||
|
switch(level) {
|
||||||
|
case CDIO_LOG_DEBUG:
|
||||||
|
debug_messages[debug_msg_count] = message;
|
||||||
|
debug_msg_count++;
|
||||||
|
return;
|
||||||
|
case CDIO_LOG_INFO:
|
||||||
|
info_messages[info_msg_count] = message;
|
||||||
|
info_msg_count++;
|
||||||
|
return;
|
||||||
|
case CDIO_LOG_ERROR:
|
||||||
|
error_messages[info_msg_count] = message;
|
||||||
|
error_msg_count++;
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
warn_messages[warn_msg_count] = message;
|
||||||
|
warn_msg_count++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
reset_counts(void)
|
||||||
|
{
|
||||||
|
info_msg_count = debug_msg_count = warn_msg_count = 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* -*- C -*-
|
/* -*- C -*-
|
||||||
Copyright (C) 2010 Rocky Bernstein <rocky@gnu.org>
|
Copyright (C) 2010, 2012 Rocky Bernstein <rocky@gnu.org>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -14,8 +14,23 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cdio/cdio.h>
|
||||||
|
|
||||||
void check_access_mode(CdIo_t *p_cdio, const char *psz_expected_access_mode);
|
void check_access_mode(CdIo_t *p_cdio, const char *psz_expected_access_mode);
|
||||||
void check_get_arg_source(CdIo_t *p_cdio, const char *psz_expected_source);
|
void check_get_arg_source(CdIo_t *p_cdio, const char *psz_expected_source);
|
||||||
void check_mmc_supported(CdIo_t *p_cdio, int i_expected);
|
void check_mmc_supported(CdIo_t *p_cdio, int i_expected);
|
||||||
|
|
||||||
|
#include <cdio/logging.h>
|
||||||
|
void log_handler(cdio_log_level_t level, const char message[]);
|
||||||
|
|
||||||
|
extern unsigned int info_msg_count;
|
||||||
|
extern unsigned int debug_msg_count;
|
||||||
|
extern unsigned int warn_msg_count;
|
||||||
|
extern const char *info_messages[6];
|
||||||
|
extern const char *debug_messages[6];
|
||||||
|
extern const char *warn_messages[6];
|
||||||
|
extern void assert_equal_int(int expect, int got, const char *msg);
|
||||||
|
extern void reset_counts(void);
|
||||||
|
extern void assert_warn(const char *msg);
|
||||||
|
extern void assert_no_warn(const char *msg);
|
||||||
|
|||||||
Reference in New Issue
Block a user