rb_cdio 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/CdIo.c +132 -0
- data/ext/CdIo.h +108 -0
- data/ext/CdIo.o +0 -0
- data/ext/CdIo_Cd.c +345 -0
- data/ext/CdIo_Cd.o +0 -0
- data/ext/CdIo_Common.c +84 -0
- data/ext/CdIo_Common.o +0 -0
- data/ext/CdIo_Modulo.c +226 -0
- data/ext/CdIo_Modulo.o +0 -0
- data/ext/CdIo_Track.c +91 -0
- data/ext/CdIo_Track.o +0 -0
- data/ext/CdIo_TrackIso9660.c +78 -0
- data/ext/CdIo_TrackIso9660.o +0 -0
- data/ext/Makefile +127 -0
- data/ext/extconf.rb +4 -0
- data/ext/mkmf.log +26 -0
- data/lib/rb_cdio_read.rb +39 -0
- data/test/data/Makefile +677 -0
- data/test/data/Makefile.am +78 -0
- data/test/data/Makefile.in +677 -0
- data/test/data/bad-cat1.cue +9 -0
- data/test/data/bad-cat1.toc +8 -0
- data/test/data/bad-cat2.cue +9 -0
- data/test/data/bad-cat2.toc +8 -0
- data/test/data/bad-cat3.cue +9 -0
- data/test/data/bad-cat3.toc +8 -0
- data/test/data/bad-mode1.cue +7 -0
- data/test/data/bad-mode1.toc +5 -0
- data/test/data/bad-msf-1.cue +7 -0
- data/test/data/bad-msf-1.toc +6 -0
- data/test/data/bad-msf-2.cue +7 -0
- data/test/data/bad-msf-2.toc +6 -0
- data/test/data/bad-msf-3.cue +7 -0
- data/test/data/bad-msf-3.toc +6 -0
- data/test/data/cdda-read.right +148 -0
- data/test/data/cdda.bin +0 -0
- data/test/data/cdda.cue +6 -0
- data/test/data/cdda.right +44 -0
- data/test/data/cdda.toc +13 -0
- data/test/data/cdtext.toc +48 -0
- data/test/data/check_cd_read.sh +53 -0
- data/test/data/check_common_fn +186 -0
- data/test/data/check_common_fn.in +186 -0
- data/test/data/check_cue.sh +102 -0
- data/test/data/check_cue.sh.in +102 -0
- data/test/data/check_iso.sh +32 -0
- data/test/data/check_iso.sh.in +32 -0
- data/test/data/check_nrg.sh +68 -0
- data/test/data/check_nrg.sh.in +68 -0
- data/test/data/check_opts.sh +33 -0
- data/test/data/check_opts0.right +40 -0
- data/test/data/check_opts1.right +40 -0
- data/test/data/check_opts2.right +34 -0
- data/test/data/check_opts3.right +34 -0
- data/test/data/check_opts4.right +44 -0
- data/test/data/check_opts5.right +44 -0
- data/test/data/check_opts6.right +44 -0
- data/test/data/check_opts7.right +44 -0
- data/test/data/check_sizeof +117 -0
- data/test/data/check_sizeof.c +77 -0
- data/test/data/copying.iso +0 -0
- data/test/data/copying.right +10 -0
- data/test/data/data1.toc +8 -0
- data/test/data/data2.toc +13 -0
- data/test/data/data5.toc +13 -0
- data/test/data/data6.toc +8 -0
- data/test/data/data7.toc +13 -0
- data/test/data/isofs-m1-read.right +258 -0
- data/test/data/isofs-m1.bin +0 -0
- data/test/data/isofs-m1.cue +3 -0
- data/test/data/isofs-m1.right +57 -0
- data/test/data/isofs-m1.toc +4 -0
- data/test/data/t1.toc +5 -0
- data/test/data/t2.toc +6 -0
- data/test/data/t3.toc +11 -0
- data/test/data/t4.toc +8 -0
- data/test/data/t5.toc +8 -0
- data/test/data/t6.toc +7 -0
- data/test/data/t7.toc +12 -0
- data/test/data/t8.toc +14 -0
- data/test/data/t9.toc +31 -0
- data/test/data/testassert +117 -0
- data/test/data/testassert.c +36 -0
- data/test/data/testbincue +117 -0
- data/test/data/testbincue.c +88 -0
- data/test/data/testdefault +117 -0
- data/test/data/testdefault.c +196 -0
- data/test/data/testischar +117 -0
- data/test/data/testischar.c +71 -0
- data/test/data/testiso9660 +117 -0
- data/test/data/testiso9660.c +153 -0
- data/test/data/testtoc +117 -0
- data/test/data/testtoc.c +101 -0
- data/test/data/vcd_demo.right +116 -0
- data/test/data/videocd.nrg +0 -0
- data/test/data/videocd.right +92 -0
- data/test/testall.rb +4 -0
- data/test/testbincue.rb +30 -0
- data/test/testtoc.rb +45 -0
- metadata +141 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/*
|
|
2
|
+
$Id: testiso9660.c,v 1.2 2003/09/21 01:14:30 rocky Exp $
|
|
3
|
+
|
|
4
|
+
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
|
5
|
+
|
|
6
|
+
This program is free software; you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU General Public License as published by
|
|
8
|
+
the Free Software Foundation; either version 2 of the License, or
|
|
9
|
+
(at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19
|
+
*/
|
|
20
|
+
/* Tests ISO9660 library routines. */
|
|
21
|
+
|
|
22
|
+
#ifdef HAVE_CONFIG_H
|
|
23
|
+
# include "config.h"
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
#include <ctype.h>
|
|
27
|
+
#ifdef HAVE_STRING_H
|
|
28
|
+
#include <string.h>
|
|
29
|
+
#endif
|
|
30
|
+
#ifdef HAVE_STDIO_H
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
#endif
|
|
33
|
+
#include <cdio/iso9660.h>
|
|
34
|
+
|
|
35
|
+
int
|
|
36
|
+
main (int argc, const char *argv[])
|
|
37
|
+
{
|
|
38
|
+
int c;
|
|
39
|
+
int i;
|
|
40
|
+
char dst[100];
|
|
41
|
+
char *dst_p;
|
|
42
|
+
int achars[] = {'!', '"', '%', '&', '(', ')', '*', '+', ',', '-', '.',
|
|
43
|
+
'/', '?', '<', '=', '>'};
|
|
44
|
+
for (c='A'; c<='Z'; c++ ) {
|
|
45
|
+
if (!iso9660_isdchar(c)) {
|
|
46
|
+
printf("Failed iso9660_isdchar test on %d\n", c);
|
|
47
|
+
return c;
|
|
48
|
+
}
|
|
49
|
+
if (!iso9660_isachar(c)) {
|
|
50
|
+
printf("Failed iso9660_isachar test on %d\n", c);
|
|
51
|
+
return c;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
for (c='0'; c<='9'; c++ ) {
|
|
55
|
+
if (!iso9660_isdchar(c)) {
|
|
56
|
+
printf("Failed iso9660_isdchar test on %d\n", c);
|
|
57
|
+
return c;
|
|
58
|
+
}
|
|
59
|
+
if (!iso9660_isachar(c)) {
|
|
60
|
+
printf("Failed iso9660_isachar test on %d\n", c);
|
|
61
|
+
return c;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
for (i=0; i<=13; i++ ) {
|
|
66
|
+
c=achars[i];
|
|
67
|
+
if (iso9660_isdchar(c)) {
|
|
68
|
+
printf("Should not pass iso9660_isdchar test on %d\n", c);
|
|
69
|
+
return c;
|
|
70
|
+
}
|
|
71
|
+
if (!iso9660_isachar(c)) {
|
|
72
|
+
printf("Failed iso9660_isachar test on symbol %d\n", c);
|
|
73
|
+
return c;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Test iso9660_strncpy_pad */
|
|
78
|
+
dst_p = iso9660_strncpy_pad(dst, "1_3", 5, ISO9660_DCHARS);
|
|
79
|
+
if ( 0 != strncmp(dst, "1_3 ", 5) ) {
|
|
80
|
+
printf("Failed iso9660_strncpy_pad test 1\n");
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
dst_p = iso9660_strncpy_pad(dst, "ABC!123", 2, ISO9660_ACHARS);
|
|
84
|
+
if ( 0 != strncmp(dst, "AB", 2) ) {
|
|
85
|
+
printf("Failed iso9660_strncpy_pad test 2\n");
|
|
86
|
+
return 2;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Test iso9660_dirname_valid_p */
|
|
90
|
+
if ( iso9660_dirname_valid_p("/NOGOOD") ) {
|
|
91
|
+
printf("/NOGOOD should fail iso9660_dirname_valid_p\n");
|
|
92
|
+
return 3;
|
|
93
|
+
}
|
|
94
|
+
if ( iso9660_dirname_valid_p("LONGDIRECTORY/NOGOOD") ) {
|
|
95
|
+
printf("LONGDIRECTORY/NOGOOD should fail iso9660_dirname_valid_p\n");
|
|
96
|
+
return 4;
|
|
97
|
+
}
|
|
98
|
+
if ( !iso9660_dirname_valid_p("OKAY/DIR") ) {
|
|
99
|
+
printf("OKAY/DIR should pass iso9660_dirname_valid_p\n");
|
|
100
|
+
return 5;
|
|
101
|
+
}
|
|
102
|
+
if ( iso9660_dirname_valid_p("OKAY/FILE.EXT") ) {
|
|
103
|
+
printf("OKAY/FILENAME.EXT should fail iso9660_dirname_valid_p\n");
|
|
104
|
+
return 6;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Test iso9660_pathname_valid_p */
|
|
108
|
+
if ( !iso9660_pathname_valid_p("OKAY/FILE.EXT") ) {
|
|
109
|
+
printf("OKAY/FILE.EXT should pass iso9660_dirname_valid_p\n");
|
|
110
|
+
return 7;
|
|
111
|
+
}
|
|
112
|
+
if ( iso9660_pathname_valid_p("OKAY/FILENAMETOOLONG.EXT") ) {
|
|
113
|
+
printf("OKAY/FILENAMETOOLONG.EXT should fail iso9660_dirname_valid_p\n");
|
|
114
|
+
return 8;
|
|
115
|
+
}
|
|
116
|
+
if ( iso9660_pathname_valid_p("OKAY/FILE.LONGEXT") ) {
|
|
117
|
+
printf("OKAY/FILE.LONGEXT should fail iso9660_dirname_valid_p\n");
|
|
118
|
+
return 9;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
dst_p = iso9660_pathname_isofy ("this/file.ext", 1);
|
|
122
|
+
if ( 0 != strncmp(dst_p, "this/file.ext;1", 16) ) {
|
|
123
|
+
printf("Failed iso9660_pathname_isofy\n");
|
|
124
|
+
return 10;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Test get/set date */
|
|
128
|
+
{
|
|
129
|
+
struct tm *p_tm, tm;
|
|
130
|
+
iso9660_dtime_t dtime;
|
|
131
|
+
time_t now = time(NULL);
|
|
132
|
+
|
|
133
|
+
memset(&dtime, 0, sizeof(dtime));
|
|
134
|
+
p_tm = localtime(&now);
|
|
135
|
+
iso9660_set_dtime(p_tm, &dtime);
|
|
136
|
+
iso9660_get_dtime(&dtime, true, &tm);
|
|
137
|
+
if ( memcmp(p_tm, &tm, sizeof(tm)) != 0 ) {
|
|
138
|
+
printf("Time retrieved with iso0660_get_dtime not same as that set with "
|
|
139
|
+
"iso9660_set_dtime.\n");
|
|
140
|
+
return 11;
|
|
141
|
+
}
|
|
142
|
+
p_tm = gmtime(&now);
|
|
143
|
+
iso9660_set_dtime(p_tm, &dtime);
|
|
144
|
+
iso9660_get_dtime(&dtime, false, &tm);
|
|
145
|
+
if ( memcmp(p_tm, &tm, sizeof(tm)) != 0 ) {
|
|
146
|
+
printf("Time retrieved with iso0660_get_dtime not same as that set with "
|
|
147
|
+
"iso9660_set_dtime.\n");
|
|
148
|
+
return 12;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return 0;
|
|
153
|
+
}
|
data/test/data/testtoc
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
|
|
3
|
+
# testtoc - temporary wrapper script for .libs/testtoc
|
|
4
|
+
# Generated by ltmain.sh - GNU libtool 1.5.6 (1.1220.2.95 2004/04/11 05:50:42)
|
|
5
|
+
#
|
|
6
|
+
# The testtoc program cannot be directly executed until all the libtool
|
|
7
|
+
# libraries that it depends on are installed.
|
|
8
|
+
#
|
|
9
|
+
# This wrapper script should never be moved out of the build directory.
|
|
10
|
+
# If it is, it will not operate correctly.
|
|
11
|
+
|
|
12
|
+
# Sed substitution that helps us do robust quoting. It backslashifies
|
|
13
|
+
# metacharacters that are still active within double-quoted strings.
|
|
14
|
+
Xsed='/bin/sed -e 1s/^X//'
|
|
15
|
+
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
|
|
16
|
+
|
|
17
|
+
# The HP-UX ksh and POSIX shell print the target directory to stdout
|
|
18
|
+
# if CDPATH is set.
|
|
19
|
+
if test "${CDPATH+set}" = set; then CDPATH=:; export CDPATH; fi
|
|
20
|
+
|
|
21
|
+
relink_command="(cd /home/cdx/libcdio-0.70/test; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; PATH=\"/opt/sun-jre-bin-1.5.0.03/bin:/opt/sun-jre-bin-1.5.0.03/javaws:/opt/sun-jre-bin-1.5.0.03/bin:/opt/sun-jre-bin-1.5.0.03/javaws:/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130:/opt/blackdown-jdk-1.4.2.01/bin:/opt/blackdown-jdk-1.4.2.01/jre/bin:/usr/qt/3/bin:/usr/kde/3.3/bin:/usr/games/bin:~/bin:~/RealPlayer:~/bin:~/RealPlayer\"; export PATH; gcc -g -O2 -Wall -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wunused -Wpointer-arith -Wwrite-strings -Wnested-externs -Wno-sign-compare -o \$progdir/\$file testtoc.o ../lib/.libs/libcdio.so -lm -Wl,--rpath -Wl,/home/cdx/libcdio-0.70/lib/.libs -Wl,--rpath -Wl,/home/cdx/libcdio-0.70/opt/lib)"
|
|
22
|
+
|
|
23
|
+
# This environment variable determines our operation mode.
|
|
24
|
+
if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
|
|
25
|
+
# install mode needs the following variable:
|
|
26
|
+
notinst_deplibs=' ../lib/libcdio.la'
|
|
27
|
+
else
|
|
28
|
+
# When we are sourced in execute mode, $file and $echo are already set.
|
|
29
|
+
if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
|
|
30
|
+
echo="echo"
|
|
31
|
+
file="$0"
|
|
32
|
+
# Make sure echo works.
|
|
33
|
+
if test "X$1" = X--no-reexec; then
|
|
34
|
+
# Discard the --no-reexec flag, and continue.
|
|
35
|
+
shift
|
|
36
|
+
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
|
|
37
|
+
# Yippee, $echo works!
|
|
38
|
+
:
|
|
39
|
+
else
|
|
40
|
+
# Restart under the correct shell, and then maybe $echo will work.
|
|
41
|
+
exec /bin/sh "$0" --no-reexec ${1+"$@"}
|
|
42
|
+
fi
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# Find the directory that this script lives in.
|
|
46
|
+
thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
|
|
47
|
+
test "x$thisdir" = "x$file" && thisdir=.
|
|
48
|
+
|
|
49
|
+
# Follow symbolic links until we get to the real thisdir.
|
|
50
|
+
file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
|
|
51
|
+
while test -n "$file"; do
|
|
52
|
+
destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
|
|
53
|
+
|
|
54
|
+
# If there was a directory component, then change thisdir.
|
|
55
|
+
if test "x$destdir" != "x$file"; then
|
|
56
|
+
case "$destdir" in
|
|
57
|
+
[\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
|
|
58
|
+
*) thisdir="$thisdir/$destdir" ;;
|
|
59
|
+
esac
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
|
|
63
|
+
file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
|
|
64
|
+
done
|
|
65
|
+
|
|
66
|
+
# Try to get the absolute directory name.
|
|
67
|
+
absdir=`cd "$thisdir" && pwd`
|
|
68
|
+
test -n "$absdir" && thisdir="$absdir"
|
|
69
|
+
|
|
70
|
+
program=lt-'testtoc'
|
|
71
|
+
progdir="$thisdir/.libs"
|
|
72
|
+
|
|
73
|
+
if test ! -f "$progdir/$program" || \
|
|
74
|
+
{ file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
|
|
75
|
+
test "X$file" != "X$progdir/$program"; }; then
|
|
76
|
+
|
|
77
|
+
file="$$-$program"
|
|
78
|
+
|
|
79
|
+
if test ! -d "$progdir"; then
|
|
80
|
+
mkdir "$progdir"
|
|
81
|
+
else
|
|
82
|
+
rm -f "$progdir/$file"
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# relink executable if necessary
|
|
86
|
+
if test -n "$relink_command"; then
|
|
87
|
+
if relink_command_output=`eval $relink_command 2>&1`; then :
|
|
88
|
+
else
|
|
89
|
+
echo "$relink_command_output" >&2
|
|
90
|
+
rm -f "$progdir/$file"
|
|
91
|
+
exit 1
|
|
92
|
+
fi
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
|
|
96
|
+
{ rm -f "$progdir/$program";
|
|
97
|
+
mv -f "$progdir/$file" "$progdir/$program"; }
|
|
98
|
+
rm -f "$progdir/$file"
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
if test -f "$progdir/$program"; then
|
|
102
|
+
if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
|
|
103
|
+
# Run the actual program with our arguments.
|
|
104
|
+
|
|
105
|
+
exec $progdir/$program ${1+"$@"}
|
|
106
|
+
|
|
107
|
+
$echo "$0: cannot exec $program ${1+"$@"}"
|
|
108
|
+
exit 1
|
|
109
|
+
fi
|
|
110
|
+
else
|
|
111
|
+
# The program doesn't exist.
|
|
112
|
+
$echo "$0: error: $progdir/$program does not exist" 1>&2
|
|
113
|
+
$echo "This script is just a wrapper for $program." 1>&2
|
|
114
|
+
echo "See the libtool documentation for more information." 1>&2
|
|
115
|
+
exit 1
|
|
116
|
+
fi
|
|
117
|
+
fi
|
data/test/data/testtoc.c
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/*
|
|
2
|
+
$Id: testtoc.c,v 1.4 2004/07/11 02:33:18 rocky Exp $
|
|
3
|
+
|
|
4
|
+
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
|
|
5
|
+
|
|
6
|
+
This program is free software; you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU General Public License as published by
|
|
8
|
+
the Free Software Foundation; either version 2 of the License, or
|
|
9
|
+
(at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
Regression test for cdio_tocfile.
|
|
23
|
+
*/
|
|
24
|
+
#ifdef HAVE_CONFIG_H
|
|
25
|
+
# include "config.h"
|
|
26
|
+
#endif
|
|
27
|
+
#include <cdio/cdio.h>
|
|
28
|
+
#include <cdio/logging.h>
|
|
29
|
+
|
|
30
|
+
#ifdef HAVE_STDIO_H
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
#endif
|
|
33
|
+
#ifdef HAVE_SYS_TYPES_H
|
|
34
|
+
#include <sys/types.h>
|
|
35
|
+
#endif
|
|
36
|
+
#ifdef HAVE_STDLIB_H
|
|
37
|
+
#include <stdlib.h>
|
|
38
|
+
#endif
|
|
39
|
+
#include <string.h>
|
|
40
|
+
|
|
41
|
+
#define NUM_GOOD_TOCS 15
|
|
42
|
+
#define NUM_BAD_TOCS 7
|
|
43
|
+
int
|
|
44
|
+
main(int argc, const char *argv[])
|
|
45
|
+
{
|
|
46
|
+
const char *toc_file[NUM_GOOD_TOCS] = {
|
|
47
|
+
"cdtext.toc",
|
|
48
|
+
"t1.toc",
|
|
49
|
+
"t2.toc",
|
|
50
|
+
"t3.toc",
|
|
51
|
+
"t4.toc",
|
|
52
|
+
"t5.toc",
|
|
53
|
+
"t6.toc",
|
|
54
|
+
"t7.toc",
|
|
55
|
+
"t8.toc",
|
|
56
|
+
"t9.toc",
|
|
57
|
+
"data1.toc",
|
|
58
|
+
"data2.toc",
|
|
59
|
+
"data5.toc",
|
|
60
|
+
"data6.toc",
|
|
61
|
+
"data7.toc",
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const char *badtoc_file[NUM_BAD_TOCS] = {
|
|
65
|
+
"bad-msf-1.toc",
|
|
66
|
+
"bad-msf-2.toc",
|
|
67
|
+
"bad-msf-3.toc",
|
|
68
|
+
"bad-cat1.toc",
|
|
69
|
+
"bad-cat2.toc",
|
|
70
|
+
"bad-cat3.toc",
|
|
71
|
+
"bad-mode1.toc"
|
|
72
|
+
};
|
|
73
|
+
int ret=0;
|
|
74
|
+
unsigned int i;
|
|
75
|
+
|
|
76
|
+
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
|
|
77
|
+
for (i=0; i<NUM_GOOD_TOCS; i++) {
|
|
78
|
+
if (!cdio_is_tocfile(toc_file[i])) {
|
|
79
|
+
printf("Incorrect: %s doesn't parse as a cdrdao TOC file.\n",
|
|
80
|
+
toc_file[i]);
|
|
81
|
+
ret=i+1;
|
|
82
|
+
} else {
|
|
83
|
+
printf("Correct: %s parses as a cdrdao TOC file.\n",
|
|
84
|
+
toc_file[i]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
for (i=0; i<NUM_BAD_TOCS; i++) {
|
|
89
|
+
if (!cdio_is_tocfile(badtoc_file[i])) {
|
|
90
|
+
printf("Correct: %s doesn't parse as a cdrdao TOC file.\n",
|
|
91
|
+
badtoc_file[i]);
|
|
92
|
+
} else {
|
|
93
|
+
printf("Incorrect: %s parses as a cdrdao TOC file.\n",
|
|
94
|
+
badtoc_file[i]);
|
|
95
|
+
ret+=50*i+1;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return ret;
|
|
101
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
This is free software; see the source for copying conditions.
|
|
2
|
+
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
|
|
3
|
+
PARTICULAR PURPOSE.
|
|
4
|
+
Hardware : Disk Image
|
|
5
|
+
Can eject : No
|
|
6
|
+
Can close tray : No
|
|
7
|
+
Can disable manual eject : No
|
|
8
|
+
Can select juke-box disc : No
|
|
9
|
+
|
|
10
|
+
Can set drive speed : No
|
|
11
|
+
Can detect if CD changed : No
|
|
12
|
+
Can read multiple sessions : No
|
|
13
|
+
Can hard reset device : No
|
|
14
|
+
|
|
15
|
+
Reading....
|
|
16
|
+
Can play audio : Yes
|
|
17
|
+
Can read CD-R : Yes
|
|
18
|
+
Can read CD-RW : Yes
|
|
19
|
+
Can read DVD-ROM : No
|
|
20
|
+
|
|
21
|
+
Writing....
|
|
22
|
+
Can write CD-RW : No
|
|
23
|
+
Can write DVD-R : No
|
|
24
|
+
Can write DVD-RAM : No
|
|
25
|
+
Can write DVD-RW : No
|
|
26
|
+
Can write DVD+RW : No
|
|
27
|
+
__________________________________
|
|
28
|
+
|
|
29
|
+
CD-ROM Track List (1 - 3)
|
|
30
|
+
#: MSF LSN Type Green?
|
|
31
|
+
1: 00:02:00 000000 XA true
|
|
32
|
+
2: 00:17:57 001182 XA true
|
|
33
|
+
3: 00:24:71 001721 XA true
|
|
34
|
+
170: 00:30:10 002110 leadout
|
|
35
|
+
Media Catalog Number (MCN): not available
|
|
36
|
+
__________________________________
|
|
37
|
+
CD Analysis Report
|
|
38
|
+
CD-ROM with CD-RTOS and ISO 9660 filesystem
|
|
39
|
+
ISO 9660: 1032 blocks, label `V0469 '
|
|
40
|
+
Application:
|
|
41
|
+
Preparer : LKVCDIMAGER 5.0.7.10(WIN32)
|
|
42
|
+
Publisher : LAURENS KOEHOORN
|
|
43
|
+
System : CD-RTOS CD-BRIDGE
|
|
44
|
+
Volume : V0469
|
|
45
|
+
Volume Set :
|
|
46
|
+
ISO9660 filesystem
|
|
47
|
+
root dir in PVD set to lsn 18
|
|
48
|
+
|
|
49
|
+
/:
|
|
50
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .
|
|
51
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
|
52
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 ext
|
|
53
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 mpegav
|
|
54
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 segment
|
|
55
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 sources
|
|
56
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 vcd
|
|
57
|
+
|
|
58
|
+
/EXT/:
|
|
59
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 .
|
|
60
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
|
61
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00 lot_x.vcd
|
|
62
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00 psd_x.vcd
|
|
63
|
+
|
|
64
|
+
/MPEGAV/:
|
|
65
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 .
|
|
66
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
|
67
|
+
- ---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00 avseq01.dat
|
|
68
|
+
- ---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00 avseq02.dat
|
|
69
|
+
|
|
70
|
+
/SEGMENT/:
|
|
71
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 .
|
|
72
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
|
73
|
+
- ---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00 item0001.dat
|
|
74
|
+
|
|
75
|
+
/Sources/:
|
|
76
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 .
|
|
77
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
|
78
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 html
|
|
79
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33 index.htm
|
|
80
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01 menu.ppm
|
|
81
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08 source.xml
|
|
82
|
+
|
|
83
|
+
/Sources/HTML/:
|
|
84
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 .
|
|
85
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 ..
|
|
86
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51 0.xml
|
|
87
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51 1.xml
|
|
88
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 img
|
|
89
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51 movies.css
|
|
90
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51 toc.xsl
|
|
91
|
+
|
|
92
|
+
/Sources/HTML/img/:
|
|
93
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 .
|
|
94
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 ..
|
|
95
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27 al.gif
|
|
96
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42 loeki_groep_01.gif
|
|
97
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42 loeki_groep_02.gif
|
|
98
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33 a_left.gif
|
|
99
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33 a_right.gif
|
|
100
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54 animatie.gif
|
|
101
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44 face_up2.gif
|
|
102
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09 familie.gif
|
|
103
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52 goldstar2.gif
|
|
104
|
+
- ----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15 vcd.gif
|
|
105
|
+
|
|
106
|
+
/VCD/:
|
|
107
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 .
|
|
108
|
+
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
|
|
109
|
+
- ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 entries.vcd
|
|
110
|
+
- ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 info.vcd
|
|
111
|
+
- ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 lot.vcd
|
|
112
|
+
- ----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00 psd.vcd
|
|
113
|
+
|
|
114
|
+
XA sectors Video CD
|
|
115
|
+
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
|
|
116
|
+
ISO 9660: 1032 blocks, label `V0469 '
|