id3fs-tag: -V: summarize tags in directories
[id3fs.git] / lib / ID3FS / AudioFile.pm
index 75df244..ffd78d6 100644 (file)
@@ -88,7 +88,10 @@ sub delete_v1genre  { shift->{audiofile}->delete_v1genre();  }
 sub delete_comment  { shift->{audiofile}->delete_comment();  }
 sub delete_all      { shift->{audiofile}->delete_all();      }
 sub delete_genre    { shift->{audiofile}->delete_genre();    }
-sub delete_tags     { shift->{audiofile}->delete_tags();     }
+sub delete_tags     { shift->{audiofile}->delete_tags(@_);   }
+sub channels        { shift->{audiofile}->channels();        }
+sub bitrate         { shift->{audiofile}->bitrate();         }
+sub samplerate      { shift->{audiofile}->samplerate(@_);    }
 
 sub year
 {
@@ -122,7 +125,8 @@ sub format_year
 sub add_tags
 {
     my($self, $tags)=@_;
-    die("FIXME: implement add_tags()\n");
+    my @tags=split(/\s*,\s*/, $tags);
+    $self->{audiofile}->add_tags(@tags);
 }
 
 sub tags
@@ -169,4 +173,27 @@ sub stripslashes
     return $text;
 }
 
+# This location for these subs is pretty much arbitrary
+sub uniq
+{
+    # class method
+    shift if(ref($_[0]) eq "ID3FS::AudioFile");
+    my (@things)=@_;
+    my %hash=();
+    @hash{@things}=();
+    return(sort keys(%hash));
+}
+
+sub list_remove
+{
+    my($remove, $list)=@_;
+    return(()) unless($list && @$list);
+    my @list=@$list;
+    for my $tag (@$remove)
+    {
+       @list=grep { $_ ne $tag; } @list;
+    }
+    return(@list);
+}
+
 1;