]> diplodocus.org Git - flac-archive/commitdiff
add forgotten track_tags_from_disc function
authorEric Gillespie <epg@pretzelnet.org>
Mon, 21 Mar 2022 22:57:59 +0000 (17:57 -0500)
committerEric Gillespie <epg@pretzelnet.org>
Mon, 21 Mar 2022 22:57:59 +0000 (17:57 -0500)
fa-encode
tags.pl

index 8a1dc6399bc4a19978e12847272d596b0a94c630..1656353e4f338b938beb3712852dfc8d2d13c5b3 100755 (executable)
--- a/fa-encode
+++ b/fa-encode
@@ -31,6 +31,7 @@ epg::flac::archive::tags->import(
         read_tags
         mangle_for_file_name
         quote
         read_tags
         mangle_for_file_name
         quote
+        track_tags_from_disc
         two_digits
     ]);
 
         two_digits
     ]);
 
diff --git a/tags.pl b/tags.pl
index 3475a56103c53b764874e68a7d16698a17d73d61..c65a2763a3470485f5a04288a94d550dd782d901 100644 (file)
--- a/tags.pl
+++ b/tags.pl
@@ -67,6 +67,7 @@ our @EXPORT_OK = qw[
     read_tags_metaflac
     disc_tags
     track_tags
     read_tags_metaflac
     disc_tags
     track_tags
+    track_tags_from_disc
 
     mangle_for_file_name
     quote
 
     mangle_for_file_name
     quote
@@ -247,6 +248,17 @@ sub track_tags {
     )
 }
 
     )
 }
 
+# TODO confusing relationship with track_tags which is wrong
+sub track_tags_from_disc {
+    my ($album, $tracks, $tracknumber) = @_;
+    my $trackcount = @$tracks;
+    if ($trackcount < $tracknumber) {
+        die("requested track $tracknumber out of $trackcount tracks");
+    }
+    # Listing the track tags second makes them override the album tags.
+    %$album, %{$tracks->[$tracknumber - 1]}
+}
+
 sub mangle_for_file_name {
     my $fn = shift;
     $fn =~ s/[!,.?]//g;          # discard these punctuation marks
 sub mangle_for_file_name {
     my $fn = shift;
     $fn =~ s/[!,.?]//g;          # discard these punctuation marks