use SDL; use SDL::CDROM; use SDL::CD; SDL::init(SDL_INIT_CDROM); my $drives = SDL::CDROM::num_drives; if( $drives > 0 ) { my $CD = SDL::CD->new( 0 ); if($CD) { ... } }
use SDL::CD ();
and access them directly:
SDL::CD::CD_TRAYEMPTY;
or by choosing the export tags below:
Export tag: ':status'
CD_TRAYEMPTY CD_STOPPED CD_PLAYING CD_PAUSED CD_ERROR
Export tag: ':defaults'
CD_FPS SDL_MAX_TRACKS
my $CD = SDL::CD->new($drive)
Makes a new SDL::CD object. Returns "undef" if the drive is busy or inaccessible.
my $status = $CD->status();
Returns the current status of the CD tray
Returns on of the following constants:
$CD->play_tracks($start_track, $start_frame, $ntracks, $nframes)
Plays the given SDL::CD starting at track $start_track, for $ntracks tracks.
$start_frame is the frame offset, from the beginning of the $start_track, at which to start. $nframes is the frame offset, from the beginning of the last track ($start_track+$ntracks), at which to end playing.
play_tracks() should only be called after calling ``status'' to get information about the CD.
Note: Data tracks are ignored.
Returns 0, or "-1" if there was an error.
$CD->play($start, $length);
Plays the given SDL::CD , starting a frame $start for $length frames.
Returns 0 on success, "-1" on error
$CD->pause();
Pauses play on CD
Returns 0 on success, or "-1" on an error.
$CD->resume();
Returns 0 on success, or "-1" on an error.
$CD->stop();
Stops play on the CD.
Returns 0 on success, or "-1" on an error.
$CD->eject();
Ejects the CD.
Returns 0 on success, or "-1" on an error.
$CD->id();
$CD->num_tracks();
$CD->cur_track();
my $track = $CD->track($number);
Retrieves track description of track $number in CD. See SDL::CDTrack.
my ($min, $sec, $fra) = FRAMES_TO_MSF($frames);
Conversion functions from frames to Minute/Second/Frames
my $frames = MSF_TO_FRAMES($min, $sec, $fra);