rubysdl 1.3.1 → 2.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/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
|
+
|