diff options
| author | Hardeep Sidhu <dyp@pobox.com> | 2006-05-05 07:01:43 +0000 |
|---|---|---|
| committer | Hardeep Sidhu <dyp@pobox.com> | 2006-05-05 07:01:43 +0000 |
| commit | a85b23fa5bf8a56ca41adbf9fd53f52dc5ec2eed (patch) | |
| tree | c687f3549c8056390820a9e9b36978b725b376ca /apps | |
| parent | b9615514bf861a94774fe05dd7a3eeb6bd006ac2 (diff) | |
| download | rockbox-a85b23fa5bf8a56ca41adbf9fd53f52dc5ec2eed.zip rockbox-a85b23fa5bf8a56ca41adbf9fd53f52dc5ec2eed.tar.gz rockbox-a85b23fa5bf8a56ca41adbf9fd53f52dc5ec2eed.tar.bz2 rockbox-a85b23fa5bf8a56ca41adbf9fd53f52dc5ec2eed.tar.xz | |
Enabled playlist functions on tracks in tagcache
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9877 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/tagtree.c | 45 | ||||
| -rw-r--r-- | apps/tagtree.h | 4 | ||||
| -rw-r--r-- | apps/tree.c | 10 |
3 files changed, 35 insertions, 24 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c index b3e4230..0268dc5 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -710,15 +710,12 @@ int tagtree_get_filename(struct tree_context* c, char *buf, int buflen) if (!tagcache_search(&tcs, tag_filename)) return -1; - tagcache_search_add_filter(&tcs, tag_title, entry->extraseek); - - if (!tagcache_get_next(&tcs)) + if (!tagcache_retrieve(&tcs, entry->extraseek, buf, buflen)) { tagcache_search_finish(&tcs); return -2; } - strncpy(buf, tcs.result, buflen-1); tagcache_search_finish(&tcs); return 0; @@ -789,34 +786,52 @@ struct tagentry* tagtree_get_entry(struct tree_context *c, int id) return &entry[realid]; } -#ifdef HAVE_LCD_BITMAP -const char* tagtree_get_icon(struct tree_context* c) -#else -int tagtree_get_icon(struct tree_context* c) -#endif +int tagtree_get_attr(struct tree_context* c) { - int icon; - + int attr = -1; switch (c->currtable) { case navibrowse: if (csi->tagorder[c->currextra] == tag_title) - icon = Icon_Audio; + attr = TREE_ATTR_MPA; else - icon = Icon_Folder; + attr = ATTR_DIRECTORY; break; case allsubentries: - icon = Icon_Audio; + attr = TREE_ATTR_MPA; break; default: + attr = ATTR_DIRECTORY; + break; + } + + return attr; +} + +#ifdef HAVE_LCD_BITMAP +const unsigned char* tagtree_get_icon(struct tree_context* c) +#else +int tagtree_get_icon(struct tree_context* c) +#endif +{ + int icon; + + switch (tagtree_get_attr(c)) + { + case TREE_ATTR_MPA: + icon = Icon_Audio; + break; + + case ATTR_DIRECTORY: + default: icon = Icon_Folder; break; } #ifdef HAVE_LCD_BITMAP - return (char *)bitmap_icons_6x8[icon]; + return bitmap_icons_6x8[icon]; #else return icon; #endif diff --git a/apps/tagtree.h b/apps/tagtree.h index c1010ec..81d900b 100644 --- a/apps/tagtree.h +++ b/apps/tagtree.h @@ -35,12 +35,12 @@ int tagtree_enter(struct tree_context* c); void tagtree_exit(struct tree_context* c); int tagtree_load(struct tree_context* c); struct tagentry* tagtree_get_entry(struct tree_context *c, int id); +int tagtree_get_attr(struct tree_context* c); #ifdef HAVE_LCD_BITMAP -const char* tagtree_get_icon(struct tree_context* c); +const unsigned char* tagtree_get_icon(struct tree_context* c); #else int tagtree_get_icon(struct tree_context* c); #endif int tagtree_get_filename(struct tree_context* c, char *buf, int buflen); #endif - diff --git a/apps/tree.c b/apps/tree.c index b19ffaa..c7a6c01 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -766,14 +766,10 @@ static bool dirbrowse(void) else { if (id3db) { - switch (tc.currtable) + if (tagtree_get_attr(&tc) == TREE_ATTR_MPA) { - case navibrowse: - if (tc.currextra != tag_title) - break; - attr=TREE_ATTR_MPA; - tagtree_get_filename(&tc, buf, sizeof(buf)); - break; + attr = TREE_ATTR_MPA; + tagtree_get_filename(&tc, buf, sizeof(buf)); } } else |