SDL-1.2.14
[sdl_omap.git] / docs / html / guidecdromexamples.html
CommitLineData
e14743d1 1<HTML
2><HEAD
3><TITLE
4>CDROM Examples</TITLE
5><META
6NAME="GENERATOR"
7CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8"><LINK
9REL="HOME"
10TITLE="SDL Library Documentation"
11HREF="index.html"><LINK
12REL="UP"
13TITLE="Examples"
14HREF="guideexamples.html"><LINK
15REL="PREVIOUS"
16TITLE="Audio Examples"
17HREF="guideaudioexamples.html"><LINK
18REL="NEXT"
19TITLE="Time Examples"
20HREF="guidetimeexamples.html"></HEAD
21><BODY
22CLASS="SECT1"
23BGCOLOR="#FFF8DC"
24TEXT="#000000"
25LINK="#0000ee"
26VLINK="#551a8b"
27ALINK="#ff0000"
28><DIV
29CLASS="NAVHEADER"
30><TABLE
31SUMMARY="Header navigation table"
32WIDTH="100%"
33BORDER="0"
34CELLPADDING="0"
35CELLSPACING="0"
36><TR
37><TH
38COLSPAN="3"
39ALIGN="center"
40>SDL Library Documentation</TH
41></TR
42><TR
43><TD
44WIDTH="10%"
45ALIGN="left"
46VALIGN="bottom"
47><A
48HREF="guideaudioexamples.html"
49ACCESSKEY="P"
50>Prev</A
51></TD
52><TD
53WIDTH="80%"
54ALIGN="center"
55VALIGN="bottom"
56>Chapter 4. Examples</TD
57><TD
58WIDTH="10%"
59ALIGN="right"
60VALIGN="bottom"
61><A
62HREF="guidetimeexamples.html"
63ACCESSKEY="N"
64>Next</A
65></TD
66></TR
67></TABLE
68><HR
69ALIGN="LEFT"
70WIDTH="100%"></DIV
71><DIV
72CLASS="SECT1"
73><H1
74CLASS="SECT1"
75><A
76NAME="GUIDECDROMEXAMPLES"
77></A
78>CDROM Examples</H1
79><P
80></P
81><DIV
82CLASS="SECT2"
83><H2
84CLASS="SECT2"
85><A
86NAME="AEN393"
87></A
88>Listing CD-ROM drives</H2
89><P
90><PRE
91CLASS="PROGRAMLISTING"
92> #include "SDL.h"
93
94 /* Initialize SDL first */
95 if ( SDL_Init(SDL_INIT_CDROM) &#60; 0 ) {
96 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
97 exit(1);
98 }
99 atexit(SDL_Quit);
100
101 /* Find out how many CD-ROM drives are connected to the system */
102 printf("Drives available: %d\n", SDL_CDNumDrives());
103 for ( i=0; i&#60;SDL_CDNumDrives(); ++i ) {
104 printf("Drive %d: \"%s\"\n", i, SDL_CDName(i));
105 }</PRE
106></P
107></DIV
108><DIV
109CLASS="SECT2"
110><H2
111CLASS="SECT2"
112><A
113NAME="AEN397"
114></A
115>Opening the default drive</H2
116><P
117><PRE
118CLASS="PROGRAMLISTING"
119> SDL_CD *cdrom;
120 CDstatus status;
121 char *status_str;
122
123 cdrom = SDL_CDOpen(0);
124 if ( cdrom == NULL ) {
125 fprintf(stderr, "Couldn't open default CD-ROM drive: %s\n",
126 SDL_GetError());
127 exit(2);
128 }
129
130 status = SDL_CDStatus(cdrom);
131 switch (status) {
132 case CD_TRAYEMPTY:
133 status_str = "tray empty";
134 break;
135 case CD_STOPPED:
136 status_str = "stopped";
137 break;
138 case CD_PLAYING:
139 status_str = "playing";
140 break;
141 case CD_PAUSED:
142 status_str = "paused";
143 break;
144 case CD_ERROR:
145 status_str = "error state";
146 break;
147 }
148 printf("Drive status: %s\n", status_str);
149 if ( status &#62;= CD_PLAYING ) {
150 int m, s, f;
151 FRAMES_TO_MSF(cdrom-&#62;cur_frame, &#38;m, &#38;s, &#38;f);
152 printf("Currently playing track %d, %d:%2.2d\n",
153 cdrom-&#62;track[cdrom-&#62;cur_track].id, m, s);
154 }</PRE
155></P
156></DIV
157><DIV
158CLASS="SECT2"
159><H2
160CLASS="SECT2"
161><A
162NAME="AEN401"
163></A
164>Listing the tracks on a CD</H2
165><P
166><PRE
167CLASS="PROGRAMLISTING"
168> SDL_CD *cdrom; /* Assuming this has already been set.. */
169 int i;
170 int m, s, f;
171
172 SDL_CDStatus(cdrom);
173 printf("Drive tracks: %d\n", cdrom-&#62;numtracks);
174 for ( i=0; i&#60;cdrom-&#62;numtracks; ++i ) {
175 FRAMES_TO_MSF(cdrom-&#62;track[i].length, &#38;m, &#38;s, &#38;f);
176 if ( f &#62; 0 )
177 ++s;
178 printf("\tTrack (index %d) %d: %d:%2.2d\n", i,
179 cdrom-&#62;track[i].id, m, s);
180 }</PRE
181></P
182></DIV
183><DIV
184CLASS="SECT2"
185><H2
186CLASS="SECT2"
187><A
188NAME="AEN405"
189></A
190>Play an entire CD</H2
191><P
192><PRE
193CLASS="PROGRAMLISTING"
194> SDL_CD *cdrom; /* Assuming this has already been set.. */
195
196 // Play entire CD:
197 if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
198 SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);
199
200 // Play last track:
201 if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
202 SDL_CDPlayTracks(cdrom, cdrom-&#62;numtracks-1, 0, 0, 0);
203 }
204
205 // Play first and second track and 10 seconds of third track:
206 if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
207 SDL_CDPlayTracks(cdrom, 0, 0, 2, CD_FPS * 10);</PRE
208></P
209></DIV
210></DIV
211><DIV
212CLASS="NAVFOOTER"
213><HR
214ALIGN="LEFT"
215WIDTH="100%"><TABLE
216SUMMARY="Footer navigation table"
217WIDTH="100%"
218BORDER="0"
219CELLPADDING="0"
220CELLSPACING="0"
221><TR
222><TD
223WIDTH="33%"
224ALIGN="left"
225VALIGN="top"
226><A
227HREF="guideaudioexamples.html"
228ACCESSKEY="P"
229>Prev</A
230></TD
231><TD
232WIDTH="34%"
233ALIGN="center"
234VALIGN="top"
235><A
236HREF="index.html"
237ACCESSKEY="H"
238>Home</A
239></TD
240><TD
241WIDTH="33%"
242ALIGN="right"
243VALIGN="top"
244><A
245HREF="guidetimeexamples.html"
246ACCESSKEY="N"
247>Next</A
248></TD
249></TR
250><TR
251><TD
252WIDTH="33%"
253ALIGN="left"
254VALIGN="top"
255>Audio Examples</TD
256><TD
257WIDTH="34%"
258ALIGN="center"
259VALIGN="top"
260><A
261HREF="guideexamples.html"
262ACCESSKEY="U"
263>Up</A
264></TD
265><TD
266WIDTH="33%"
267ALIGN="right"
268VALIGN="top"
269>Time Examples</TD
270></TR
271></TABLE
272></DIV
273></BODY
274></HTML
275>