Index: trunk/lib/MP3/Find/Base.pm
===================================================================
--- trunk/lib/MP3/Find/Base.pm	(revision 37)
+++ trunk/lib/MP3/Find/Base.pm	(revision 39)
@@ -6,4 +6,5 @@
 use Carp;
 
+#TODO: allow ID3v2 tags in printf format
 my %format_codes = (
     a => 'ARTIST',
Index: trunk/lib/MP3/Find/Filesystem.pm
===================================================================
--- trunk/lib/MP3/Find/Filesystem.pm	(revision 37)
+++ trunk/lib/MP3/Find/Filesystem.pm	(revision 39)
@@ -12,4 +12,5 @@
 use MP3::Find::Util qw(get_mp3_metadata);
 
+# XXX: this may or may not lead to faster searches
 eval {
     require Sort::Key;
@@ -18,8 +19,4 @@
 };
 my $USE_SORT_KEY = $@ ? 0 : 1;
-
-
-eval { require MP3::Tag };
-my $CAN_USE_ID3V2 = $@ ? 0 : 1;
 
 use_winamp_genres();
@@ -52,10 +49,5 @@
         }
     }
-    
-    if ($$options{use_id3v2} and not $CAN_USE_ID3V2) {
-	# they want to use ID3v2, but don't have MP3::Tag
-	warn "MP3::Tag is required to search ID3v2 tags\n";
-    }
-	
+
     # run the actual find
     my @results;
@@ -102,5 +94,4 @@
     my $mp3 = get_mp3_metadata({
 	filename  => $filename,
-	use_id3v2 => $options->{use_id3v2},
     });
 
@@ -139,10 +130,19 @@
 L<File::Find>, L<MP3::Info>, L<Scalar::Util>
 
-L<MP3::Tag> is also needed if you want to search using ID3v2 tags.
-
 =head1 DESCRIPTION
 
 This module implements the C<search> method from L<MP3::Find::Base>
 using a L<File::Find> based search of the local filesystem.
+
+In addition to just the basic ID3v1 tags, you can search for files by their
+ID3v2 data, using the four-character frame names.  This isn't very useful if
+you are just search by artist or title, but if, for example, you have made use
+of the C<TOPE> ("Orignal Performer") frame, you could search for all the cover
+songs in your collection:
+
+    $finder->find_mp3s(query => { tope => '.' });
+
+As with the basic query keys, ID3v2 query keys are converted to uppercase
+internally.
 
 =head2 Special Options
@@ -152,20 +152,6 @@
 =item C<exclude_path>
 
-Scalar or arrayref; any file whose name matches any of these paths
-will be skipped.
-
-=item C<use_id3v2>
-
-Boolean, defaults to false. If set to true, MP3::Find::Filesystem will
-use L<MP3::Tag> to get the ID3v2 tag for each file. You can then search
-for files by their ID3v2 data, using the four-character frame names. 
-This isn't very useful if you are just search by artist or title, but if,
-for example, you have made use of the C<TOPE> ("Orignal Performer") frame,
-you could search for all the cover songs in your collection:
-
-    $finder->find_mp3s(query => { tope => '.' });
-
-As with the basic query keys, ID3v2 query keys are converted to uppercase
-internally.
+Scalar or arrayref; any file whose name matches any of these paths will be
+skipped.
 
 =back
@@ -181,5 +167,5 @@
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2006 by Peter Eichman. All rights reserved.
+Copyright (c) 2006-2008 by Peter Eichman. All rights reserved.
 
 This program is free software; you can redistribute it and/or
Index: trunk/lib/MP3/Find/Util.pm
===================================================================
--- trunk/lib/MP3/Find/Util.pm	(revision 37)
+++ trunk/lib/MP3/Find/Util.pm	(revision 39)
@@ -51,28 +51,8 @@
     my $mp3 = {
         FILENAME => $filename,
-        %{ get_mp3tag($filename)  || {} },
-        %{ get_mp3info($filename) || {} },
+        # ID3v2 tags, if present, override ID3v1 tags
+        %{ get_mp3tag($filename, 0, 2)  || {} },
+        %{ get_mp3info($filename)       || {} },
     };
-    
-    if ($CAN_USE_ID3V2 and $args->{use_id3v2}) {
-	# add ID3v2 tag info, if present
-	my $mp3_tags = MP3::Tag->new($filename);
-	unless (defined $mp3_tags) {
-	    warn "Can't get MP3::Tag object for $filename\n";
-	} else {
-	    $mp3_tags->get_tags;
-	    if (my $id3v2 = $mp3_tags->{ID3v2}) {
-		for my $frame_id (keys %{ $id3v2->get_frame_ids }) {
-		    my ($info) = $id3v2->get_frame($frame_id);
-		    if (ref $info eq 'HASH') {
-			# use the "Text" value as the value for this frame, if present
-			$mp3->{$frame_id} = $info->{Text} if exists $info->{Text};
-		    } else {
-			$mp3->{$frame_id} = $info;
-		    }
-		}
-	    }
-	}
-    }
 
     return $mp3;
