SDL_CDStatus

Name

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

Synopsis

uses
SDL;

function SDL_CDStatus( cdrom : PSDL_CD ) : TSDL_CDStatus;

// Given a status, returns true if there's a disk in the drive
function SDL_CDInDrive( status : TSDL_CDStatus ) : LongBool;
begin
Result := ord( status ) < ord( CD_ERROR );
end;

Description

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

  TSDL_CDStatus = (
CD_TRAYEMPTY,
CD_STOPPED,
CD_PLAYING,
CD_PAUSED,
CD_ERROR );

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 TSDL_CD structure passed to it.

Example

function playTrack( track : integer ) : integer;
var
playing : integer;
begin
playing := 0;

if ( SDL_CDInDrive( SDL_CDStatus( cdrom ) ) ) then
begin
// clamp to the actual number of tracks on the CD
if ( track >= cdrom.numtracks ) then
begin
track := cdrom.numtracks - 1;
end;

if ( SDL_CDPlayTracks( cdrom, track, 0, 1, 0 ) = 0 ) then
begin
playing := 1;
end;
end;
Result := playing;
end;

See Also

TSDL_CD