control filters via $ENABLE_FILTER at the top of ID3FS::Path
[id3fs.git] / lib / ID3FS / Path.pm
index b5c8083..e99a801 100644 (file)
@@ -10,10 +10,12 @@ our ($STATE_INVALID, $STATE_ROOT, $STATE_TAG, $STATE_TAGVAL,
 
 our %priorities=( "OR" => 0, "AND" => 1, "NOT" => 2 );
 
-our $PATH_ALLTRACKS= "ALLTRACKS";
+our $PATH_ALLTRACKS= "TRACKS";
 our $PATH_NOARTIST = "NOARTIST";
 our $PATH_NOALBUM  = "NOALBUM";
 
+our $ENABLE_FILTER = 1;
+
 sub new
 {
     my $proto=shift;
@@ -92,7 +94,9 @@ sub dirents
            {
                @dents=qw(AND OR);
            }
-           push(@dents, $self->filter($PATH_ALLTRACKS, $PATH_NOARTIST));
+           push(@dents, ($ENABLE_FILTER ?
+                         $self->filter($PATH_ALLTRACKS, $PATH_NOARTIST) :
+                         ($PATH_ALLTRACKS, $PATH_NOARTIST)));
            push(@dents, $self->artists());
        }
     }
@@ -678,6 +682,7 @@ sub tags_subselect
        return "\tSELECT id FROM files AS files_id\n";
     }
     my $tree=$self->{tagtree};
+    # FIXME
     print "UNDEF!!\n" unless($self->{tagtree});
     my $parent=$self->trailing_tag_parent();
 
@@ -691,7 +696,7 @@ sub tags_subselect
     }
     my ($sqlclause, @joins)=(undef, ());
     ($sqlclause, @joins) = $tree->to_sql($hasvals) if($tree);
-#    print "SQL(" . scalar(@joins) .": $sqlclause\n";
+#    print "SQL(" . scalar(@joins) ."): $sqlclause\n";
     my $sql="\tSELECT fxt1.files_id FROM tags t1";
     my @crosses=();
     my @inners=();
@@ -780,8 +785,6 @@ sub constraints_tag_list
 sub filter
 {
     my($self, @dirs)=@_;
-    # FIXME: disabled - too slow
-    return @dirs;
     my $base=$self->{path};
     my @outdirs=();
     for my $dir (@dirs)