7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
10 TITLE="SDL Library Documentation"
11 HREF="index.html"><LINK
14 HREF="guideexamples.html"><LINK
16 TITLE="Audio Examples"
17 HREF="guideaudioexamples.html"><LINK
20 HREF="guidetimeexamples.html"></HEAD
31 SUMMARY="Header navigation table"
40 >SDL Library Documentation</TH
48 HREF="guideaudioexamples.html"
56 >Chapter 4. Examples</TD
62 HREF="guidetimeexamples.html"
76 NAME="GUIDECDROMEXAMPLES"
88 >Listing CD-ROM drives</H2
91 CLASS="PROGRAMLISTING"
94 /* Initialize SDL first */
95 if ( SDL_Init(SDL_INIT_CDROM) < 0 ) {
96 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
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<SDL_CDNumDrives(); ++i ) {
104 printf("Drive %d: \"%s\"\n", i, SDL_CDName(i));
115 >Opening the default drive</H2
118 CLASS="PROGRAMLISTING"
123 cdrom = SDL_CDOpen(0);
124 if ( cdrom == NULL ) {
125 fprintf(stderr, "Couldn't open default CD-ROM drive: %s\n",
130 status = SDL_CDStatus(cdrom);
133 status_str = "tray empty";
136 status_str = "stopped";
139 status_str = "playing";
142 status_str = "paused";
145 status_str = "error state";
148 printf("Drive status: %s\n", status_str);
149 if ( status >= CD_PLAYING ) {
151 FRAMES_TO_MSF(cdrom->cur_frame, &m, &s, &f);
152 printf("Currently playing track %d, %d:%2.2d\n",
153 cdrom->track[cdrom->cur_track].id, m, s);
164 >Listing the tracks on a CD</H2
167 CLASS="PROGRAMLISTING"
168 > SDL_CD *cdrom; /* Assuming this has already been set.. */
173 printf("Drive tracks: %d\n", cdrom->numtracks);
174 for ( i=0; i<cdrom->numtracks; ++i ) {
175 FRAMES_TO_MSF(cdrom->track[i].length, &m, &s, &f);
178 printf("\tTrack (index %d) %d: %d:%2.2d\n", i,
179 cdrom->track[i].id, m, s);
190 >Play an entire CD</H2
193 CLASS="PROGRAMLISTING"
194 > SDL_CD *cdrom; /* Assuming this has already been set.. */
197 if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
198 SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);
201 if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
202 SDL_CDPlayTracks(cdrom, cdrom->numtracks-1, 0, 0, 0);
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
216 SUMMARY="Footer navigation table"
227 HREF="guideaudioexamples.html"
245 HREF="guidetimeexamples.html"
261 HREF="guideexamples.html"