our %priorities=( "OR" => 0, "AND" => 1, "NOT" => 2 );
+our $PATH_ALLTRACKS="TRACKS";
+our $PATH_NOARTIST="NOARTIST";
+our $PATH_NOALBUM="NOALBUM";
+
sub new
{
my $proto=shift;
# print "DIRENTS: FILE: $self->{path}\n";
if($state==$STATE_ALL)
{
- push(@dents, qw(TRACKS NOARTIST), $self->artists());
+ push(@dents, $PATH_ALLTRACKS, $PATH_NOARTIST, $self->artists());
}
elsif($state==$STATE_TAG || $state==$STATE_TAGVAL)
{
}
else
{
- push(@dents, qw(AND OR TRACKS NOARTIST), $self->artists());
+ push(@dents, qw(AND OR), $PATH_ALLTRACKS, $PATH_NOARTIST, $self->artists());
}
}
elsif($state==$STATE_BOOLEAN)
}
elsif($state==$STATE_ALBUMS)
{
- @dents=(qw(TRACKS NOALBUM),$self->albums());
+ @dents=($PATH_ALLTRACKS, $PATH_NOALBUM, $self->albums());
}
elsif($state==$STATE_TRACKLIST)
{
$self->state($STATE_INVALID);
}
}
- elsif($name eq "TRACKS")
+ elsif($name eq $PATH_ALLTRACKS)
{
$self->state($STATE_TRACKLIST);
}
- elsif($name eq "NOARTIST")
+ elsif($name eq $PATH_NOARTIST)
{
$self->state($STATE_TRACKLIST);
}
elsif($state==$STATE_ALBUMS)
{
# print "SM: ALBUM: $name\n";
- if($name eq "TRACKS")
+ if($name eq $PATH_ALLTRACKS)
{
$self->state($STATE_TRACKLIST);
}
- elsif($name eq "NOALBUM")
+ elsif($name eq $PATH_NOALBUM)
{
$self->state($STATE_TRACKLIST);
}
}
elsif($state==$STATE_ALL)
{
- if($name eq "TRACKS")
+ if($name eq $PATH_ALLTRACKS)
{
$self->state($STATE_TRACKLIST);
}
- elsif($name eq "NOARTIST")
+ elsif($name eq $PATH_NOARTIST)
{
+ # FIXME
$self->state($STATE_TRACKLIST);
}
else
"INNER JOIN files ON files.id=subselect.files_id\n");
}
$sql .= "INNER JOIN artists ON files.artists_id=artists.id\n";
- if($self->{components}->[$#{$self->{components}}] eq "NOARTIST")
+ if($self->{components}->[$#{$self->{components}}] eq $PATH_NOARTIST)
{
$sql .= "WHERE artists.name =''\n";
}