rubysdl 1.3.1 → 2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/MANIFEST +22 -2
- data/NEWS.en +80 -0
- data/NEWS.ja +83 -0
- data/README.en +2 -1
- data/README.ja +2 -2
- data/doc-en/Makefile +18 -0
- data/doc-en/cdrom.rsd +417 -0
- data/doc-en/collision.rsd +174 -0
- data/doc-en/event.rsd +1476 -0
- data/doc-en/font.rsd +811 -0
- data/doc-en/general.rsd +43 -0
- data/doc-en/init.rsd +168 -0
- data/doc-en/joystick.rsd +401 -0
- data/doc-en/mixer.rsd +869 -0
- data/doc-en/mpeg.rsd +585 -0
- data/doc-en/opengl.rsd +155 -0
- data/doc-en/sdlskk.rsd +472 -0
- data/doc-en/time.rsd +46 -0
- data/doc-en/video.rsd +2806 -0
- data/doc-en/wm.rsd +112 -0
- data/doc/Makefile +1 -1
- data/doc/cdrom.rsd +3 -3
- data/doc/event.rsd +178 -179
- data/doc/general.rsd +10 -0
- data/doc/init.rsd +2 -2
- data/doc/joystick.rsd +29 -5
- data/doc/mixer.rsd +20 -0
- data/doc/rsd.rb +42 -9
- data/doc/sdlskk.rsd +7 -7
- data/doc/video.rsd +461 -168
- data/doc/wm.rsd +2 -2
- data/extconf.rb +1 -8
- data/lib/rubysdl_aliases.rb +52 -190
- data/lib/rubysdl_compatible_ver1.rb +243 -0
- data/lib/sdl.rb +58 -92
- data/rubysdl.h +59 -68
- data/rubysdl_cdrom.c +125 -102
- data/{rubysdl_doc.en.rd → rubysdl_doc_old.en.rd} +3 -2
- data/rubysdl_event.c +318 -255
- data/rubysdl_event_key.c +299 -287
- data/rubysdl_image.c +37 -13
- data/rubysdl_joystick.c +180 -67
- data/rubysdl_kanji.c +61 -75
- data/rubysdl_main.c +65 -138
- data/rubysdl_mixer.c +339 -214
- data/rubysdl_mouse.c +50 -43
- data/rubysdl_opengl.c +31 -28
- data/rubysdl_pixel.c +17 -28
- data/rubysdl_ref.en.html +5658 -0
- data/rubysdl_ref.en.rd +6337 -0
- data/rubysdl_ref.html +2253 -1964
- data/rubysdl_ref.rd +823 -469
- data/rubysdl_rwops.c +9 -6
- data/rubysdl_sdlskk.c +137 -165
- data/rubysdl_sge_video.c +355 -469
- data/rubysdl_smpeg.c +189 -190
- data/rubysdl_time.c +1 -1
- data/rubysdl_ttf.c +147 -215
- data/rubysdl_video.c +486 -405
- data/rubysdl_wm.c +30 -30
- data/sample/aadraw.rb +9 -9
- data/sample/alpha.rb +12 -13
- data/sample/alphadraw.rb +10 -10
- data/sample/bfont.rb +4 -4
- data/sample/cdrom.rb +11 -4
- data/sample/collision.rb +20 -20
- data/sample/cursor.rb +5 -5
- data/sample/ellipses.rb +20 -16
- data/sample/event2.rb +11 -9
- data/sample/font.rb +4 -4
- data/sample/fpstimer.rb +3 -3
- data/sample/icon.bmp.gz +0 -0
- data/sample/icon.png +0 -0
- data/sample/joy2.rb +14 -14
- data/sample/kanji.rb +7 -7
- data/sample/load_from_io.rb +44 -0
- data/sample/movesp.rb +13 -12
- data/sample/playmod.rb +2 -3
- data/sample/plaympeg.rb +8 -8
- data/sample/playwave.rb +5 -6
- data/sample/sdlskk.rb +11 -11
- data/sample/sgetest.rb +14 -12
- data/sample/stetris.rb +12 -13
- data/sample/testgl.rb +13 -14
- data/sample/testsprite.rb +12 -11
- data/sample/transformblit.rb +23 -22
- metadata +62 -35
- data/rubysdl_event2.c +0 -417
data/MANIFEST
CHANGED
@@ -8,12 +8,15 @@ depend
|
|
8
8
|
extconf.rb
|
9
9
|
lib/rubysdl_aliases.rb
|
10
10
|
lib/sdl.rb
|
11
|
+
lib/rubysdl_compatible_ver1.rb
|
11
12
|
rubysdl.h
|
12
13
|
rubysdl_const_list.txt
|
13
14
|
rubysdl_doc_old.rd
|
14
15
|
rubysdl_ref.rd
|
15
16
|
rubysdl_ref.html
|
16
|
-
|
17
|
+
rubysdl_ref.en.rd
|
18
|
+
rubysdl_ref.en.html
|
19
|
+
rubysdl_doc_old.en.rd
|
17
20
|
rubysdl_event.c
|
18
21
|
rubysdl_event_key.c
|
19
22
|
rubysdl_main.c
|
@@ -29,7 +32,6 @@ rubysdl_joystick.c
|
|
29
32
|
rubysdl_image.c
|
30
33
|
rubysdl_opengl.c
|
31
34
|
rubysdl_pixel.c
|
32
|
-
rubysdl_event2.c
|
33
35
|
rubysdl_smpeg.c
|
34
36
|
rubysdl_sdlskk.c
|
35
37
|
rubysdl_kanji.c
|
@@ -64,6 +66,9 @@ sample/bfont.rb
|
|
64
66
|
sample/font.bmp
|
65
67
|
sample/kanji.rb
|
66
68
|
sample/sample.ttf
|
69
|
+
sample/load_from_io.rb
|
70
|
+
sample/icon.png
|
71
|
+
sample/icon.bmp.gz
|
67
72
|
doc/Makefile
|
68
73
|
doc/rsd.rb
|
69
74
|
doc/cdrom.rsd
|
@@ -79,3 +84,18 @@ doc/sdlskk.rsd
|
|
79
84
|
doc/time.rsd
|
80
85
|
doc/video.rsd
|
81
86
|
doc/wm.rsd
|
87
|
+
doc-en/Makefile
|
88
|
+
doc-en/cdrom.rsd
|
89
|
+
doc-en/collision.rsd
|
90
|
+
doc-en/event.rsd
|
91
|
+
doc-en/font.rsd
|
92
|
+
doc-en/general.rsd
|
93
|
+
doc-en/init.rsd
|
94
|
+
doc-en/joystick.rsd
|
95
|
+
doc-en/mixer.rsd
|
96
|
+
doc-en/mpeg.rsd
|
97
|
+
doc-en/opengl.rsd
|
98
|
+
doc-en/sdlskk.rsd
|
99
|
+
doc-en/time.rsd
|
100
|
+
doc-en/video.rsd
|
101
|
+
doc-en/wm.rsd
|
data/NEWS.en
CHANGED
@@ -1,3 +1,83 @@
|
|
1
|
+
version 2.0
|
2
|
+
some changes for ruby 1.9
|
3
|
+
fix SDL_RWops code
|
4
|
+
Fix/Improve documents
|
5
|
+
Improve English documents
|
6
|
+
Add following methods
|
7
|
+
* SDL::Surface#load_bmp_from_string
|
8
|
+
* SDL::Surface#load_from_string
|
9
|
+
* SDL::Mixer::Wave#load_from_string
|
10
|
+
* SDL::Mixer.playing_channels
|
11
|
+
|
12
|
+
version 2.0 alpha 1
|
13
|
+
Remove following methods
|
14
|
+
* SDL::Surface#draw_ellispe
|
15
|
+
* SDL::Surface#draw_filled_ellispe
|
16
|
+
* SDL::Surface#rotate_surface
|
17
|
+
* SDL::Surface#rotate_scaled_surface
|
18
|
+
* SDL.rotate
|
19
|
+
* SDL.rotate_blit
|
20
|
+
* SDL.rotate_scaled_blit
|
21
|
+
* SDL.rotate_xy_scaled
|
22
|
+
Remove Old SDL::Event, and rename SDL::Event2 to SDL::Event
|
23
|
+
Change internal implementation
|
24
|
+
Add following methods
|
25
|
+
* SDL::Surface#destroy
|
26
|
+
* SDL::Joystick#close
|
27
|
+
* SDL::Mixer#close
|
28
|
+
* SDL::Mixer::Wave#destroy
|
29
|
+
* SDL::Mixer::Music#destroy
|
30
|
+
Add module SDL::GL
|
31
|
+
Change behavior of following methods
|
32
|
+
* SDL::Surface#draw_line
|
33
|
+
* SDL::Surface#draw_circle
|
34
|
+
* SDL::Surface#draw_rect
|
35
|
+
* SDL::Surface#draw_ellipse
|
36
|
+
* SDL::Surface#draw_bezier
|
37
|
+
Rename following methods
|
38
|
+
* SDL.auto_lock? -> SDL::Surface.auto_lock?
|
39
|
+
* SDL.auto_lock_on -> SDL::Surface.auto_lock_on
|
40
|
+
* SDL.auto_lock_off -> SDL::Surface.auto_lock_off
|
41
|
+
* SDL.transform_blit -> SDL::Surface#transform_blit
|
42
|
+
* SDL.blitSurface -> SDL::Surface.blit
|
43
|
+
* SDL.get_video_surface -> SDL::Screen.get
|
44
|
+
* SDL.set_video_mode -> SDL::Screen.open
|
45
|
+
* SDL.check_video_mode -> SDL::Screen.check_mode
|
46
|
+
* SDL.list_modes -> SDL::Screen.list_modes
|
47
|
+
* SDL.set_gamma -> SDL::Screen.set_gamma
|
48
|
+
* SDL.get_gamma_ramp -> SDL::Screen.get_gamma_ramp
|
49
|
+
* SDL.set_gamma_ramp -> SDL::Screen.set_gamma_ramp
|
50
|
+
* SDL.video_driver_name -> SDL::Screen.driver_name
|
51
|
+
* SDL.video_info -> SDL::Screen.info
|
52
|
+
* SDL::Surface#get_rgb -> SDL::PixelFormat#get_rgb
|
53
|
+
* SDL::Surface#get_rgba -> SDL::PixelFormat#get_rgba
|
54
|
+
* SDL::Surface#map_rgb -> SDL::PixelFormat#map_rgb
|
55
|
+
* SDL::Surface#map_rgba -> SDL::PixelFormat#map_rgba
|
56
|
+
* SDL::Surface#get_palette -> SDL::PixelFormat#palette
|
57
|
+
* SDL::Surface#bpp -> SDL::PixelFormat#bpp
|
58
|
+
* SDL::Surface#bytes_per_pixel -> SDL::PixelFormat#bytes_per_pixel
|
59
|
+
* SDL::Surface#[RGBA]mask -> SDL::PixelFormat#[RGBA]mask
|
60
|
+
* SDL::Surface#[RGBA]shift -> SDL::PixelFormat#[RGBA]shift
|
61
|
+
* SDL::Surface#[RGBA]loss -> SDL::PixelFormat#[RGBA]loss
|
62
|
+
* SDL::Surface#colorkey -> SDL::PixelFormat#colorkey
|
63
|
+
* SDL::Surface#alpha -> SDL::PixelFormat#alpha
|
64
|
+
* SDL.get_GL_attr -> SDL::GL.get_attr
|
65
|
+
* SDL.set_GL_attr -> SDL::GL.set_attr
|
66
|
+
* SDL.GL_swap_buffers -> SDL::GL.swap_buffers
|
67
|
+
Move following constants
|
68
|
+
* GL_RED_SIZE -> GL::RED_SIZE
|
69
|
+
* GL_GREEN_SIZE -> GL::GREEN_SIZE
|
70
|
+
* GL_BLUE_SIZE -> GL::BLUE_SIZE
|
71
|
+
* GL_ALPHA_SIZE -> GL::ALPHA_SIZE
|
72
|
+
* GL_BUFFER_SIZE -> GL::BUFFER_SIZE
|
73
|
+
* GL_DOUBLEBUFFER -> GL::DOUBLEBUFFER
|
74
|
+
* GL_DEPTH_SIZE -> GL::DEPTH_SIZE
|
75
|
+
* GL_STENCIL_SIZE -> GL::STENCIL_SIZE
|
76
|
+
* GL_ACCUM_RED_SIZE -> GL::ACCUM_RED_SIZE
|
77
|
+
* GL_ACCUM_GREEN_SIZE -> GL::ACCUM_GREEN_SIZE
|
78
|
+
* GL_ACCUM_BLUE_SIZE -> GL::ACCUM_BLUE_SIZE
|
79
|
+
* GL_ACCUM_ALPHA_SIZE -> GL::ACCUM_ALPHA_SIZE
|
80
|
+
|
1
81
|
version 1.3.1
|
2
82
|
Fix the bug that we cannot compile when SMEPG is installed but SDL_mixer is not installed.(1.2.0's change is incomplete)
|
3
83
|
Add following methods
|
data/NEWS.ja
CHANGED
@@ -1,3 +1,86 @@
|
|
1
|
+
version 2.0
|
2
|
+
ruby 1.9$B$G;H$($k$h$&$KJQ99(B
|
3
|
+
SDL_RWops$BBP1~$r=$@5$7!"(BSDL::Mixer::Wave.load_from_io$B$,;H$($k$h$&$K$7$?!#(B
|
4
|
+
$B%I%-%e%a%s%H$N2~A1(B($BFC$K1Q8lHG(B)
|
5
|
+
$B0J2<$N%a%=%C%I$rDI2C(B
|
6
|
+
* SDL::Surface#load_bmp_from_string
|
7
|
+
* SDL::Surface#load_from_string
|
8
|
+
* SDL::Mixer::Wave#load_from_string
|
9
|
+
* SDL::Mixer.playing_channels
|
10
|
+
|
11
|
+
version 2.0 alpha 1
|
12
|
+
$BFbIt9=B$$rBgI}$KJQ99(B
|
13
|
+
SDL::Event2$B$r(BSDL::Event$B$KJQ99$7!"$+$D$F$N(BSDL::Event$B$OGQ;_(B
|
14
|
+
$B0J2<$N%a%=%C%I$rGQ;_(B
|
15
|
+
* SDL::Surface#draw_ellispe
|
16
|
+
* SDL::Surface#draw_filled_ellispe
|
17
|
+
* SDL::Surface#rotate_surface
|
18
|
+
* SDL::Surface#rotate_scaled_surface
|
19
|
+
* SDL.rotate
|
20
|
+
* SDL.rotate_blit
|
21
|
+
* SDL.rotate_scaled_blit
|
22
|
+
* SDL.rotate_xy_scaled
|
23
|
+
$B0J2<$N%a%=%C%I$rDI2C(B
|
24
|
+
* SDL::Surface#destroy
|
25
|
+
* SDL::Joystick#close
|
26
|
+
* SDL::Mixer#close
|
27
|
+
* SDL::Mixer::Wave#destroy
|
28
|
+
* SDL::Mixer::Music#destroy
|
29
|
+
SDL::GL$B%b%8%e!<%k$rDI2C(B
|
30
|
+
SDL::PixelFormat(SDL::Surface::Format$B$N$[$&$,NI$$!)(B)$B$N<BAu$rJQ99(B
|
31
|
+
Surface$B$N%U%)!<%^%C%H$r;XDj$9$k$N$K(BSDL::PixelFormat$B$,;H$($k$h$&$KJQ99(B
|
32
|
+
$B0J2<$NIA2h%a%=%C%I$N(B(antialias, fill, alpha$B$r$"$i$o$9(B)$B0z?t$rDI2C(B
|
33
|
+
* SDL::Surface#draw_line
|
34
|
+
* SDL::Surface#draw_circle
|
35
|
+
* SDL::Surface#draw_rect
|
36
|
+
* SDL::Surface#draw_ellipse
|
37
|
+
* SDL::Surface#draw_bezier
|
38
|
+
$B0J2<$N$h$&$K%a%=%C%I$r0\F0!"5lMh$N$b$N$bMxMQ$O$G$-$^$9(B
|
39
|
+
* SDL.auto_lock? -> SDL::Surface.auto_lock?
|
40
|
+
* SDL.auto_lock_on -> SDL::Surface.auto_lock_on
|
41
|
+
* SDL.auto_lock_off -> SDL::Surface.auto_lock_off
|
42
|
+
* SDL.transform_blit -> SDL::Surface#transform_blit
|
43
|
+
* SDL.blitSurface -> SDL::Surface.blit
|
44
|
+
* SDL.get_video_surface -> SDL::Screen.get
|
45
|
+
* SDL.set_video_mode -> SDL::Screen.open
|
46
|
+
* SDL.check_video_mode -> SDL::Screen.check_mode
|
47
|
+
* SDL.list_modes -> SDL::Screen.list_modes
|
48
|
+
* SDL.set_gamma -> SDL::Screen.set_gamma
|
49
|
+
* SDL.get_gamma_ramp -> SDL::Screen.get_gamma_ramp
|
50
|
+
* SDL.set_gamma_ramp -> SDL::Screen.set_gamma_ramp
|
51
|
+
* SDL.video_driver_name -> SDL::Screen.driver_name
|
52
|
+
* SDL.video_info -> SDL::Screen.info
|
53
|
+
* SDL::Surface#get_rgb -> SDL::PixelFormat#get_rgb
|
54
|
+
* SDL::Surface#get_rgba -> SDL::PixelFormat#get_rgba
|
55
|
+
* SDL::Surface#map_rgb -> SDL::PixelFormat#map_rgb
|
56
|
+
* SDL::Surface#map_rgba -> SDL::PixelFormat#map_rgba
|
57
|
+
* SDL::Surface#get_palette -> SDL::PixelFormat#palette
|
58
|
+
* SDL::Surface#bpp -> SDL::PixelFormat#bpp
|
59
|
+
* SDL::Surface#bytes_per_pixel -> SDL::PixelFormat#bytes_per_pixel
|
60
|
+
* SDL::Surface#[RGBA]mask -> SDL::PixelFormat#[RGBA]mask
|
61
|
+
* SDL::Surface#[RGBA]shift -> SDL::PixelFormat#[RGBA]shift
|
62
|
+
* SDL::Surface#[RGBA]loss -> SDL::PixelFormat#[RGBA]loss
|
63
|
+
* SDL::Surface#colorkey -> SDL::PixelFormat#colorkey
|
64
|
+
* SDL::Surface#alpha -> SDL::PixelFormat#alpha
|
65
|
+
* SDL.get_GL_attr -> SDL::GL.get_attr
|
66
|
+
* SDL.set_GL_attr -> SDL::GL.set_attr
|
67
|
+
* SDL.GL_swap_buffers -> SDL::GL.swap_buffers
|
68
|
+
$B0J2<$N$h$&$KDj?t$r0\F0!#5lMh$N$b$N$bMxMQ$O$G$-$^$9!#(B
|
69
|
+
* GL_RED_SIZE -> GL::RED_SIZE
|
70
|
+
* GL_GREEN_SIZE -> GL::GREEN_SIZE
|
71
|
+
* GL_BLUE_SIZE -> GL::BLUE_SIZE
|
72
|
+
* GL_ALPHA_SIZE -> GL::ALPHA_SIZE
|
73
|
+
* GL_BUFFER_SIZE -> GL::BUFFER_SIZE
|
74
|
+
* GL_DOUBLEBUFFER -> GL::DOUBLEBUFFER
|
75
|
+
* GL_DEPTH_SIZE -> GL::DEPTH_SIZE
|
76
|
+
* GL_STENCIL_SIZE -> GL::STENCIL_SIZE
|
77
|
+
* GL_ACCUM_RED_SIZE -> GL::ACCUM_RED_SIZE
|
78
|
+
* GL_ACCUM_GREEN_SIZE -> GL::ACCUM_GREEN_SIZE
|
79
|
+
* GL_ACCUM_BLUE_SIZE -> GL::ACCUM_BLUE_SIZE
|
80
|
+
* GL_ACCUM_ALPHA_SIZE -> GL::ACCUM_ALPHA_SIZE
|
81
|
+
OpenGL$B4XO"$N%I%-%e%a%s%H$rDI2C(B
|
82
|
+
|
83
|
+
|
1
84
|
version 1.3.1
|
2
85
|
SMPEG$BM-!"(BSDL_mixer$BL5$N>l9g$NLdBj$r=$@5(B
|
3
86
|
$B0J2<$N%a%=%C%I$rDI2C(B
|
data/README.en
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
Ruby/SDL
|
2
|
+
Ruby/SDL 2.0
|
3
3
|
Ohbayashi Ippei
|
4
4
|
|
5
5
|
1 What's Ruby/SDL
|
@@ -106,6 +106,7 @@ install on Linux
|
|
106
106
|
SDLdoc Japanese translation project : base of Ruby/SDL's reference manual
|
107
107
|
Hara Yutaka: Sample TrueTypeFont
|
108
108
|
Members of #sdl-fan-jp @ FriendChat: bug reports and advices
|
109
|
+
Cyross: Windows version maintainance
|
109
110
|
|
110
111
|
9 OTHER
|
111
112
|
Some functions, especially SDL::MPEG methods and pallete handling methods,
|
data/README.ja
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
Ruby/SDL
|
2
|
+
Ruby/SDL 2.0
|
3
3
|
���Ӱ�ʿ
|
4
4
|
|
5
5
|
1 ����
|
@@ -152,7 +152,7 @@ FreeBSD
|
|
152
152
|
* SDLdoc ���ܸ������ץ��������Ȥˤ�����ä��ߤʤ���
|
153
153
|
* ����ץ��ѤΥե���Ȥ����Ƥ��줿������
|
154
154
|
* #sdl-fan-jp@friend chat �Τߤʤ���
|
155
|
-
|
155
|
+
* Windows�Ǥδ����Ƥ������륵����������
|
156
156
|
9 ����¾
|
157
157
|
�ޤ��ƥ��Ȥ���Ƥ��ʤ���ǽ��¿������ޤ�(�ѥ�åȴ�Ϣ
|
158
158
|
��MPEG��Ϣ�Υ�åɤ����Ĥ��ʤ�)��
|
data/doc-en/Makefile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
RSD = ruby ../doc/rsd.rb -e
|
3
|
+
RDFILES = general.rd init.rd video.rd opengl.rd wm.rd event.rd joystick.rd cdrom.rd mixer.rd time.rd font.rd collision.rd sdlskk.rd mpeg.rd
|
4
|
+
RD2 = rd2
|
5
|
+
RD2OPT = -r rd/rd2html-lib.rb --html-lang=ja --html-charset=EUC-JP
|
6
|
+
|
7
|
+
|
8
|
+
rubysdl_ref.en.html: rubysdl_ref.en.rd
|
9
|
+
$(RD2) $(RD2OPT) --html-title="Ruby/SDL Reference Manual" $< > $@ || rm -f $@
|
10
|
+
|
11
|
+
rubysdl_ref.en.rd: $(RDFILES)
|
12
|
+
cat $(RDFILES) > rubysdl_ref.en.rd
|
13
|
+
|
14
|
+
%.rd: %.rsd
|
15
|
+
$(RSD) < $< > $@
|
16
|
+
|
17
|
+
install: rubysdl_ref.en.html
|
18
|
+
cp rubysdl_ref.en.html rubysdl_ref.en.rd ..
|
data/doc-en/cdrom.rsd
ADDED
@@ -0,0 +1,417 @@
|
|
1
|
+
= CD-ROM
|
2
|
+
* ((<CD-ROM outline>))
|
3
|
+
* ((<SDL::CD>))
|
4
|
+
* ((<CD-ROM methods>))
|
5
|
+
TOC
|
6
|
+
|
7
|
+
== CD-ROM outline
|
8
|
+
SDL supports audio control of up to 32 local CD-ROM drives at once.
|
9
|
+
|
10
|
+
You use this API to perform all the basic functions of a CD player, including
|
11
|
+
listing the tracks, playing, stopping, and ejecting the CD-ROM. (Currently,
|
12
|
+
multi-changer CD drives are not supported.)
|
13
|
+
|
14
|
+
Before you call any of the SDL CD-ROM functions, you must first call
|
15
|
+
@[init](SDL::INIT_CDROM),
|
16
|
+
which scans the system for CD-ROM drives, and sets the program
|
17
|
+
up for audio control.
|
18
|
+
|
19
|
+
After you have initialized the library, you can find out how many drives are
|
20
|
+
available using the @[CD.num_drives]. The first drive listed is the
|
21
|
+
system default CD-ROM drive. After you have chosen a drive, and have opened it
|
22
|
+
with @[CD.open], you can check the status and start playing if there's a CD in
|
23
|
+
the drive.
|
24
|
+
|
25
|
+
A CD-ROM is organized into one or more tracks, each consisting of a certain number
|
26
|
+
of "frames". Each frame is ~2K in size, and at normal playing speed,
|
27
|
+
a CD plays 75(SDL::CD::FPS)
|
28
|
+
frames per second. SDL works with the number of frames on a CD, but this can
|
29
|
+
easily be converted to the more familiar minutes/seconds format by using
|
30
|
+
@[CD.frames_to_msf].
|
31
|
+
|
32
|
+
== SDL::CD
|
33
|
+
This class represents opened CDROM device and stores information on the
|
34
|
+
layout of the tracks on the disc.
|
35
|
+
|
36
|
+
== CD-ROM methods
|
37
|
+
%%%
|
38
|
+
NAME num_drives
|
39
|
+
MOD CD
|
40
|
+
TYPE .
|
41
|
+
PURPOSE Returns the number of CD-ROM drives on the system.
|
42
|
+
RVAL Integer
|
43
|
+
|
44
|
+
PROTO
|
45
|
+
num_drives
|
46
|
+
numDrives
|
47
|
+
|
48
|
+
DESC
|
49
|
+
Returns the number of CD-ROM drives on the system.
|
50
|
+
|
51
|
+
SEEALSO
|
52
|
+
CD.open
|
53
|
+
|
54
|
+
%%
|
55
|
+
NAME index_name
|
56
|
+
MOD CD
|
57
|
+
TYPE .
|
58
|
+
PURPOSE Returns a human-readable, system-dependent identifier for the CD-ROM.
|
59
|
+
RVAL String
|
60
|
+
|
61
|
+
PROTO
|
62
|
+
index_name(drive)
|
63
|
+
indexName(drive)
|
64
|
+
|
65
|
+
DESC
|
66
|
+
Returns a human-readable, system-dependent identifier for the CD-ROM. $[drive]
|
67
|
+
is the index of the drive.
|
68
|
+
Drive indices start to 0 and end at @[CD.num_drives]-1.
|
69
|
+
|
70
|
+
Examples of return strings.
|
71
|
+
* "/dev/cdrom"
|
72
|
+
* "E:"
|
73
|
+
* "/dev/disk/ide/1/master"
|
74
|
+
|
75
|
+
SEEALSO
|
76
|
+
CD.num_drives
|
77
|
+
|
78
|
+
%%
|
79
|
+
NAME open
|
80
|
+
MOD CD
|
81
|
+
TYPE .
|
82
|
+
PURPOSE Opens a CD-ROM drive for access.
|
83
|
+
RVAL SDL::CD
|
84
|
+
|
85
|
+
PROTO
|
86
|
+
open(drive)
|
87
|
+
|
88
|
+
DESC
|
89
|
+
Opens a CD-ROM drive for access. It returns @[CD] object on success.
|
90
|
+
|
91
|
+
Drives are numbered starting with 0. Drive 0 is the system default CD-ROM.
|
92
|
+
|
93
|
+
EXCEPTION
|
94
|
+
Raise @[Error] if the drive was invalid or busy.
|
95
|
+
|
96
|
+
EXAMPLE
|
97
|
+
SDL.init SDL::INIT_CDROM
|
98
|
+
|
99
|
+
# Check for CD drives
|
100
|
+
if SDL::CD.num_drives == 0
|
101
|
+
# None found
|
102
|
+
STDERR.print "No CDROM devices available\n"
|
103
|
+
exit 255
|
104
|
+
end
|
105
|
+
|
106
|
+
begin
|
107
|
+
# Open the default drive
|
108
|
+
cdrom = SDL::CD.open(0)
|
109
|
+
rescue SDL::Error
|
110
|
+
STDERR.puts "Couldn't open drive"
|
111
|
+
exit 255
|
112
|
+
end
|
113
|
+
|
114
|
+
# Print volume info
|
115
|
+
printf "Name: %s\n", SDL::CD.index_name(0)
|
116
|
+
printf "Tracks: %d\n", cdrom.num_tracks
|
117
|
+
num_tracks.times do |cur_track|
|
118
|
+
min, sec, frame = SDL::CD.frames_to_msf(cdrom.track_length(cur_track))
|
119
|
+
printf "\tTrack %d: Length %d:%d\n", cur_track, min, sec
|
120
|
+
end
|
121
|
+
|
122
|
+
%%
|
123
|
+
NAME status
|
124
|
+
MOD CD
|
125
|
+
TYPE #
|
126
|
+
PURPOSE Returns the current status of the given drive.
|
127
|
+
RVAL UINT
|
128
|
+
|
129
|
+
PROTO
|
130
|
+
status
|
131
|
+
|
132
|
+
DESC
|
133
|
+
This method returns the current status of the given drive. Status is described
|
134
|
+
like so:
|
135
|
+
* SDL::CD::TRAYEMPTY
|
136
|
+
* SDL::CD::STOPPED
|
137
|
+
* SDL::CD::PLAYING
|
138
|
+
* SDL::CD::PAUSED
|
139
|
+
* SDL::CD::ERROR
|
140
|
+
|
141
|
+
If the drive has a CD in it,
|
142
|
+
@[current_track], @[current_frame], @[num_tracks], @[track_type],
|
143
|
+
and @[track_length] are updated.
|
144
|
+
|
145
|
+
EXAMPLE
|
146
|
+
def play_track(track)
|
147
|
+
raise "not cd in drive" unless $cdrom.in_drive?
|
148
|
+
|
149
|
+
# clamp to the actual number of tracks on the CD
|
150
|
+
track = $cdrom.num_tracks-1 if track >= $cdrom.num_tracks
|
151
|
+
$cdrom.play_tracks(track, 0, 1, 0)
|
152
|
+
end
|
153
|
+
|
154
|
+
%%
|
155
|
+
NAME play
|
156
|
+
MOD CD
|
157
|
+
TYPE #
|
158
|
+
PURPOSE Play a CD
|
159
|
+
|
160
|
+
PROTO
|
161
|
+
play(start, length)
|
162
|
+
|
163
|
+
DESC
|
164
|
+
Plays the given cdrom, starting a frame $[start] for length $[frames].
|
165
|
+
|
166
|
+
EXCEPTION *
|
167
|
+
|
168
|
+
SEEALSO
|
169
|
+
CD#play_tracks
|
170
|
+
|
171
|
+
%%
|
172
|
+
NAME play_tracks
|
173
|
+
MOD CD
|
174
|
+
TYPE #
|
175
|
+
PURPOSE Play the given CD track(s)
|
176
|
+
|
177
|
+
PROTO
|
178
|
+
play_tracks(start_track, start_frame, ntracks, nframes)
|
179
|
+
|
180
|
+
DESC
|
181
|
+
This method plays the given CD starting at track $[start_track], for $[ntracks]
|
182
|
+
tracks.
|
183
|
+
|
184
|
+
$[start_frame] is the frame offset, from the beginning of the $[start_track],
|
185
|
+
at which to start. $nframes] is the frame offset, from the beginning
|
186
|
+
of the last track
|
187
|
+
($[start_track]+$[ntracks]), at which to end playing.
|
188
|
+
|
189
|
+
THis methods should only be called after calling @[CD#status] to get track
|
190
|
+
information about the CD.
|
191
|
+
|
192
|
+
NOTES
|
193
|
+
Data tracks are ignored.
|
194
|
+
|
195
|
+
EXCEPTION *
|
196
|
+
|
197
|
+
EXAMPLE
|
198
|
+
# assuming cdrom is a previously opened device
|
199
|
+
# Play the entire CD
|
200
|
+
if cdrom.in_drive?
|
201
|
+
cdrom.play_tracks 0, 0, 0, 0
|
202
|
+
end
|
203
|
+
# Play the first track
|
204
|
+
if cdrom.in_drive?
|
205
|
+
cdrom.play_tracks 0, 0, 1, 0
|
206
|
+
end
|
207
|
+
# 2 Play first 15 seconds of the 2nd track
|
208
|
+
if cdrom.in_drive?
|
209
|
+
cdrom.play_tracks 1, 0, 0, SDL::CD::FPS*15
|
210
|
+
end
|
211
|
+
SEEALSO
|
212
|
+
CD#play
|
213
|
+
CD#status
|
214
|
+
|
215
|
+
%%
|
216
|
+
NAME pause
|
217
|
+
MOD CD
|
218
|
+
TYPE #
|
219
|
+
PURPOSE Pauses a CDROM
|
220
|
+
|
221
|
+
PROTO
|
222
|
+
pause
|
223
|
+
|
224
|
+
DESC
|
225
|
+
Pauses play on the given cdrom.
|
226
|
+
|
227
|
+
EXCEPTION *
|
228
|
+
|
229
|
+
SEEALSO
|
230
|
+
CD#play
|
231
|
+
CD#resume
|
232
|
+
|
233
|
+
%%
|
234
|
+
NAME resume
|
235
|
+
MOD CD
|
236
|
+
TYPE #
|
237
|
+
PURPOSE Resumes a CDROM
|
238
|
+
|
239
|
+
PROTO
|
240
|
+
resume
|
241
|
+
|
242
|
+
DESC
|
243
|
+
Resumes play on the given cdrom.
|
244
|
+
|
245
|
+
EXCEPTION *
|
246
|
+
|
247
|
+
SEEALSO
|
248
|
+
CD#play
|
249
|
+
CD#pause
|
250
|
+
|
251
|
+
%%
|
252
|
+
NAME stop
|
253
|
+
MOD CD
|
254
|
+
TYPE #
|
255
|
+
PURPOSE Stops a CDROM
|
256
|
+
|
257
|
+
PROTO
|
258
|
+
stop
|
259
|
+
|
260
|
+
DESC
|
261
|
+
Stops play on the given cdrom.
|
262
|
+
|
263
|
+
EXCEPTION *
|
264
|
+
|
265
|
+
SEEALSO
|
266
|
+
CD#play
|
267
|
+
|
268
|
+
%%
|
269
|
+
NAME eject
|
270
|
+
MOD CD
|
271
|
+
TYPE #
|
272
|
+
PURPOSE Ejects a CDROM
|
273
|
+
|
274
|
+
PROTO
|
275
|
+
eject
|
276
|
+
|
277
|
+
DESC
|
278
|
+
Ejects the given cdrom.
|
279
|
+
|
280
|
+
EXCEPTION *
|
281
|
+
|
282
|
+
%%
|
283
|
+
NAME num_tracks
|
284
|
+
MOD CD
|
285
|
+
TYPE #
|
286
|
+
PURPOSE Gets number of tracks on the CD.
|
287
|
+
RVAL Integer
|
288
|
+
|
289
|
+
PROTO
|
290
|
+
num_tracks
|
291
|
+
numTracks
|
292
|
+
|
293
|
+
DESC
|
294
|
+
Returns the number of tracks on the given cdrom.
|
295
|
+
@[CD#status] updates this value.
|
296
|
+
|
297
|
+
SEEALSO
|
298
|
+
CD#status
|
299
|
+
|
300
|
+
%%
|
301
|
+
NAME current_track
|
302
|
+
MOD CD
|
303
|
+
TYPE #
|
304
|
+
PURPOSE Gets current track.
|
305
|
+
RVAL Integer
|
306
|
+
|
307
|
+
PROTO
|
308
|
+
current_track
|
309
|
+
currentTrack
|
310
|
+
|
311
|
+
DESC
|
312
|
+
Returns the currently playing track.
|
313
|
+
@[CD#status] updates this value.
|
314
|
+
|
315
|
+
SEEALSO
|
316
|
+
CD#status
|
317
|
+
|
318
|
+
%%
|
319
|
+
NAME current_frame
|
320
|
+
MOD CD
|
321
|
+
TYPE #
|
322
|
+
PURPOSE Gets current frame offset within the track
|
323
|
+
RVAL Integer
|
324
|
+
|
325
|
+
PROTO
|
326
|
+
current_frame
|
327
|
+
currentFrame
|
328
|
+
|
329
|
+
DESC
|
330
|
+
Returns the current frame offset with the playing track.
|
331
|
+
@[CD#status] updates this value.
|
332
|
+
|
333
|
+
SEEALSO
|
334
|
+
CD#status
|
335
|
+
|
336
|
+
%%
|
337
|
+
NAME track_type
|
338
|
+
MOD CD
|
339
|
+
TYPE #
|
340
|
+
PURPOSE Gets track type.
|
341
|
+
RVAL UINT
|
342
|
+
|
343
|
+
PROTO
|
344
|
+
track_type(track)
|
345
|
+
trackType(track)
|
346
|
+
|
347
|
+
DESC
|
348
|
+
Returns the track type in $[track].
|
349
|
+
SDL::CD::AUDIO_TRACK or SDL::CD::DATA_TRACK is returned.
|
350
|
+
|
351
|
+
%%
|
352
|
+
NAME track_length
|
353
|
+
MOD CD
|
354
|
+
TYPE #
|
355
|
+
PURPOSE Gets length of track.
|
356
|
+
RVAL Integer
|
357
|
+
|
358
|
+
PROTO
|
359
|
+
track_length(track)
|
360
|
+
trackLength(track)
|
361
|
+
|
362
|
+
DESC
|
363
|
+
Returns length, in frame, of $[track].
|
364
|
+
|
365
|
+
%%
|
366
|
+
NAME in_drive?
|
367
|
+
MOD CD
|
368
|
+
TYPE #
|
369
|
+
PURPOSE Check disc in drive
|
370
|
+
RVAL true/false
|
371
|
+
|
372
|
+
PROTO
|
373
|
+
in_drive?
|
374
|
+
|
375
|
+
DESC
|
376
|
+
Returns true if drive is not empty, otherwise returns false.
|
377
|
+
|
378
|
+
SEEALSO
|
379
|
+
CD#status
|
380
|
+
|
381
|
+
%%
|
382
|
+
NAME frames_to_msf
|
383
|
+
MOD CD
|
384
|
+
TYPE .
|
385
|
+
PURPOSE Convert frames into minitus/seconds/frames
|
386
|
+
RVAL [Integer, Integer, Integer]
|
387
|
+
|
388
|
+
PROTO
|
389
|
+
frames_to_msf(frames)
|
390
|
+
framesToMSF(frames)
|
391
|
+
|
392
|
+
DESC
|
393
|
+
Converts frames into minitus/seconds/frames, and returns an array like
|
394
|
+
[min, sec, frames].
|
395
|
+
|
396
|
+
SEEALSO
|
397
|
+
CD.msf_to_frames
|
398
|
+
|
399
|
+
%%
|
400
|
+
NAME msf_to_frames
|
401
|
+
MOD CD
|
402
|
+
TYPE .
|
403
|
+
PURPOSE Convert minitus/seconds/frames into frames
|
404
|
+
RVAL Integer
|
405
|
+
|
406
|
+
PROTO
|
407
|
+
msf_to_frames(min, sec, frames)
|
408
|
+
MSFToFrames(min, sec, frames)
|
409
|
+
|
410
|
+
DESC
|
411
|
+
Convert minitus/seconds/frames into frames and returns frames.
|
412
|
+
|
413
|
+
SEEALSO
|
414
|
+
CD.frames_to_msf
|
415
|
+
|
416
|
+
|
417
|
+
|