projects
/
id3fs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
db5c246
)
merge ARTIST and TAG states
author
Ian Beckwith
<ianb@erislabs.net>
Sat, 25 Sep 2010 00:08:31 +0000
(
01:08
+0100)
committer
Ian Beckwith
<ianb@erislabs.net>
Sat, 25 Sep 2010 00:08:31 +0000
(
01:08
+0100)
lib/ID3FS/Path.pm
patch
|
blob
|
history
diff --git
a/lib/ID3FS/Path.pm
b/lib/ID3FS/Path.pm
index
ea575a0
..
d2226ff
100644
(file)
--- a/
lib/ID3FS/Path.pm
+++ b/
lib/ID3FS/Path.pm
@@
-11,8
+11,8
@@
use ID3FS::PathElement::Tag;
use ID3FS::PathElement::Tagval;
our ($STATE_INVALID, $STATE_ROOT, $STATE_TAG, $STATE_TAGVAL,
use ID3FS::PathElement::Tagval;
our ($STATE_INVALID, $STATE_ROOT, $STATE_TAG, $STATE_TAGVAL,
- $STATE_BOOLEAN, $STATE_A
RTISTS, $STATE_A
LBUMS, $STATE_TRACKLIST,
- $STATE_FILE)=(0..
8
);
+ $STATE_BOOLEAN, $STATE_ALBUMS, $STATE_TRACKLIST,
+ $STATE_FILE)=(0..
7
);
sub new
{
sub new
{
@@
-70,7
+70,8
@@
sub dirents
{
when($STATE_TAG)
{
{
when($STATE_TAG)
{
- @dents=qw(AND ARTISTS ALBUMS TRACKS);
+ @dents=(qw(AND ALLTRACKS), # FIXME: NOT and OR
+ $self->{db}->artists(@{$self->{elements}}));
}
when($STATE_BOOLEAN)
{
}
when($STATE_BOOLEAN)
{
@@
-80,13
+81,9
@@
sub dirents
{
@dents=("ALL", $self->{db}->tags(@{$self->{elements}}));
}
{
@dents=("ALL", $self->{db}->tags(@{$self->{elements}}));
}
- when($STATE_ARTISTS)
- {
- @dents=$self->{db}->artists(@{$self->{elements}});
- }
when($STATE_ALBUMS)
{
when($STATE_ALBUMS)
{
- @dents=
$self->{db}->albums(@{$self->{elements}}
);
+ @dents=
("TRACKS", $self->{db}->albums(@{$self->{elements}})
);
}
when($STATE_TRACKLIST)
{
}
when($STATE_TRACKLIST)
{
@@
-127,7
+124,7
@@
sub parse
print "SM: ROOT: $name\n";
if($name eq "ALL")
{
print "SM: ROOT: $name\n";
if($name eq "ALL")
{
- $self->state($STATE_
ARTISTS
);
+ $self->state($STATE_
TAG
);
}
else
{
}
else
{
@@
-153,22
+150,27
@@
sub parse
$self->state($STATE_BOOLEAN);
# push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
}
$self->state($STATE_BOOLEAN);
# push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
}
- when("A
RTIST
S")
+ when("A
LLTRACK
S")
{
{
- $self->state($STATE_
ARTISTS
);
+ $self->state($STATE_
TRACKLIST
);
}
}
- when("
ALBUMS
")
+ when("
OR
")
{
{
- $self->state($STATE_ALBUMS);
+ $self->state($STATE_BOOLEAN);
+# push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
}
}
- when("
TRACKS
")
+ when("
NOT
")
{
{
- $self->state($STATE_TRACKLIST);
+ $self->state($STATE_TAG);
+# push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
}
}
-
-# when("OR") { ; }
-# when("NOT") { ; }
- default
+ my $artist=ID3FS::PathElement::Artist->new($self->{db}, $name);
+ if($artist)
+ {
+ push(@{$self->{elements}}, $artist);
+ $self->state($STATE_ALBUMS);
+ }
+ else
{
$self->state($STATE_INVALID);
}
{
$self->state($STATE_INVALID);
}
@@
-211,34
+213,26
@@
sub parse
$self->state($STATE_INVALID);
}
}
$self->state($STATE_INVALID);
}
}
- when($STATE_ARTISTS)
- {
- print "SM: ARTIST: $name\n";
- my $artist=ID3FS::PathElement::Artist->new($self->{db}, $name);
- push(@{$self->{elements}}, $tag);
- if($artist)
- {
- push(@{$self->{elements}}, $artist);
- $self->state($STATE_ALBUMS);
- }
- else
- {
- $self->state($STATE_INVALID);
- }
- }
when($STATE_ALBUMS)
{
print "SM: ALBUM: $name\n";
when($STATE_ALBUMS)
{
print "SM: ALBUM: $name\n";
- my $album=ID3FS::PathElement::Album->new($self->{db}, $name);
- push(@{$self->{elements}}, $album);
- if($album)
+ if($name eq "TRACKS")
{
{
- push(@{$self->{elements}}, $album);
$self->state($STATE_TRACKLIST);
}
else
{
$self->state($STATE_TRACKLIST);
}
else
{
- $self->state($STATE_INVALID);
+ my $album=ID3FS::PathElement::Album->new($self->{db}, $name);
+ push(@{$self->{elements}}, $album);
+ if($album)
+ {
+ push(@{$self->{elements}}, $album);
+ $self->state($STATE_TRACKLIST);
+ }
+ else
+ {
+ $self->state($STATE_INVALID);
+ }
}
}
when($STATE_TRACKLIST)
}
}
when($STATE_TRACKLIST)