rb_cdio 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/ext/CdIo.c +132 -0
  2. data/ext/CdIo.h +108 -0
  3. data/ext/CdIo.o +0 -0
  4. data/ext/CdIo_Cd.c +345 -0
  5. data/ext/CdIo_Cd.o +0 -0
  6. data/ext/CdIo_Common.c +84 -0
  7. data/ext/CdIo_Common.o +0 -0
  8. data/ext/CdIo_Modulo.c +226 -0
  9. data/ext/CdIo_Modulo.o +0 -0
  10. data/ext/CdIo_Track.c +91 -0
  11. data/ext/CdIo_Track.o +0 -0
  12. data/ext/CdIo_TrackIso9660.c +78 -0
  13. data/ext/CdIo_TrackIso9660.o +0 -0
  14. data/ext/Makefile +127 -0
  15. data/ext/extconf.rb +4 -0
  16. data/ext/mkmf.log +26 -0
  17. data/lib/rb_cdio_read.rb +39 -0
  18. data/test/data/Makefile +677 -0
  19. data/test/data/Makefile.am +78 -0
  20. data/test/data/Makefile.in +677 -0
  21. data/test/data/bad-cat1.cue +9 -0
  22. data/test/data/bad-cat1.toc +8 -0
  23. data/test/data/bad-cat2.cue +9 -0
  24. data/test/data/bad-cat2.toc +8 -0
  25. data/test/data/bad-cat3.cue +9 -0
  26. data/test/data/bad-cat3.toc +8 -0
  27. data/test/data/bad-mode1.cue +7 -0
  28. data/test/data/bad-mode1.toc +5 -0
  29. data/test/data/bad-msf-1.cue +7 -0
  30. data/test/data/bad-msf-1.toc +6 -0
  31. data/test/data/bad-msf-2.cue +7 -0
  32. data/test/data/bad-msf-2.toc +6 -0
  33. data/test/data/bad-msf-3.cue +7 -0
  34. data/test/data/bad-msf-3.toc +6 -0
  35. data/test/data/cdda-read.right +148 -0
  36. data/test/data/cdda.bin +0 -0
  37. data/test/data/cdda.cue +6 -0
  38. data/test/data/cdda.right +44 -0
  39. data/test/data/cdda.toc +13 -0
  40. data/test/data/cdtext.toc +48 -0
  41. data/test/data/check_cd_read.sh +53 -0
  42. data/test/data/check_common_fn +186 -0
  43. data/test/data/check_common_fn.in +186 -0
  44. data/test/data/check_cue.sh +102 -0
  45. data/test/data/check_cue.sh.in +102 -0
  46. data/test/data/check_iso.sh +32 -0
  47. data/test/data/check_iso.sh.in +32 -0
  48. data/test/data/check_nrg.sh +68 -0
  49. data/test/data/check_nrg.sh.in +68 -0
  50. data/test/data/check_opts.sh +33 -0
  51. data/test/data/check_opts0.right +40 -0
  52. data/test/data/check_opts1.right +40 -0
  53. data/test/data/check_opts2.right +34 -0
  54. data/test/data/check_opts3.right +34 -0
  55. data/test/data/check_opts4.right +44 -0
  56. data/test/data/check_opts5.right +44 -0
  57. data/test/data/check_opts6.right +44 -0
  58. data/test/data/check_opts7.right +44 -0
  59. data/test/data/check_sizeof +117 -0
  60. data/test/data/check_sizeof.c +77 -0
  61. data/test/data/copying.iso +0 -0
  62. data/test/data/copying.right +10 -0
  63. data/test/data/data1.toc +8 -0
  64. data/test/data/data2.toc +13 -0
  65. data/test/data/data5.toc +13 -0
  66. data/test/data/data6.toc +8 -0
  67. data/test/data/data7.toc +13 -0
  68. data/test/data/isofs-m1-read.right +258 -0
  69. data/test/data/isofs-m1.bin +0 -0
  70. data/test/data/isofs-m1.cue +3 -0
  71. data/test/data/isofs-m1.right +57 -0
  72. data/test/data/isofs-m1.toc +4 -0
  73. data/test/data/t1.toc +5 -0
  74. data/test/data/t2.toc +6 -0
  75. data/test/data/t3.toc +11 -0
  76. data/test/data/t4.toc +8 -0
  77. data/test/data/t5.toc +8 -0
  78. data/test/data/t6.toc +7 -0
  79. data/test/data/t7.toc +12 -0
  80. data/test/data/t8.toc +14 -0
  81. data/test/data/t9.toc +31 -0
  82. data/test/data/testassert +117 -0
  83. data/test/data/testassert.c +36 -0
  84. data/test/data/testbincue +117 -0
  85. data/test/data/testbincue.c +88 -0
  86. data/test/data/testdefault +117 -0
  87. data/test/data/testdefault.c +196 -0
  88. data/test/data/testischar +117 -0
  89. data/test/data/testischar.c +71 -0
  90. data/test/data/testiso9660 +117 -0
  91. data/test/data/testiso9660.c +153 -0
  92. data/test/data/testtoc +117 -0
  93. data/test/data/testtoc.c +101 -0
  94. data/test/data/vcd_demo.right +116 -0
  95. data/test/data/videocd.nrg +0 -0
  96. data/test/data/videocd.right +92 -0
  97. data/test/testall.rb +4 -0
  98. data/test/testbincue.rb +30 -0
  99. data/test/testtoc.rb +45 -0
  100. metadata +141 -0
