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;

cddb
    Returns an Audio::CDDB object.

     my $cddb = $cd->cddb;

play
    Play the given cd track (defaults to 1).

     $cd->play(1);

stop
    Stop the cd.

     $cd->stop;

pause
    Pause the cd.

     $cd->pause;

resume
    Resume the cd.

     $cd->resume;

eject
    Eject the cd.

     $cd->eject;

close
    Close 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_volume
    Returns 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_track
    Returns the current track number being played or paused.

     my $track = $info->current_track;

first_track
    Returns the number of the first track on the CD.

     my $track = $info->first_track;

total_tracks
    Returns the total number of tracks on the cd.

     my $track = $info->total_tracks;

track_time
    Returns the current track play time:

     my($minutes, $seconds) = $info->track_time;

time
    Returns the current disc play time:

     my($minutes, $seconds) = $info->time;

length
    Returns the disc length time:

     my($minutes, $seconds) = $info->length;

tracks
    Returns 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_audio
    Returns true if the track is an audio track; equivalent to the test:

     $tinfo->type == Audio::CD::TRACK_AUDIO ? 1 : 0

is_data
    Returns true if the track is a data track; equivalent to the test:

     $tinfo->type == Audio::CD::TRACK_DATA ? 1 : 0

SEE ALSO
Xmms(3)

AUTHOR
Perl interface by Doug MacEachern

libcdaudio and cddb_lookup.c by Tony Arcieri