home *** CD-ROM | disk | FTP | other *** search
- <HTML
- ><HEAD
- ><TITLE
- >CDROM Examples</TITLE
- ><META
- NAME="GENERATOR"
- CONTENT="Modular DocBook HTML Stylesheet Version 1.64
- "><LINK
- REL="HOME"
- TITLE="SDL Library Documentation"
- HREF="index.html"><LINK
- REL="UP"
- TITLE="Examples"
- HREF="guideexamples.html"><LINK
- REL="PREVIOUS"
- TITLE="Audio Examples"
- HREF="guideaudioexamples.html"><LINK
- REL="NEXT"
- TITLE="Time Examples"
- HREF="guidetimeexamples.html"></HEAD
- ><BODY
- CLASS="SECT1"
- BGCOLOR="#FFF8DC"
- TEXT="#000000"
- LINK="#0000ee"
- VLINK="#551a8b"
- ALINK="#ff0000"
- ><DIV
- CLASS="NAVHEADER"
- ><TABLE
- WIDTH="100%"
- BORDER="0"
- CELLPADDING="0"
- CELLSPACING="0"
- ><TR
- ><TH
- COLSPAN="3"
- ALIGN="center"
- >SDL Library Documentation</TH
- ></TR
- ><TR
- ><TD
- WIDTH="10%"
- ALIGN="left"
- VALIGN="bottom"
- ><A
- HREF="guideaudioexamples.html"
- >Prev</A
- ></TD
- ><TD
- WIDTH="80%"
- ALIGN="center"
- VALIGN="bottom"
- >Chapter 4. Examples</TD
- ><TD
- WIDTH="10%"
- ALIGN="right"
- VALIGN="bottom"
- ><A
- HREF="guidetimeexamples.html"
- >Next</A
- ></TD
- ></TR
- ></TABLE
- ><HR
- ALIGN="LEFT"
- WIDTH="100%"></DIV
- ><DIV
- CLASS="SECT1"
- ><H1
- CLASS="SECT1"
- ><A
- NAME="GUIDECDROMEXAMPLES"
- >CDROM Examples</A
- ></H1
- ><P
- ></P
- ><DIV
- CLASS="SECT2"
- ><H2
- CLASS="SECT2"
- ><A
- NAME="AEN426"
- >Listing CD-ROM drives</A
- ></H2
- ><P
- ><PRE
- CLASS="PROGRAMLISTING"
- > #include "SDL.h"
-
- /* Initialize SDL first */
- if ( SDL_Init(SDL_INIT_CDROM) < 0 ) {
- fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
- exit(1);
- }
- atexit(SDL_Quit);
-
- /* Find out how many CD-ROM drives are connected to the system */
- printf("Drives available: %d\n", SDL_CDNumDrives());
- for ( i=0; i<SDL_CDNumDrives(); ++i ) {
- printf("Drive %d: \"%s\"\n", i, SDL_CDName(i));
- }</PRE
- ></P
- ></DIV
- ><DIV
- CLASS="SECT2"
- ><H2
- CLASS="SECT2"
- ><A
- NAME="AEN430"
- >Opening the default drive</A
- ></H2
- ><P
- ><PRE
- CLASS="PROGRAMLISTING"
- > SDL_CD *cdrom;
- CDstatus status;
- char *status_str;
-
- cdrom = SDL_CDOpen(0);
- if ( cdrom == NULL ) {
- fprintf(stderr, "Couldn't open default CD-ROM drive: %s\n",
- SDL_GetError());
- exit(2);
- }
-
- status = SDL_CDStatus(cdrom);
- switch (status) {
- case CD_TRAYEMPTY:
- status_str = "tray empty";
- break;
- case CD_STOPPED:
- status_str = "stopped";
- break;
- case CD_PLAYING:
- status_str = "playing";
- break;
- case CD_PAUSED:
- status_str = "paused";
- break;
- case CD_ERROR:
- status_str = "error state";
- break;
- }
- printf("Drive status: %s\n", status_str);
- if ( status >= CD_PLAYING ) {
- int m, s, f;
- FRAMES_TO_MSF(cdrom->cur_frame, &m, &s, &f);
- printf("Currently playing track %d, %d:%2.2d\n",
- cdrom->track[cdrom->cur_track].id, m, s);
- }</PRE
- ></P
- ></DIV
- ><DIV
- CLASS="SECT2"
- ><H2
- CLASS="SECT2"
- ><A
- NAME="AEN434"
- >Listing the tracks on a CD</A
- ></H2
- ><P
- ><PRE
- CLASS="PROGRAMLISTING"
- > SDL_CD *cdrom; /* Assuming this has already been set.. */
- int i;
- int m, s, f;
-
- SDL_CDStatus(cdrom);
- printf("Drive tracks: %d\n", cdrom->numtracks);
- for ( i=0; i<cdrom->numtracks; ++i ) {
- FRAMES_TO_MSF(cdrom->track[i].length, &m, &s, &f);
- if ( f > 0 )
- ++s;
- printf("\tTrack (index %d) %d: %d:%2.2d\n", i,
- cdrom->track[i].id, m, s);
- }</PRE
- ></P
- ></DIV
- ><DIV
- CLASS="SECT2"
- ><H2
- CLASS="SECT2"
- ><A
- NAME="AEN438"
- >Play an entire CD</A
- ></H2
- ><P
- ><PRE
- CLASS="PROGRAMLISTING"
- > SDL_CD *cdrom; /* Assuming this has already been set.. */
-
- // Play entire CD:
- if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
- SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);
-
- // Play last track:
- if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
- SDL_CDPlayTracks(cdrom, cdrom->numtracks-1, 0, 0, 0);
- }
-
- // Play first and second track and 10 seconds of third track:
- if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
- SDL_CDPlayTracks(cdrom, 0, 0, 2, 10);</PRE
- ></P
- ></DIV
- ></DIV
- ><DIV
- CLASS="NAVFOOTER"
- ><HR
- ALIGN="LEFT"
- WIDTH="100%"><TABLE
- WIDTH="100%"
- BORDER="0"
- CELLPADDING="0"
- CELLSPACING="0"
- ><TR
- ><TD
- WIDTH="33%"
- ALIGN="left"
- VALIGN="top"
- ><A
- HREF="guideaudioexamples.html"
- >Prev</A
- ></TD
- ><TD
- WIDTH="34%"
- ALIGN="center"
- VALIGN="top"
- ><A
- HREF="index.html"
- >Home</A
- ></TD
- ><TD
- WIDTH="33%"
- ALIGN="right"
- VALIGN="top"
- ><A
- HREF="guidetimeexamples.html"
- >Next</A
- ></TD
- ></TR
- ><TR
- ><TD
- WIDTH="33%"
- ALIGN="left"
- VALIGN="top"
- >Audio Examples</TD
- ><TD
- WIDTH="34%"
- ALIGN="center"
- VALIGN="top"
- ><A
- HREF="guideexamples.html"
- >Up</A
- ></TD
- ><TD
- WIDTH="33%"
- ALIGN="right"
- VALIGN="top"
- >Time Examples</TD
- ></TR
- ></TABLE
- ></DIV
- ></BODY
- ></HTML
- >