my $main_sql_end=")\n\tGROUP BY t2.name;";
while(my $constraint=shift @constraints)
{
- print "CONSTRAINT: $constraint->{name}\n";
my $cid=$constraint->{id};
push(@ids, $cid);
}
"\n\tGROUP BY artists.name;");
while(my $constraint=shift @constraints)
{
- print "CONSTRAINT: $constraint->{name}\n";
my $cid=$constraint->{id};
push(@ids, $cid);
}
"\n\tGROUP BY albums.name;");
while(my $constraint=shift @constraints)
{
- print "CONSTRAINT: $constraint->{name}\n";
my $cid=$constraint->{id};
push(@ids, $cid);
}
my $str=join(", ", @ids);
my $sql = ($main_sql_start . $str .
$main_sql_end);
- print "SQL: $sql\n";
my $result=$self->cmd_rows($sql);
my @names=map { $_->[0]; } @$result;
print "ALBUMS: ", join(', ', @names), "\n";
my @ids;
while(my $constraint=shift @constraints)
{
- print "CONSTRAINT: $constraint->{name}\n";
my $cid=$constraint->{id};
push(@ids, $cid);
}
sub id
{
my($self, $type, $val)=@_;
- print "ID: $type $val\n";
my $sql="SELECT id FROM $type WHERE name=?";
my ($id)=$self->cmd_onerow($sql, $val);
return($id);
sub getattr
{
my($self, $filename)=@_;
- print "**GETATTR: $filename\n";
+# print "**GETATTR: $filename\n";
my $path=ID3FS::Path->new($self->{db}, $filename);
my $last_update=$self->{db}->last_update();
return(-ENOENT()) unless($path->isvalid());
sub readlink
{
my($self,$filename)=@_;
- print "**READLINK: $filename\n";
+# print "**READLINK: $filename\n";
my $path=ID3FS::Path->new($self->{db}, $filename);
return(-EINVAL()) unless($path->isfile());
return $path->dest();
sub getdir
{
my($self, $filename)=@_;
- print "**GETDIR: $filename\n";
+# print "**GETDIR: $filename\n";
my $path=ID3FS::Path->new($self->{db}, $filename);
return(-ENOENT()) unless($path->isvalid());
if($path->isdir())
$self->{db}=shift;
$self->{path}=shift;
$self->parse();
- print "STATE: ", $self->state(), "\n";
+# print "STATE: ", $self->state(), "\n";
return $self;
}
my($self)=@_;
my @dents=();
my $state=$self->state();
- print "DIRENTS: STATE: $state\n";
+# print "DIRENTS: STATE: $state\n";
if($state==$STATE_TAG || $state==$STATE_TAGVAL)
{
my $tag=$self->{elements}->[$#{$self->{elements}}];
ref($tag) eq "ID3FS::PathElement::Tag" &&
$self->{db}->tag_has_values($tag->{id}))
{
- print "DIRENTS: TAG: TAGVALUES\n";
@dents=$self->{db}->tag_values($tag->{id});
}
else
{
- print "DIRENTS: TAG/TAGVAL($state): ARTISTS\n";
@dents=(qw(AND ALLTRACKS), # FIXME: NOT and OR
$self->{db}->artists(@{$self->{elements}}));
}
my($self)=@_;
@{$self->{components}}=split(/\//, $self->{path});
shift @{$self->{components}}; # drop empty field before leading /
- print "PATH: $self->{path}\n";
-# print "COMPONENTS: ", join(' | ', @{$self->{components}}), "\n";
+# print "PATH: $self->{path}\n";
$self->state($STATE_ROOT);
return if($self->{path} eq "/");
my @parts=@{$self->{components}};
$self->{elements}=[];
while(my $name=shift @parts)
{
- print "NAME: $name\n";
+# print "NAME: $name\n";
my $state=$self->state();
if($state==$STATE_INVALID)
{
- print "SM: INVALID: $name\n";
+# print "SM: INVALID: $name\n";
return;
}
elsif($state==$STATE_ROOT)
{
- print "SM: ROOT: $name\n";
+# print "SM: ROOT: $name\n";
if($name eq "ALL")
{
$self->state($STATE_TAG);
}
elsif($state==$STATE_TAG || $state==$STATE_TAGVAL)
{
- print "SM: TAG/TAGVAL($state): $name\n";
+# print "SM: TAG/TAGVAL($state): $name\n";
my $tag=$self->{elements}->[$#{$self->{elements}}];
if($state==$STATE_TAG &&
defined($tag) &&
}
elsif($state==$STATE_BOOLEAN)
{
- print "SM: BOOLEAN: $name\n";
+# print "SM: BOOLEAN: $name\n";
my $tag=ID3FS::PathElement::Tag->new($self->{db}, $name);
if($tag)
{
}
elsif($state==$STATE_ALBUMS)
{
- print "SM: ALBUM: $name\n";
+# print "SM: ALBUM: $name\n";
if($name eq "TRACKS")
{
$self->state($STATE_TRACKLIST);
}
elsif($state==$STATE_TRACKLIST)
{
- print "SM: TRACKLIST: $name\n";
+# print "SM: TRACKLIST: $name\n";
my $track=ID3FS::PathElement::File->new($self->{db}, $name);
push(@{$self->{elements}}, $track);
if($track)
}
elsif($state==$STATE_FILE)
{
- print "SM: FILE: $name\n";
+# print "SM: FILE: $name\n";
# Can't have anything after a filename
$self->state($STATE_INVALID);
}