comparison docs/html/guidecdromexamples.html @ 0:74212992fb08

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