SDL-1.2.14
[sdl_omap.git] / docs / html / guidecdromexamples.html
1 <HTML
2 ><HEAD
3 ><TITLE
4 >CDROM Examples</TITLE
5 ><META
6 NAME="GENERATOR"
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8 "><LINK
9 REL="HOME"
10 TITLE="SDL Library Documentation"
11 HREF="index.html"><LINK
12 REL="UP"
13 TITLE="Examples"
14 HREF="guideexamples.html"><LINK
15 REL="PREVIOUS"
16 TITLE="Audio Examples"
17 HREF="guideaudioexamples.html"><LINK
18 REL="NEXT"
19 TITLE="Time Examples"
20 HREF="guidetimeexamples.html"></HEAD
21 ><BODY
22 CLASS="SECT1"
23 BGCOLOR="#FFF8DC"
24 TEXT="#000000"
25 LINK="#0000ee"
26 VLINK="#551a8b"
27 ALINK="#ff0000"
28 ><DIV
29 CLASS="NAVHEADER"
30 ><TABLE
31 SUMMARY="Header navigation table"
32 WIDTH="100%"
33 BORDER="0"
34 CELLPADDING="0"
35 CELLSPACING="0"
36 ><TR
37 ><TH
38 COLSPAN="3"
39 ALIGN="center"
40 >SDL Library Documentation</TH
41 ></TR
42 ><TR
43 ><TD
44 WIDTH="10%"
45 ALIGN="left"
46 VALIGN="bottom"
47 ><A
48 HREF="guideaudioexamples.html"
49 ACCESSKEY="P"
50 >Prev</A
51 ></TD
52 ><TD
53 WIDTH="80%"
54 ALIGN="center"
55 VALIGN="bottom"
56 >Chapter 4. Examples</TD
57 ><TD
58 WIDTH="10%"
59 ALIGN="right"
60 VALIGN="bottom"
61 ><A
62 HREF="guidetimeexamples.html"
63 ACCESSKEY="N"
64 >Next</A
65 ></TD
66 ></TR
67 ></TABLE
68 ><HR
69 ALIGN="LEFT"
70 WIDTH="100%"></DIV
71 ><DIV
72 CLASS="SECT1"
73 ><H1
74 CLASS="SECT1"
75 ><A
76 NAME="GUIDECDROMEXAMPLES"
77 ></A
78 >CDROM Examples</H1
79 ><P
80 ></P
81 ><DIV
82 CLASS="SECT2"
83 ><H2
84 CLASS="SECT2"
85 ><A
86 NAME="AEN393"
87 ></A
88 >Listing CD-ROM drives</H2
89 ><P
90 ><PRE
91 CLASS="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
109 CLASS="SECT2"
110 ><H2
111 CLASS="SECT2"
112 ><A
113 NAME="AEN397"
114 ></A
115 >Opening the default drive</H2
116 ><P
117 ><PRE
118 CLASS="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
158 CLASS="SECT2"
159 ><H2
160 CLASS="SECT2"
161 ><A
162 NAME="AEN401"
163 ></A
164 >Listing the tracks on a CD</H2
165 ><P
166 ><PRE
167 CLASS="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
184 CLASS="SECT2"
185 ><H2
186 CLASS="SECT2"
187 ><A
188 NAME="AEN405"
189 ></A
190 >Play an entire CD</H2
191 ><P
192 ><PRE
193 CLASS="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
212 CLASS="NAVFOOTER"
213 ><HR
214 ALIGN="LEFT"
215 WIDTH="100%"><TABLE
216 SUMMARY="Footer navigation table"
217 WIDTH="100%"
218 BORDER="0"
219 CELLPADDING="0"
220 CELLSPACING="0"
221 ><TR
222 ><TD
223 WIDTH="33%"
224 ALIGN="left"
225 VALIGN="top"
226 ><A
227 HREF="guideaudioexamples.html"
228 ACCESSKEY="P"
229 >Prev</A
230 ></TD
231 ><TD
232 WIDTH="34%"
233 ALIGN="center"
234 VALIGN="top"
235 ><A
236 HREF="index.html"
237 ACCESSKEY="H"
238 >Home</A
239 ></TD
240 ><TD
241 WIDTH="33%"
242 ALIGN="right"
243 VALIGN="top"
244 ><A
245 HREF="guidetimeexamples.html"
246 ACCESSKEY="N"
247 >Next</A
248 ></TD
249 ></TR
250 ><TR
251 ><TD
252 WIDTH="33%"
253 ALIGN="left"
254 VALIGN="top"
255 >Audio Examples</TD
256 ><TD
257 WIDTH="34%"
258 ALIGN="center"
259 VALIGN="top"
260 ><A
261 HREF="guideexamples.html"
262 ACCESSKEY="U"
263 >Up</A
264 ></TD
265 ><TD
266 WIDTH="33%"
267 ALIGN="right"
268 VALIGN="top"
269 >Time Examples</TD
270 ></TR
271 ></TABLE
272 ></DIV
273 ></BODY
274 ></HTML
275 >