@@ -0,0 +1,102 @@
1
+ #!/bin/sh
2
+ #$Id: check_cue.sh.in,v 1.20 2004/07/24 14:23:39 rocky Exp $
3
+ # Tests to see that BIN/CUE and cdrdao TOC file iamge reading is correct
4
+ # (via cd-info).
5
+
6
+ if test -n "@VCDINFO_LIBS@" ; then
7
+ vcd_opt='--no-vcd'
8
+ fi
9
+
10
+ if test -z "$srcdir" ; then
11
+ srcdir=`pwd`
12
+ fi
13
+
14
+ . ${srcdir}/check_common_fn
15
+
16
+ if test ! -x ../src/cd-info ; then
17
+ exit 77
18
+ fi
19
+
20
+ BASE=`basename $0 .sh`
21
+
22
+ fname=cdda
23
+ testnum=CD-DA
24
+ opts="--quiet --cue-file ${srcdir}/${fname}.cue --no-cddb"
25
+ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
26
+ RC=$?
27
+ check_result $RC "cd-info CUE test $testnum" "cd-info $opts"
28
+
29
+
30
+ opts="--quiet --bin-file ${srcdir}/${fname}.bin --no-cddb"
31
+ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
32
+ RC=$?
33
+ check_result $RC "cd-info BIN test $testnum" "cd-info $opts"
34
+
35
+ opts="--quiet --toc-file ${srcdir}/${fname}.toc --no-cddb"
36
+ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
37
+ RC=$?
38
+ check_result $RC "cd-info TOC test $testnum" "cd-info $opts"
39
+
40
+ fname=isofs-m1
41
+ testnum='ISO 9660 mode1 CUE'
42
+ if test -f ${srcdir}/${fname}.bin ; then
43
+ opts="-q --no-disc-mode --cue-file ${srcdir}/${fname}.cue --iso9660"
44
+ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
45
+ RC=$?
46
+ check_result $RC "cd-info CUE test $testnum" "$opts"
47
+ else
48
+ echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
49
+ fi
50
+
51
+ testnum='ISO 9660 mode1 TOC'
52
+ if test -f ${srcdir}/${fname}.bin ; then
53
+ opts="-q --no-disc-mode --toc-file ${srcdir}/${fname}.toc --iso9660"
54
+ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
55
+ RC=$?
56
+ check_result $RC "cd-info TOC test $testnum" "cd-info $opts"
57
+ else
58
+ echo "Don't see TOC file ${srcdir}/${fname}.bin. Test $testnum skipped."
59
+ fi
60
+
61
+ fname=vcd_demo
62
+ if test -z "@VCDINFO_LIBS@" ; then
63
+ right=${srcdir}/${fname}.right
64
+ else
65
+ right=${srcdir}/${fname}_vcdinfo.right
66
+ fi
67
+ testnum='Video CD'
68
+ if test -f ${srcdir}/${fname}.bin ; then
69
+ opts="-q --no-disc-mode -c ${srcdir}/${fname}.cue --iso9660"
70
+ test_cdinfo "$opts" ${fname}.dump $right
71
+ RC=$?
72
+ check_result $RC "cd-info CUE test $testnum" "cd-info $opts"
73
+
74
+ opts="-q --no-disc-mode -t ${srcdir}/${fname}.toc --iso9660"
75
+ if test -f ${srcdir}/${fname}.toc ; then
76
+ test_cdinfo "$opts" ${fname}.dump $right
77
+ RC=$?
78
+ check_result $RC "cd-info TOC test $testnum" "cd-info $opts"
79
+ else
80
+ echo "Don't see TOC file ${srcdir}/${fname}.toc. Test $testnum skipped."
81
+ fi
82
+ else
83
+ echo "Don't see CUE file ${srcdir}/${fname}.cue. Test $testnum skipped."
84
+ fi
85
+
86
+ fname=svcd_ogt_test_ntsc
87
+ testnum='Super Video CD'
88
+ if test -f ${srcdir}/${fname}.bin ; then
89
+ opts="-q --no-disc-mode --cue-file ${srcdir}/${fname}.cue $vcd_opt --iso9660"
90
+ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
91
+ RC=$?
92
+ check_result $RC "cd-info CUE test $testnum" "cd-info $opts"
93
+ else
94
+ echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
95
+ fi
96
+
97
+ exit $RC
98
+
99
+ #;;; Local Variables: ***
100
+ #;;; mode:shell-script ***
101
+ #;;; eval: (sh-set-shell "bash") ***
102
+ #;;; End: ***
@@ -0,0 +1,32 @@
1
+ #!/bin/sh
2
+ #$Id: check_iso.sh.in,v 1.3 2004/05/07 02:15:52 rocky Exp $
3
+
4
+ if test -z $srcdir ; then
5
+ srcdir=`pwd`
6
+ fi
7
+
8
+ . ${srcdir}/check_common_fn
9
+
10
+ if test ! -x ../src/iso-info ; then
11
+ exit 77
12
+ fi
13
+
14
+ BASE=`basename $0 .sh`
15
+ fname=copying
16
+
17
+ opts="--quiet ${srcdir}/${fname}.iso --iso9660 "
18
+ test_iso_info "$opts" ${fname}.dump ${srcdir}/${fname}.right
19
+ RC=$?
20
+ check_result $RC 'iso-info test 1' "iso-info $opts"
21
+
22
+ opts="--image ${srcdir}/${fname}.iso --extract $fname "
23
+ test_iso_read "$opts" ${fname} ${srcdir}/../COPYING
24
+ RC=$?
25
+ check_result $RC 'iso-read test 1' "iso-read $opts"
26
+
27
+ exit $RC
28
+
29
+ #;;; Local Variables: ***
30
+ #;;; mode:shell-script ***
31
+ #;;; eval: (sh-set-shell "bash") ***
32
+ #;;; End: ***
@@ -0,0 +1,32 @@
1
+ #!/bin/sh
2
+ #$Id: check_iso.sh.in,v 1.3 2004/05/07 02:15:52 rocky Exp $
3
+
4
+ if test -z $srcdir ; then
5
+ srcdir=`pwd`
6
+ fi
7
+
8
+ . ${srcdir}/check_common_fn
9
+
10
+ if test ! -x ../src/iso-info ; then
11
+ exit 77
12
+ fi
13
+
14
+ BASE=`basename $0 .sh`
15
+ fname=copying
16
+
17
+ opts="--quiet ${srcdir}/${fname}.iso --iso9660 "
18
+ test_iso_info "$opts" ${fname}.dump ${srcdir}/${fname}.right
19
+ RC=$?
20
+ check_result $RC 'iso-info test 1' "iso-info $opts"
21
+
22
+ opts="--image ${srcdir}/${fname}.iso --extract $fname "
23
+ test_iso_read "$opts" ${fname} ${srcdir}/../COPYING
24
+ RC=$?
25
+ check_result $RC 'iso-read test 1' "iso-read $opts"
26
+
27
+ exit $RC
28
+
29
+ #;;; Local Variables: ***
30
+ #;;; mode:shell-script ***
31
+ #;;; eval: (sh-set-shell "bash") ***
32
+ #;;; End: ***
@@ -0,0 +1,68 @@
1
+ #!/bin/sh
2
+ #$Id: check_nrg.sh.in,v 1.10 2004/05/31 13:32:19 rocky Exp $
3
+
4
+ if test -n "-lvcdinfo -lvcd -liso9660 -lcdio -lm " ; then
5
+ vcd_opt='--no-vcd'
6
+ fi
7
+
8
+ if test -z $srcdir ; then
9
+ srcdir=`pwd`
10
+ fi
11
+
12
+ . ${srcdir}/check_common_fn
13
+
14
+ if test ! -x ../src/cd-info ; then
15
+ exit 77
16
+ fi
17
+
18
+ BASE=`basename $0 .sh`
19
+ test_name=videocd
20
+
21
+ test_cdinfo "--quiet --nrg-file ${srcdir}/${test_name}.nrg $vcd_opt --iso9660 " \
22
+ ${test_name}.dump ${srcdir}/${test_name}.right
23
+ RC=$?
24
+ check_result $RC 'cd-info NRG test 1'
25
+
26
+ BASE=`basename $0 .sh`
27
+ nrg_file=${srcdir}/monvoisin.nrg
28
+
29
+ if test -f $nrg_file ; then
30
+ test_cdinfo "-q --nrg-file $nrg_file $vcd_opt --iso9660 " \
31
+ monvoisin.dump ${srcdir}/monvoisin.right
32
+ RC=$?
33
+ check_result $RC 'cd-info NRG test 2'
34
+ else
35
+ echo "Don't see NRG file ${nrg_file}. Test skipped."
36
+ exit 0
37
+ fi
38
+
39
+ test_name='svcdgs'
40
+ nrg_file=${srcdir}/${test_name}.nrg
41
+ if test -f $nrg_file ; then
42
+ test_cdinfo "-q --nrg-file $nrg_file $vcd_opt --iso9660" \
43
+ ${test_name}.dump ${srcdir}/${test_name}.right
44
+ RC=$?
45
+ check_result $RC "cd-info NRG $test_name"
46
+ else
47
+ echo "Don't see NRG file ${nrg_file}. Test skipped."
48
+ exit $SKIP_TEST_EXITCODE
49
+ fi
50
+
51
+ test_name='cdda-mcn'
52
+ nrg_file=${srcdir}/${test_name}.nrg
53
+ if test -f $nrg_file ; then
54
+ test_cdinfo "-q --nrg-file $nrg_file --no-cddb" \
55
+ ${test_name}.dump ${srcdir}/${test_name}.right
56
+ RC=$?
57
+ check_result $RC "cd-info NRG $test_name"
58
+
59
+ exit $RC
60
+ else
61
+ echo "Don't see NRG file ${nrg_file}. Test skipped."
62
+ exit $SKIP_TEST_EXITCODE
63
+ fi
64
+
65
+ #;;; Local Variables: ***
66
+ #;;; mode:shell-script ***
67
+ #;;; eval: (sh-set-shell "bash") ***
68
+ #;;; End: ***
@@ -0,0 +1,68 @@
1
+ #!/bin/sh
2
+ #$Id: check_nrg.sh.in,v 1.10 2004/05/31 13:32:19 rocky Exp $
3
+
4
+ if test -n "@VCDINFO_LIBS@" ; then
5
+ vcd_opt='--no-vcd'
6
+ fi
7
+
8
+ if test -z $srcdir ; then
9
+ srcdir=`pwd`
10
+ fi
11
+
12
+ . ${srcdir}/check_common_fn
13
+
14
+ if test ! -x ../src/cd-info ; then
15
+ exit 77
16
+ fi
17
+
18
+ BASE=`basename $0 .sh`
19
+ test_name=videocd
20
+
21
+ test_cdinfo "--quiet --nrg-file ${srcdir}/${test_name}.nrg $vcd_opt --iso9660 " \
22
+ ${test_name}.dump ${srcdir}/${test_name}.right
23
+ RC=$?
24
+ check_result $RC 'cd-info NRG test 1'
25
+
26
+ BASE=`basename $0 .sh`
27
+ nrg_file=${srcdir}/monvoisin.nrg
28
+
29
+ if test -f $nrg_file ; then
30
+ test_cdinfo "-q --nrg-file $nrg_file $vcd_opt --iso9660 " \
31
+ monvoisin.dump ${srcdir}/monvoisin.right
32
+ RC=$?
33
+ check_result $RC 'cd-info NRG test 2'
34
+ else
35
+ echo "Don't see NRG file ${nrg_file}. Test skipped."
36
+ exit 0
37
+ fi
38
+
39
+ test_name='svcdgs'
40
+ nrg_file=${srcdir}/${test_name}.nrg
41
+ if test -f $nrg_file ; then
42
+ test_cdinfo "-q --nrg-file $nrg_file $vcd_opt --iso9660" \
43
+ ${test_name}.dump ${srcdir}/${test_name}.right
44
+ RC=$?
45
+ check_result $RC "cd-info NRG $test_name"
46
+ else
47
+ echo "Don't see NRG file ${nrg_file}. Test skipped."
48
+ exit $SKIP_TEST_EXITCODE
49
+ fi
50
+
51
+ test_name='cdda-mcn'
52
+ nrg_file=${srcdir}/${test_name}.nrg
53
+ if test -f $nrg_file ; then
54
+ test_cdinfo "-q --nrg-file $nrg_file --no-cddb" \
55
+ ${test_name}.dump ${srcdir}/${test_name}.right
56
+ RC=$?
57
+ check_result $RC "cd-info NRG $test_name"
58
+
59
+ exit $RC
60
+ else
61
+ echo "Don't see NRG file ${nrg_file}. Test skipped."
62
+ exit $SKIP_TEST_EXITCODE
63
+ fi
64
+
65
+ #;;; Local Variables: ***
66
+ #;;; mode:shell-script ***
67
+ #;;; eval: (sh-set-shell "bash") ***
68
+ #;;; End: ***
@@ -0,0 +1,33 @@
1
+ #!/bin/sh
2
+ #$Id: check_opts.sh,v 1.6 2004/05/07 02:15:56 rocky Exp $
3
+ # Check cd-info options
4
+ if test -z "$srcdir" ; then
5
+ srcdir=`pwd`
6
+ fi
7
+
8
+ . ${srcdir}/check_common_fn
9
+
10
+ if test ! -x ../src/cd-info ; then
11
+ exit 77
12
+ fi
13
+
14
+ BASE=`basename $0 .sh`
15
+
16
+ fname=isofs-m1
17
+ i=0
18
+ for opt in '-T' '--no-tracks' '-A' '--no-analyze' '-I' '--no-ioctl' \
19
+ '-q' '--quiet' ; do
20
+ testname=${BASE}$i
21
+ opts="--cue-file ${srcdir}/${fname}.cue $opt --quiet"
22
+ test_cdinfo "$opts" ${testname}.dump ${srcdir}/${testname}.right
23
+ RC=$?
24
+ check_result $RC "cd-info option test $opt" "cd-info $opts"
25
+ i=`expr $i + 1`
26
+ done
27
+
28
+ exit $RC
29
+
30
+ #;;; Local Variables: ***
31
+ #;;; mode:shell-script ***
32
+ #;;; eval: (sh-set-shell "bash") ***
33
+ #;;; End: ***
@@ -0,0 +1,40 @@
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
+ Disc mode is listed as: CD-DATA Form 1
30
+ Media Catalog Number (MCN): not available
31
+ __________________________________
32
+ CD Analysis Report
33
+ CD-ROM with ISO 9660 filesystem
34
+ ISO 9660: 64 blocks, label `CDROM '
35
+ Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
36
+ Preparer :
37
+ Publisher :
38
+ System : LINUX
39
+ Volume : CDROM
40
+ Volume Set :
@@ -0,0 +1,40 @@
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
+ Disc mode is listed as: CD-DATA Form 1
30
+ Media Catalog Number (MCN): not available
31
+ __________________________________
32
+ CD Analysis Report
33
+ CD-ROM with ISO 9660 filesystem
34
+ ISO 9660: 64 blocks, label `CDROM '
35
+ Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
36
+ Preparer :
37
+ Publisher :
38
+ System : LINUX
39
+ Volume : CDROM
40
+ Volume Set :
@@ -0,0 +1,34 @@
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
+ Disc mode is listed as: CD-DATA Form 1
30
+ CD-ROM Track List (1 - 1)
31
+ #: MSF LSN Type Green?
32
+ 1: 00:02:00 000000 data false
33
+ 170: 00:06:02 000302 leadout
34
+ Media Catalog Number (MCN): not available