rb_cdio 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.txt +26 -0
- data/LICENSE +340 -0
- data/README.EXT +1051 -0
- data/README.txt +16 -0
- data/VERSION +1 -0
- data/doc/classes/CdIo.html +523 -0
- data/doc/classes/CdIo.src/M000001.html +17 -0
- data/doc/classes/CdIo.src/M000002.html +17 -0
- data/doc/classes/CdIo.src/M000003.html +17 -0
- data/doc/classes/CdIo.src/M000004.html +17 -0
- data/doc/classes/CdIo.src/M000005.html +17 -0
- data/doc/classes/CdIo.src/M000006.html +17 -0
- data/doc/classes/CdIo.src/M000007.html +17 -0
- data/doc/classes/CdIo.src/M000008.html +17 -0
- data/doc/classes/CdIo.src/M000009.html +17 -0
- data/doc/classes/CdIo.src/M000010.html +17 -0
- data/doc/classes/CdIo.src/M000011.html +17 -0
- data/doc/classes/CdIo.src/M000012.html +17 -0
- data/doc/classes/CdIo.src/M000013.html +17 -0
- data/doc/classes/CdIo.src/M000014.html +17 -0
- data/doc/classes/CdIo.src/M000015.html +17 -0
- data/doc/classes/CdIo.src/M000016.html +17 -0
- data/doc/classes/CdIo/Cd.html +348 -0
- data/doc/classes/CdIo/Cd.src/M000011.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000012.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000013.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000014.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000015.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000016.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000017.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000018.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000019.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000021.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000022.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000023.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000024.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000025.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000026.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000027.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000028.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000029.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000030.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000031.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000032.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000033.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000034.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000035.html +17 -0
- data/doc/classes/CdIo/Cd.src/M000036.html +17 -0
- data/doc/classes/CdIo/CdText.html +111 -0
- data/doc/classes/CdIo/Device.html +111 -0
- data/doc/classes/CdIo/Track.html +246 -0
- data/doc/classes/CdIo/Track.src/M000009.html +17 -0
- data/doc/classes/CdIo/Track.src/M000010.html +17 -0
- data/doc/classes/CdIo/Track.src/M000011.html +17 -0
- data/doc/classes/CdIo/Track.src/M000017.html +17 -0
- data/doc/classes/CdIo/Track.src/M000018.html +17 -0
- data/doc/classes/CdIo/Track.src/M000019.html +17 -0
- data/doc/classes/CdIo/Track.src/M000020.html +17 -0
- data/doc/classes/CdIo/TrackIso9660.html +159 -0
- data/doc/classes/CdIo/Tracks.html +199 -0
- data/doc/classes/CdIo/Tracks.src/M000020.html +17 -0
- data/doc/classes/CdIo/Tracks.src/M000021.html +17 -0
- data/doc/classes/CdIo/Tracks.src/M000022.html +17 -0
- data/doc/created.rid +1 -0
- data/doc/files/rb_cdio_def_rb.html +169 -0
- data/doc/files/test/testall_rb.html +110 -0
- data/doc/fr_class_index.html +31 -0
- data/doc/fr_file_index.html +27 -0
- data/doc/fr_method_index.html +48 -0
- data/doc/index.html +24 -0
- data/ext/CdIo.c +41 -20
- data/ext/CdIo.h +19 -9
- data/ext/CdIo_Cd.c +35 -52
- data/ext/CdIo_Common.c +56 -12
- data/ext/CdIo_Modulo.c +54 -34
- data/ext/CdIo_Track.c +24 -7
- data/ext/CdIo_TrackIso9660.c +1 -1
- data/ext/CdIo_Tracks.c +66 -0
- data/mkmf.log +26 -0
- data/rb_cdio.def.rb +187 -0
- data/svn-commit.tmp +5 -0
- data/tags +47 -0
- data/test/testclose.rb +19 -0
- data/test/testmethods.rb +28 -0
- metadata +253 -20
- data/ext/CdIo.o +0 -0
- data/ext/CdIo_Cd.o +0 -0
- data/ext/CdIo_Common.o +0 -0
- data/ext/CdIo_Modulo.o +0 -0
- data/ext/CdIo_Track.o +0 -0
- data/ext/CdIo_TrackIso9660.o +0 -0
- data/ext/Makefile +0 -127
- data/test/data/Makefile +0 -677
- data/test/data/Makefile.am +0 -78
- data/test/data/Makefile.in +0 -677
- data/test/data/testassert +0 -117
- data/test/data/testbincue +0 -117
- data/test/data/testdefault +0 -117
- data/test/data/testischar +0 -117
- data/test/data/testiso9660 +0 -117
- data/test/data/testtoc +0 -117
data/ext/CdIo_Modulo.c
CHANGED
@@ -87,23 +87,26 @@ rb_cdio_driver_describe(VALUE module, VALUE driver)
|
|
87
87
|
VALUE
|
88
88
|
rb_cdio_open(int argc, VALUE * argv, VALUE module)
|
89
89
|
{
|
90
|
-
VALUE
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
90
|
+
VALUE source,
|
91
|
+
driver,
|
92
|
+
block;
|
93
|
+
VALUE argv_2[2];
|
94
|
+
// def open(source=nil,driver=nil) &block
|
95
|
+
rb_scan_args(argc, argv, "02&", &source, &driver, &block);
|
96
|
+
if (Qnil != source) {
|
97
|
+
Check_Type(source, T_STRING);
|
96
98
|
}
|
97
99
|
FIXNUM_P(driver);
|
98
|
-
argv_2[0]=source;
|
99
|
-
argv_2[1]=driver;
|
100
|
-
VALUE
|
101
|
-
if (Qnil==block) {
|
102
|
-
|
100
|
+
argv_2[0] = source;
|
101
|
+
argv_2[1] = driver;
|
102
|
+
VALUE cd = rb_cdio_cd_new(2, argv_2, cCdIoCd);
|
103
|
+
if (Qnil == block) {
|
104
|
+
return cd;
|
103
105
|
} else {
|
104
|
-
|
105
|
-
|
106
|
-
|
106
|
+
rb_gc_start();
|
107
|
+
rb_yield(cd);
|
108
|
+
cd = Qnil;
|
109
|
+
return Qnil;
|
107
110
|
}
|
108
111
|
}
|
109
112
|
|
@@ -190,37 +193,54 @@ rb_cdio_track_type_describe(VALUE module, VALUE track)
|
|
190
193
|
return rb_str_new2(desc);
|
191
194
|
}
|
192
195
|
|
193
|
-
static
|
194
|
-
|
196
|
+
static VALUE
|
197
|
+
_is_file_bool(bool(*pf) (const char *n), VALUE name)
|
198
|
+
{
|
199
|
+
Check_Type(name, T_STRING);
|
195
200
|
SafeStringValue(name);
|
196
|
-
bool
|
197
|
-
return res ?
|
201
|
+
bool res = pf(StringValuePtr(name));
|
202
|
+
return res ? Qtrue : Qfalse;
|
198
203
|
}
|
199
204
|
|
200
|
-
static
|
201
|
-
|
205
|
+
static VALUE
|
206
|
+
_is_file_char(char *(*pf) (const char *n), VALUE name)
|
207
|
+
{
|
208
|
+
Check_Type(name, T_STRING);
|
202
209
|
SafeStringValue(name);
|
203
|
-
char
|
204
|
-
if(NULL==bin) {
|
205
|
-
|
210
|
+
char *bin = pf(StringValuePtr(name));
|
211
|
+
if (NULL == bin) {
|
212
|
+
return Qnil;
|
206
213
|
} else {
|
207
|
-
|
214
|
+
return rb_str_new2(bin);
|
208
215
|
}
|
209
216
|
}
|
210
217
|
|
211
|
-
VALUE
|
212
|
-
|
218
|
+
VALUE
|
219
|
+
rb_cdio_is_binfile(VALUE module, VALUE name)
|
220
|
+
{
|
221
|
+
return _is_file_char(&cdio_is_binfile, name);
|
213
222
|
}
|
214
|
-
|
215
|
-
|
223
|
+
|
224
|
+
VALUE
|
225
|
+
rb_cdio_is_cuefile(VALUE module, VALUE name)
|
226
|
+
{
|
227
|
+
return _is_file_char(&cdio_is_cuefile, name);
|
216
228
|
}
|
217
|
-
|
218
|
-
|
229
|
+
|
230
|
+
VALUE
|
231
|
+
rb_cdio_is_nrg(VALUE module, VALUE name)
|
232
|
+
{
|
233
|
+
return _is_file_bool(&cdio_is_nrg, name);
|
219
234
|
}
|
220
|
-
|
221
|
-
|
235
|
+
|
236
|
+
VALUE
|
237
|
+
rb_cdio_is_tocfile(VALUE module, VALUE name)
|
238
|
+
{
|
239
|
+
return _is_file_bool(cdio_is_tocfile, name);
|
222
240
|
}
|
223
|
-
|
241
|
+
|
242
|
+
VALUE
|
243
|
+
rb_cdio_is_device(int argc, VALUE * argv, VALUE module)
|
244
|
+
{
|
224
245
|
return Qnil;
|
225
246
|
}
|
226
|
-
|
data/ext/CdIo_Track.c
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
#include "CdIo.h"
|
11
11
|
/**
|
12
|
-
* Funci
|
12
|
+
* Funci?n extraida de cd-info.c
|
13
13
|
*/
|
14
14
|
|
15
15
|
|
@@ -31,17 +31,18 @@ rb_cdio_track_number(VALUE obj)
|
|
31
31
|
VALUE
|
32
32
|
rb_cdio_track_green(VALUE obj)
|
33
33
|
{
|
34
|
-
GET_CDIO(rb_iv_get(obj, "@cd"),p_cdio);
|
34
|
+
GET_CDIO(rb_iv_get(obj, "@cd"), p_cdio);
|
35
35
|
if (cdio_get_track_green(p_cdio, rb_cdio_track_number(obj))) {
|
36
36
|
return Qtrue;
|
37
37
|
} else {
|
38
38
|
return Qfalse;
|
39
39
|
}
|
40
40
|
}
|
41
|
+
|
41
42
|
VALUE
|
42
43
|
rb_cdio_track_init(VALUE obj, VALUE cd, VALUE track)
|
43
44
|
{
|
44
|
-
// Verificaci
|
45
|
+
// Verificaci?n de tipos.
|
45
46
|
lsn_t lsn;
|
46
47
|
int i_track;
|
47
48
|
FIXNUM_P(track);
|
@@ -50,6 +51,18 @@ rb_cdio_track_init(VALUE obj, VALUE cd, VALUE track)
|
|
50
51
|
}
|
51
52
|
GET_CDIO(cd, p_cdio);
|
52
53
|
i_track = FIX2INT(track);
|
54
|
+
// Verify track number
|
55
|
+
track_t min,
|
56
|
+
max;
|
57
|
+
min = cdio_get_first_track_num(p_cdio);
|
58
|
+
max = min + cdio_get_num_tracks(p_cdio) - 1;
|
59
|
+
if (i_track != CDIO_CDROM_LEADOUT_TRACK
|
60
|
+
&& (i_track < min || i_track > max)) {
|
61
|
+
char buffer[64];
|
62
|
+
sprintf(buffer, "The track %d doesn't exists", i_track);
|
63
|
+
rb_raise(rb_eException, buffer);
|
64
|
+
}
|
65
|
+
|
53
66
|
/** :cd :number :format, :green, :lba,:lsn,:msf,:sec_count*/
|
54
67
|
rb_iv_set(obj, "@cd", cd);
|
55
68
|
rb_iv_set(obj, "@number", track);
|
@@ -80,12 +93,16 @@ rb_cdio_track_init(VALUE obj, VALUE cd, VALUE track)
|
|
80
93
|
cdio_iso_analysis_t iso_analysis;
|
81
94
|
fs = cdio_guess_cd_type(p_cdio, 0, i_track, &iso_analysis);
|
82
95
|
rb_iv_set(obj, "@track_type", INT2FIX(fs));
|
83
|
-
|
96
|
+
rb_iv_set(obj, "@leadout",
|
97
|
+
(i_track == CDIO_CDROM_LEADOUT_TRACK) ? Qtrue : Qfalse);
|
84
98
|
return obj;
|
85
99
|
}
|
86
100
|
|
87
|
-
VALUE
|
88
|
-
|
89
|
-
|
101
|
+
VALUE
|
102
|
+
rb_cdio_track_get_cdtext(VALUE obj)
|
103
|
+
{
|
104
|
+
GET_CDIO(rb_iv_get(obj, "@cd"), p_cdio);
|
105
|
+
const cdtext_t *cdtext =
|
106
|
+
cdio_get_cdtext(p_cdio, rb_cdio_track_number(obj));
|
90
107
|
return get_cdtext(cdtext);
|
91
108
|
}
|
data/ext/CdIo_TrackIso9660.c
CHANGED
data/ext/CdIo_Tracks.c
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
#include "CdIo.h"
|
2
|
+
VALUE
|
3
|
+
rb_cdio_tracks_init(VALUE obj, VALUE cd)
|
4
|
+
{
|
5
|
+
if (Qtrue != rb_obj_is_instance_of(cd, cCdIoCd)) {
|
6
|
+
rb_raise(rb_eArgError, "Arg 1 must be a CdIo::Cd");
|
7
|
+
}
|
8
|
+
rb_iv_set(obj, "@cd", cd);
|
9
|
+
VALUE aTracks;
|
10
|
+
aTracks = rb_ary_new();
|
11
|
+
GET_CDIO(cd, p_cdio);
|
12
|
+
track_t first_track_num;
|
13
|
+
track_t num_tracks;
|
14
|
+
first_track_num = cdio_get_first_track_num(p_cdio);
|
15
|
+
num_tracks = cdio_get_num_tracks(p_cdio);
|
16
|
+
// printf("C->Primera pista: %d\n",first_track_num);
|
17
|
+
// printf("C->Numero pistas: %d\n",num_tracks);
|
18
|
+
int j,
|
19
|
+
i = first_track_num;
|
20
|
+
for (j = 0; j < num_tracks; i++, j++) {
|
21
|
+
rb_ary_push(aTracks, get_track(cd, i));
|
22
|
+
}
|
23
|
+
rb_iv_set(obj, "@tracks", aTracks);
|
24
|
+
return obj;
|
25
|
+
}
|
26
|
+
|
27
|
+
VALUE
|
28
|
+
rb_cdio_tracks_each(int argc, VALUE * argv, VALUE obj)
|
29
|
+
{
|
30
|
+
VALUE block;
|
31
|
+
int len,
|
32
|
+
i;
|
33
|
+
rb_scan_args(argc, argv, "00&", &block);
|
34
|
+
VALUE aTracks = rb_iv_get(obj, "@tracks");
|
35
|
+
len = RARRAY(aTracks)->len;
|
36
|
+
for (i = 0; i < len; i++) {
|
37
|
+
rb_yield(rb_ary_entry(aTracks, i));
|
38
|
+
}
|
39
|
+
return aTracks;
|
40
|
+
}
|
41
|
+
|
42
|
+
VALUE
|
43
|
+
rb_cdio_tracks_diff(VALUE obj, VALUE a, VALUE b)
|
44
|
+
{
|
45
|
+
int ia,
|
46
|
+
ib,
|
47
|
+
ret;
|
48
|
+
ia = rb_cdio_track_number(a);
|
49
|
+
ib = rb_cdio_track_number(b);
|
50
|
+
if (ia > ib) {
|
51
|
+
ret = 1;
|
52
|
+
} else if (ia < ib) {
|
53
|
+
ret = -1;
|
54
|
+
} else {
|
55
|
+
ret = 0;
|
56
|
+
}
|
57
|
+
return INT2FIX(ret);
|
58
|
+
}
|
59
|
+
|
60
|
+
VALUE
|
61
|
+
rb_cdio_tracks_index(VALUE obj, VALUE index)
|
62
|
+
{
|
63
|
+
|
64
|
+
FIXNUM_P(index);
|
65
|
+
return get_track(rb_iv_get(obj, "@cd"), FIX2INT(index));
|
66
|
+
}
|
data/mkmf.log
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
have_library: checking for cdio_open() in -lcdio... -------------------- yes
|
2
|
+
|
3
|
+
"i686-pc-linux-gnu-gcc -o conftest -I/home/cdx/ruby/rb_cdio -I/usr/lib/ruby/1.8/i686-linux -O2 -march=athlon-xp -m3dnow -msse -mfpmath=sse -mmmx -pipe -ffast-math -fPIC conftest.c -L'/usr/lib' -Wl,-R'/usr/lib' -lruby18-static -lcdio -ldl -lcrypt -lm -lc"
|
4
|
+
checked program was:
|
5
|
+
/* begin */
|
6
|
+
|
7
|
+
/*top*/
|
8
|
+
int main() { return 0; }
|
9
|
+
int t() { cdio_open(); return 0; }
|
10
|
+
/* end */
|
11
|
+
|
12
|
+
--------------------
|
13
|
+
|
14
|
+
have_library: checking for iso9660_get_system_id() in -liso9660... -------------------- yes
|
15
|
+
|
16
|
+
"i686-pc-linux-gnu-gcc -o conftest -I/home/cdx/ruby/rb_cdio -I/usr/lib/ruby/1.8/i686-linux -O2 -march=athlon-xp -m3dnow -msse -mfpmath=sse -mmmx -pipe -ffast-math -fPIC conftest.c -L'/usr/lib' -Wl,-R'/usr/lib' -lcdio -lruby18-static -liso9660 -lcdio -ldl -lcrypt -lm -lc"
|
17
|
+
checked program was:
|
18
|
+
/* begin */
|
19
|
+
|
20
|
+
/*top*/
|
21
|
+
int main() { return 0; }
|
22
|
+
int t() { iso9660_get_system_id(); return 0; }
|
23
|
+
/* end */
|
24
|
+
|
25
|
+
--------------------
|
26
|
+
|
data/rb_cdio.def.rb
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
# = rb_cdio
|
3
|
+
# This package create bindings to the library libcdio
|
4
|
+
#
|
5
|
+
# == Version
|
6
|
+
# :include:VERSION
|
7
|
+
#
|
8
|
+
# == Changelog
|
9
|
+
# :include:ChangeLog.txt
|
10
|
+
#
|
11
|
+
|
12
|
+
# = Module CdIo
|
13
|
+
# The module CdIo defines constants, classes and methods
|
14
|
+
# to retrieve information of Cd devices and images,
|
15
|
+
# using the libcdio library.
|
16
|
+
#
|
17
|
+
#
|
18
|
+
# The name of the constants are the same of libcdio, so theirs values
|
19
|
+
# can change on different OS and versions of the library
|
20
|
+
|
21
|
+
module CdIo
|
22
|
+
CDIO_DISC_MODE_CD_DA=0
|
23
|
+
CDIO_DISC_MODE_CD_DATA=1
|
24
|
+
CDIO_DISC_MODE_CD_MIXED=3
|
25
|
+
CDIO_DISC_MODE_CD_XA=2
|
26
|
+
CDIO_DISC_MODE_DVD_OTHER=10
|
27
|
+
CDIO_DISC_MODE_DVD_PR=8
|
28
|
+
CDIO_DISC_MODE_DVD_PRW=9
|
29
|
+
CDIO_DISC_MODE_DVD_R=6
|
30
|
+
CDIO_DISC_MODE_DVD_RAM=5
|
31
|
+
CDIO_DISC_MODE_DVD_ROM=4
|
32
|
+
CDIO_DISC_MODE_DVD_RW=7
|
33
|
+
CDIO_DISC_MODE_ERROR=12
|
34
|
+
CDIO_DISC_MODE_NO_INFO=11
|
35
|
+
# Driver for a .bin or .cue file
|
36
|
+
DRIVER_BINCUE=8
|
37
|
+
DRIVER_CDRDAO=7
|
38
|
+
# Driver for a device (cd or dvd)
|
39
|
+
DRIVER_DEVICE=10
|
40
|
+
DRIVER_FREEBSD=2
|
41
|
+
DRIVER_LINUX=3
|
42
|
+
DRIVER_NRG=9
|
43
|
+
DRIVER_OSX=5
|
44
|
+
DRIVER_SOLARIS=4
|
45
|
+
DRIVER_UNKNOWN=0
|
46
|
+
DRIVER_WIN32=6
|
47
|
+
TRACK_FORMAT_AUDIO=0
|
48
|
+
TRACK_FORMAT_CDI=1
|
49
|
+
TRACK_FORMAT_DATA=3
|
50
|
+
TRACK_FORMAT_ERROR=5
|
51
|
+
TRACK_FORMAT_PSX=4
|
52
|
+
TRACK_FORMAT_XA=2
|
53
|
+
# The number for the leadout track of a cd
|
54
|
+
CDIO_CDROM_LEADOUT_TRACK=170
|
55
|
+
# Returns all active devices (with a cd or dvd inside)
|
56
|
+
#
|
57
|
+
# CdIo.get_devices #=> ["/dev/cdrom"]
|
58
|
+
def CdIo.devices
|
59
|
+
end
|
60
|
+
# Returns a string for the default device
|
61
|
+
#
|
62
|
+
# CdIo.get_default_device #=> "/dev/cdrom"
|
63
|
+
def CdIo.default_device(cd=nil)
|
64
|
+
end
|
65
|
+
# Returns a hash with the capabilities of the device
|
66
|
+
#
|
67
|
+
# CdIo.get_drive_cap_dev("/dev/cdrom") #=> {"misc"=>{"close_tray"=>true, "mcn"=>false, "media_changed"=>false, "select_disk"=>false, "lock"=>true, "isrc"=>false, "multi_session"=>true, "misc_reset"=>false, "eject"=>true, "select_speed"=>false, "file"=>false}, "read"=>{"dvd-rw"=>false, "audio"=>true, "c2_errs"=>false, "dvd-r"=>false, "cd-da"=>true, "dvd-rom"=>false, "cd-r"=>true, "dvd-ram"=>false, "dvr+r"=>false, "cd+g"=>false, "dvd+rw"=>false, "cd-rw"=>true}, "write"=>{"dvd-rw"=>false, "cd"=>false, "dvd-r"=>false, "burn_proof"=>false, "dvd+r"=>false, "cd-r"=>false, "dvd"=>false, "dvd-ram"=>false, "dvd+rw"=>false, "mount_rainier"=>false, "cd-rw"=>false}}
|
68
|
+
#
|
69
|
+
def CdIo.drive_cap_dev(device)
|
70
|
+
end
|
71
|
+
# Returns the description for the driver id
|
72
|
+
#
|
73
|
+
# CdIo.driver_describe(CdIo::DRIVER_LINUX) #=>"GNU/Linux ioctl and MMC driver"
|
74
|
+
def CdIo.driver_describe(driver)
|
75
|
+
end
|
76
|
+
# Returns the description for the discmode id
|
77
|
+
#
|
78
|
+
# CdIo.discmode_describe(CdIo::CDIO_DISC_MODE_CD_DA) #=> "CD-DA"
|
79
|
+
def CdIo.discmode_describe(driver)
|
80
|
+
end
|
81
|
+
# Returns the description for the track_format id
|
82
|
+
#
|
83
|
+
# CdIo.track_format_describe(CdIo::TRACK_FORMAT_XA) #=> "XA"
|
84
|
+
def CdIo.track_format_describe(track_format)
|
85
|
+
end
|
86
|
+
# Returns the description for the type of a CdIo::Track object
|
87
|
+
#
|
88
|
+
# CdIo.track_type_describe(cd.tracks[1]) #=> "audio"
|
89
|
+
def CdIo.track_type_describe(track)
|
90
|
+
end
|
91
|
+
# Create a CdIo::Cd object.
|
92
|
+
#
|
93
|
+
# * With no device, use the default device
|
94
|
+
# * With no driver, use CdIo::DRIVER_UNKNOWN
|
95
|
+
# If you provide a block, the argument will be a CdIo::Cd object
|
96
|
+
# it will be freed at the end of the block.
|
97
|
+
#
|
98
|
+
# CdIo.open("/dev/cdrom") #=><CdIo::Cd:0xb7d85f7c>
|
99
|
+
#
|
100
|
+
# CdIo.open() {|cd| p cd} #=><CdIo::Cd:0xb7d85f7c>
|
101
|
+
#
|
102
|
+
def CdIo.open(device=nil,driver=nil,&block)
|
103
|
+
end
|
104
|
+
class Cd
|
105
|
+
attr_reader :device, :mcn, :driver_name, :driver_id, :first_track_num, :disc_mode, :num_tracks, :stat_size, :cddb_id
|
106
|
+
#
|
107
|
+
# Create a new Cd::CdIo object.
|
108
|
+
# The first argument is an String for a device or a cue/bin/toc/nrg file
|
109
|
+
# The seconf argument is the constant for a Driver (default CdIo::DRIVER_UNKNOWN)
|
110
|
+
# * CdIo::Cd.new()
|
111
|
+
# * CdIo::Cd.new("/dev/cdrom")
|
112
|
+
# * CdIo::Cd.new("/dev/cdrom", CdIo::DRIVER_UNKNOWN)
|
113
|
+
#
|
114
|
+
def initialize(device,driver)
|
115
|
+
end
|
116
|
+
# Returns a hash with cdtext data for the cd, nil if doesn't exists
|
117
|
+
#
|
118
|
+
# cd.cdtext # =>cdtext information
|
119
|
+
def cdtext(track)
|
120
|
+
end
|
121
|
+
# Returns an array of CdIo::Track for the cd
|
122
|
+
#
|
123
|
+
# cd.tracks #=>[#<CdIo::TrackIso9660:0xb7d88100>]
|
124
|
+
def tracks
|
125
|
+
end
|
126
|
+
|
127
|
+
# Returns true if CdIo::Cd is a cd, else otherwise
|
128
|
+
def is_cd?
|
129
|
+
end
|
130
|
+
# Returns true if CdIo::Cd is a dvd, else otherwise
|
131
|
+
def is_dvd?
|
132
|
+
end
|
133
|
+
# Returns a hash with the capabilities of the device.
|
134
|
+
# See CdIo.drive_cap_dev
|
135
|
+
def drive_cap
|
136
|
+
end
|
137
|
+
# Return a hash with information for the hardware
|
138
|
+
#
|
139
|
+
# cd.hwinfo #=>{"revision"=>"1.00", "vendor"=>"HL-DT-ST", "model"=>"CD-ROM GCR-8520B"}
|
140
|
+
def hwinfo
|
141
|
+
end
|
142
|
+
# Closes the device.
|
143
|
+
# Actually, do nothing :P
|
144
|
+
def close
|
145
|
+
end
|
146
|
+
end
|
147
|
+
# Provides access to the tracks of a CdIo::Cd object
|
148
|
+
class Tracks
|
149
|
+
# Returns a CdIo::Tracks object por a given CdIo::Cd
|
150
|
+
include Enumerable
|
151
|
+
def initialize(cd)
|
152
|
+
end
|
153
|
+
# Iterates through the tracks
|
154
|
+
#
|
155
|
+
# tracks.each {|track| p track}
|
156
|
+
def each(&block)
|
157
|
+
end
|
158
|
+
# Returns a track by the index.
|
159
|
+
# You can use CdIo::CDIO_CDROM_LEADOUT_TRACK to get the
|
160
|
+
# leadout track
|
161
|
+
#
|
162
|
+
# tracks[CdIo::CDIO_CDROM_LEADOUT_TRACK] => #<CdIo::Track:0xb7d867ec @leadout=true, @min=69, @sec_count=0, @frames=22, @lsn=311872, @format=5, @track_type=15, @msf="69:20:22", @number=170, @sec=20, @cd=#<CdIo::Cd:0xb7d84b7c>, @lba=312022>
|
163
|
+
def [](index)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
# Representation of a track for a CdIo::Cd object
|
167
|
+
class Track
|
168
|
+
attr_reader :cd, :number, :format, :lba,:lsn,:min,:sec,:frames,:sec_count, :leadout
|
169
|
+
# Returns a track for a given CdIo::Cd object and a number track.
|
170
|
+
#
|
171
|
+
# Use CdIo::Cd.tracks instead
|
172
|
+
#
|
173
|
+
def initialize(cd,track)
|
174
|
+
end
|
175
|
+
# Returns true if track is a green track type (mode 2)
|
176
|
+
def green?
|
177
|
+
end
|
178
|
+
# Returns a hash with the cdtext data, or nil if doesn't exists.
|
179
|
+
def cdtext
|
180
|
+
end
|
181
|
+
end
|
182
|
+
# Representation of a Iso 9660 Track for a CdIo::Cd object.
|
183
|
+
# Have some extra attributes, like system_id, volume_id....
|
184
|
+
class TrackIso9660 < Track
|
185
|
+
attr_reader :system_id, :volume_id, :volumeset_id, :preparer_id, :publisher_id, :application_id
|
186
|
+
end
|
187
|
+
end
|