SDL Library Documentation
Prev |  | Next

# SDL_CDStatus

## Name

SDL_CDStatus -- Returns the current status of the given drive.

## Synopsis

    #include "SDL.h"

``CDstatus SDL_CDStatus`(SDL_CD *cdrom);`

    /* Given a status, returns true if there's a disk in the drive */
    #define CD_INDRIVE(status)      ((int)status > 0)

## Description

This function returns the current status of the given drive. Status is described like so:

    typedef enum {
      CD_TRAYEMPTY,
      CD_STOPPED,
      CD_PLAYING,
      CD_PAUSED,
      CD_ERROR = -1
    } CDstatus;

If the drive has a CD in it, the table of contents of the CD and current play position of the CD will be stored in the SDL_CD structure.

The macro `CD_INDRIVE` is provided for convenience, and given a status returns true if there's a disk in the drive.

> Note: `SDL_CDStatus` also updates the SDL_CD structure passed to it.

## Example

    int playTrack(int track)
    {
      int playing = 0;

      if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
      /* clamp to the actual number of tracks on the CD */
        if (track >= cdrom->numtracks) {
          track = cdrom->numtracks-1;
        }

        if ( SDL_CDPlayTracks(cdrom, track, 0, 1, 0) == 0 ) {
          playing = 1;
        }
      }
      return playing;
    }

## See Also

`SDL_CD`

Prev | Home | Next
SDL_CDOpen | Up | SDL_CDPlay