101 lines
3.1 KiB
Text
101 lines
3.1 KiB
Text
--- pacpl.orig 2008-08-16 21:31:57.000000000 -0600
|
|
+++ pacpl 2009-02-15 09:21:16.000000000 -0700
|
|
@@ -25,18 +25,6 @@
|
|
use File::Find;
|
|
use File::Spec::Functions qw(rel2abs);
|
|
|
|
-# Tagging modules
|
|
-use Ogg::Vorbis::Header;
|
|
-use MP3::Tag;
|
|
-use Audio::FLAC::Header;
|
|
-use MP4::Info;
|
|
-use Audio::WMA;
|
|
-use Audio::Musepack;
|
|
-use Audio::APETags;
|
|
-
|
|
-# CDDB module
|
|
-use CDDB_get qw(get_cddb);
|
|
-
|
|
# non-encoder/decoder related options
|
|
my
|
|
(
|
|
@@ -202,8 +190,8 @@
|
|
|
|
# load po file and store in %lang hash
|
|
sub load_lang {
|
|
-
|
|
- my $po = "$po_dir/$ENV{LANG}.po";
|
|
+ my $lang = $ENV{LANG} || 'en_US';
|
|
+ my $po = "$po_dir/$lang.po";
|
|
$po =~ s/\.UTF-8//i if $po =~ /UTF-8/i;
|
|
$po =~ s/\.utf8//i if $po =~ /utf8/i;
|
|
$po =~ s/_\w+// if not -e $po;
|
|
@@ -1541,6 +1529,17 @@
|
|
# load codecs.conf file
|
|
load_codecs() if -e $codecs_conf;
|
|
|
|
+# Now that %run is populated, verify tagging modules
|
|
+for my $format (keys %run){
|
|
+ if(defined $run{$format}{TAGS}{MODULE}){
|
|
+ eval "require $run{$format}{TAGS}{MODULE}";
|
|
+ @{$run{$format}{TAGS}}{qw(READ WRITE)} = (0,0) if $@;
|
|
+ }
|
|
+}
|
|
+
|
|
+eval "require CDDB_get";
|
|
+$nocddb = 1 if $@;
|
|
+
|
|
my $out_name = $outfile;
|
|
my $out_dir = $outdir;
|
|
|
|
@@ -2177,7 +2176,7 @@
|
|
}
|
|
|
|
case 'wma' {
|
|
- my $wma_tag = Audio::WMA->new($in_file)->tags();
|
|
+ my $wma_tag = $tag_module->new($in_file)->tags();
|
|
|
|
$tag_name{title} = $wma_tag->{TITLE} if $wma_tag->{TITLE};
|
|
$tag_name{track} = $wma_tag->{TRACKNUMBER} if $wma_tag->{TRACKNUMBER};
|
|
@@ -2198,12 +2197,13 @@
|
|
sub write_tags {
|
|
|
|
my ($out_file, $out_format) = @_;
|
|
+ my $tag_module = $run{$out_format}{TAGS}{MODULE};
|
|
my $tag_m;
|
|
|
|
switch ($out_format) {
|
|
|
|
case 'mp3' {
|
|
- $tag_m = MP3::Tag->new("$out_file");
|
|
+ $tag_m = $tag_module->new("$out_file");
|
|
|
|
# ID3v2 Tags
|
|
unless(exists($tag_m->{ID3v2})) { $tag_m->new_tag("ID3v2"); }
|
|
@@ -2236,7 +2236,7 @@
|
|
}
|
|
|
|
case 'ogg' {
|
|
- $tag_m = Ogg::Vorbis::Header->new("$out_file");
|
|
+ $tag_m = $tag_module->new("$out_file");
|
|
|
|
# this prevents duplicate tags =)
|
|
$tag_m->clear_comments();
|
|
@@ -2257,7 +2257,7 @@
|
|
}
|
|
|
|
case /fla|flac/ {
|
|
- $tag_m = Audio::FLAC::Header->new("$out_file");
|
|
+ $tag_m = $tag_module->new("$out_file");
|
|
my $tag_i = $tag_m->tags();
|
|
|
|
$tag_i->{TITLE} = "$tag_name{title}" if $tag_name{title};
|
|
@@ -2446,7 +2446,7 @@
|
|
$ripconfig{DEVICE} = $device;
|
|
$ripconfig{CDDB_INPUT} = $config{CDDB_INPUT};
|
|
|
|
- %cd = get_cddb(\%ripconfig);
|
|
+ %cd = CDDB_get::get_cddb(\%ripconfig);
|
|
|
|
if (not $cd{title}) {
|
|
pnotice("no_cddb","",2);
|