sub dest
{
- my($self)=@_;
+ my($self, $mountpoint)=@_;
if($self->state() == $STATE_FILE)
{
- return $self->{db}->filename(@{$self->{elements}});
+ return $self->{db}->filename($mountpoint, @{$self->{elements}});
}
return "ERROR"; #should never happen?
}
my @dents=();
my $state=$self->state();
# print "DIRENTS: STATE: $state\n";
+# print "DIRENTS: FILE: $self->{path}\n";
if($state==$STATE_TAG || $state==$STATE_TAGVAL)
{
my $tag=$self->{elements}->[$#{$self->{elements}}];
}
elsif($name eq "NOT")
{
- push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
+ push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($self->{db}, $name));
$self->state($STATE_BOOLEAN);
}
else
ref($tag) eq "ID3FS::PathElement::Tag" &&
$self->{db}->tag_has_values($tag->{id}))
{
- my $tagval=ID3FS::PathElement::Tagval->new($name);
+ my $tagval=ID3FS::PathElement::Tag->new($self->{db}, $name, $tag->{id});
if(defined($tagval))
{
$self->state($STATE_TAGVAL);
elsif($name eq "AND")
{
$self->state($STATE_BOOLEAN);
- push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
+ push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($self->{db}, $name));
}
elsif($name eq "OR")
{
$self->state($STATE_BOOLEAN);
- push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
+ push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($self->{db}, $name));
}
else
{
if($allownot && $name eq "NOT")
{
$self->state($STATE_BOOLEAN);
- push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
+ push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($self->{db}, $name));
}
else
{
{
# print "SM: TRACKLIST: $name\n";
my $track=ID3FS::PathElement::File->new($self->{db}, $name);
- push(@{$self->{elements}}, $track);
if($track)
{
push(@{$self->{elements}}, $track);