mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
Import Recast Navigation as third party dependency Credits go to Mikko Mononen memon at inside dot org
275 lines
No EOL
4.8 KiB
HTML
275 lines
No EOL
4.8 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>CDROM Examples</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
|
"><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
|
|
SUMMARY="Header navigation 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"
|
|
ACCESSKEY="P"
|
|
>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"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="GUIDECDROMEXAMPLES"
|
|
></A
|
|
>CDROM Examples</H1
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN393"
|
|
></A
|
|
>Listing CD-ROM drives</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="AEN397"
|
|
></A
|
|
>Opening the default drive</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="AEN401"
|
|
></A
|
|
>Listing the tracks on a CD</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="AEN405"
|
|
></A
|
|
>Play an entire CD</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, CD_FPS * 10);</PRE
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="guideaudioexamples.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="guidetimeexamples.html"
|
|
ACCESSKEY="N"
|
|
>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"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Time Examples</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |