CD(3pm)
NAME
Audio::CD - Perl interface to libcdaudio (cd + cddb)
SYNOPSIS
use Audio::CD (); my $cd = Audio::CD->init;
DESCRIPTION
Audio::CD provides a Perl interface to libcdaudio by Tony Arcieri,
available from http://cdcd.undergrid.net/
Several classes provide glue for the libcdaudio functions and data
structures.
Audio::CD Class
- init
- Initialize the Audio::CD object:
my $cd = Audio::CD->init; - stat
Stat the Audio::CD object, returns an Audio::CD::Info object.
my $info = $cd->stat;cddbReturns an Audio::CDDB object.
my $cddb = $cd->cddb;playPlay the given cd track (defaults to 1).
$cd->play(1);stopStop the cd.
$cd->stop;pausePause the cd.
$cd->pause;resumeResume the cd.
$cd->resume;ejectEject the cd.
$cd->eject;closeClose the cd tray.
$cd->close;play_frames$cd->play_frames($startframe, $endframe);play_track_pos$cd->play_track_pos($strarttrack, $endtrack, $startpos);play_track$cd->play_track($strarttrack, $endtrack);track_advance$cd->track_advance($endtrack, $minutes, $seconds);advance$cd->advance($minutes, $seconds);get_volumeReturns an Audio::CD::Volume object.
my $vol = $cd->get_volume;set_volume$cd->set_volume($vol);
Audio::CDDB Class
- discid
- my $id = $cddb->discid;
- lookup
- Does a cddb lookup and returns an Audio::CD::Data object.
my $data = $cddb->lookup;
Audio::CD::Data Class
- artist
- my $artist = $data->artist;
- title
- my $title = $data->title;
- genre
- my $genre = $data->genre;
- tracks
- Returns an array reference of Audio::CD::Track objects.
my $foo = $data->tracks($info);
my @tracks = @$foo;
Audio::CD::Track Class
- name
- my $name = $track->name;
Audio::CD::Info Class
- mode
- Returns the CD mode, one of PLAYING, PAUSED, COMPLETED, NOSTATUS;
my $track = $info->mode;
print "playing" if $info->mode == Audio::CD::PLAYING; - present
Returns true if a disc is present.
$cd->play if $info->present;current_trackReturns the current track number being played or paused.
my $track = $info->current_track;first_trackReturns the number of the first track on the CD.
my $track = $info->first_track;total_tracksReturns the total number of tracks on the cd.
my $track = $info->total_tracks;track_timeReturns the current track play time:
my($minutes, $seconds) = $info->track_time;timeReturns the current disc play time:
my($minutes, $seconds) = $info->time;lengthReturns the disc length time:
my($minutes, $seconds) = $info->length;tracksReturns an array reference of Audio::CD::Info::Track objects.
my $foo = $info->tracks;
my @tracks = @$foo;
Audio::CD::Info::Track Class
- length
- Returns the track length time:
my($minutes, $seconds) = $tinfo->length; - pos Returns the track position on the CD:
my($minutes, $seconds) = $tinfo->pos; - type
Returns the track type (either TRACK_AUDIO or TRACK_DATA):
if ($tinfo->type == Audio::CD::TRACK_AUDIO) {print "audio track\n";} elsif ($tinfo->type == Audio::CD::TRACK_DATA) {print "data track\n";}is_audioReturns true if the track is an audio track; equivalent to the
test:
$tinfo->type == Audio::CD::TRACK_AUDIO ? 1 : 0is_dataReturns true if the track is a data track; equivalent to the test:
$tinfo->type == Audio::CD::TRACK_DATA ? 1 : 0
SEE ALSO
AUTHOR
Perl interface by Doug MacEachern
- libcdaudio and cddb_lookup.c by Tony Arcieri