sub tags {
my $device = shift;
my $trackcount = shift;
+ my $no_mb = shift;
my $mb;
my @results;
my $album;
my $various;
my $seen_various;
+ tags_file('candidate-tags-0', $trackcount, 0);
+
+ defined($no_mb) and $no_mb and return;
+
if (defined($device)) {
$mb = new MusicBrainz::Client::Simple (device=>$device);
} else {
die($mb->get_error);
}
- tags_file('candidate-tags-0', $trackcount, 0);
-
for $album (@results) {
$i++;
sub rip {
my $device = shift;
my $trackcount = shift;
+ my $single_file = shift;
+ my @output;
$device ||= '/dev/cdrom';
+ if ($single_file) {
+ @output = ("1-$trackcount", 'wav');
+ } else {
+ @output = ('-B');
+ }
- exec('cdparanoia', '-d', $device, "1-$trackcount", 'wav');
- # exec prints its own error message so just
+ exec('cdparanoia', '-d', $device, @output);
die;
}
}
MAIN: {
+ my $no_mb;
my $post_processor;
+ my $single_file;
my $trackcount = 99;
my $help;
my $tempdir;
GetOptions(
'device|d=s' => \$CDDEV,
+ 'no-musicbrainz|m' => \$no_mb,
'post-processor|p=s', \$post_processor,
+ 'single-file|s' => \$single_file,
'tracks|t=i' => \$trackcount,
'help|h|?' => \$help,
) or pod2usage();
make_post_processor($post_processor);
$trackcount = mkcue($CDDEV, $trackcount);
- tags($CDDEV, $trackcount);
- rip($CDDEV, $trackcount);
+ tags($CDDEV, $trackcount, $no_mb);
+ rip($CDDEV, $trackcount, $single_file);
}
\f
=item CDDEV
-B<fa-rip> uses this to rip audio and save the cuesheet for a CD. It
-makes some effort to check some common device names for FreeBSD,
-Linux, and NetBSD by default.
+B<fa-rip> uses this to rip audio and save the cuesheet for a CD.
+MusicBrainz::Client can usually figure this out automatically.
=back