diff --git a/apps/tagcache.c b/apps/tagcache.c index c22091ecf5..e51b1200a2 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c @@ -117,6 +117,7 @@ static const int unique_tags[] = { tag_artist, tag_album, tag_genre, static const int numeric_tags[] = { tag_year, tag_tracknumber, tag_length, tag_bitrate, tag_playcount, tag_rating, tag_playtime, tag_lastplayed, tag_commitid, tag_virt_length_min, tag_virt_length_sec, + tag_virt_playtime_min, tag_virt_playtime_sec, tag_virt_entryage, tag_virt_autoscore }; /* String presentation of the tags defined in tagcache.h. Must be in correct order! */ @@ -668,6 +669,14 @@ static long check_virtual_tags(int tag, const struct index_entry *idx) data = (idx->tag_seek[tag_length]/1000) / 60; break; + case tag_virt_playtime_sec: + data = (idx->tag_seek[tag_playtime]/1000) % 60; + break; + + case tag_virt_playtime_min: + data = (idx->tag_seek[tag_playtime]/1000) / 60; + break; + case tag_virt_autoscore: if (idx->tag_seek[tag_length] == 0 || idx->tag_seek[tag_playcount] == 0) diff --git a/apps/tagcache.h b/apps/tagcache.h index f449f1344e..70677c602b 100644 --- a/apps/tagcache.h +++ b/apps/tagcache.h @@ -28,6 +28,7 @@ enum tag_type { tag_artist = 0, tag_album, tag_genre, tag_title, tag_playtime, tag_lastplayed, tag_commitid, /* Virtual tags */ tag_virt_length_min, tag_virt_length_sec, + tag_virt_playtime_min, tag_virt_playtime_sec, tag_virt_entryage, tag_virt_autoscore }; #define TAG_COUNT 17 diff --git a/apps/tagtree.c b/apps/tagtree.c index cc8c1456e6..56e8740ac8 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -202,6 +202,8 @@ static int get_tag(int *tag) MATCH(tag, buf, "length", tag_length); MATCH(tag, buf, "Lm", tag_virt_length_min); MATCH(tag, buf, "Ls", tag_virt_length_sec); + MATCH(tag, buf, "Pm", tag_virt_playtime_min); + MATCH(tag, buf, "Ps", tag_virt_playtime_sec); MATCH(tag, buf, "title", tag_title); MATCH(tag, buf, "filename", tag_filename); MATCH(tag, buf, "tracknum", tag_tracknumber);