CDDB
view release on metacpan or search on metacpan
t/01_cddb.t view on Meta::CPAN
);
}
eval {
$cddb->submit_disc(
Genre => 'classical',
Id => 'b811a20c',
# iso-8859-1 u with diaeresis (umlaut) for testing
Artist => "Vario\xDCs",
DiscTitle => 'Cartoon Classics',
Offsets => $disc_info->{'offsets'},
TrackTitles => $disc_info->{'ttitles'},
# odd revision for testing
Revision => 123,
);
pass("submitted a test disc; check your e-mail for confirmation");
};
# skip if SMTPHOSTS and default are bad
if ($@) {
skip($@, 1);
}
};
### Test fetch-by-query.
my $query = (
"cddb query d30ffd0e 14 150 19705 40130 59947 77417 96730 109345" .
" 131927 149287 167635 185130 206002 229075 279870 4095"
);
@discs = $cddb->get_discs_by_query($query);
is($discs[0][0], 'rock', 'fetch-by-query retrieved expected genre');
is($discs[0][1], 'd30ffd0e', 'fetch-by-query retrieved expected id');
__END__
sub developing {
# CD-ROM interface
$cd = new CDROM($device) or die $!;
# loads CD TOC
@toc = $cd->toc();
# returs an array like:
$toc[0] = [ # track 999 is the lead-out information
# track 1000 indicates an error
$track_number,
# next three fields are CD-i MSF information, broken apart
$offset_minutes, $offset_seconds, $offset_frames,
];
# rips a track to a file
$cd->rip(track => 2, file => '/tmp/track-2', format => 'wav') or die $!;
$cd->rip(start => '12:34/0', stop => '15:57/0', file => '/tmp/msfrange',
format => 'wav'
) or die $!;
# synchronous methods wait for finish
$cd->play(track => 1, method => synchronous);
# asynch methods return right away
$cd->play(track => 2, method => asynchronous);
# returns what's going on ('playing', 'ripping', etc.)
# used to poll the device during asynchronous operations?
$cd->status();
# fill out the interface
$cd->stop();
$cd->pause();
$cd->resume();
# whimsy. virtually useless stuff, but why not?
$cd->seek(track => 1);
$cd->seek(offset => '12:34/0');
$cd->seek(offset => '-0:34/0');
$cd->seek(offset => '+0:34/0');
}
( run in 1.900 second using v1.01-cache-2.11-cpan-39bf76dae61 )