1
0
Fork 0
forked from len0rd/rockbox

Enabled playlist functions on tracks in tagcache

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9877 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Hardeep Sidhu 2006-05-05 07:01:43 +00:00
parent b9615514bf
commit a85b23fa5b
3 changed files with 36 additions and 25 deletions

View file

@ -710,15 +710,12 @@ int tagtree_get_filename(struct tree_context* c, char *buf, int buflen)
if (!tagcache_search(&tcs, tag_filename)) if (!tagcache_search(&tcs, tag_filename))
return -1; return -1;
tagcache_search_add_filter(&tcs, tag_title, entry->extraseek); if (!tagcache_retrieve(&tcs, entry->extraseek, buf, buflen))
if (!tagcache_get_next(&tcs))
{ {
tagcache_search_finish(&tcs); tagcache_search_finish(&tcs);
return -2; return -2;
} }
strncpy(buf, tcs.result, buflen-1);
tagcache_search_finish(&tcs); tagcache_search_finish(&tcs);
return 0; return 0;
@ -789,34 +786,52 @@ struct tagentry* tagtree_get_entry(struct tree_context *c, int id)
return &entry[realid]; return &entry[realid];
} }
int tagtree_get_attr(struct tree_context* c)
{
int attr = -1;
switch (c->currtable)
{
case navibrowse:
if (csi->tagorder[c->currextra] == tag_title)
attr = TREE_ATTR_MPA;
else
attr = ATTR_DIRECTORY;
break;
case allsubentries:
attr = TREE_ATTR_MPA;
break;
default:
attr = ATTR_DIRECTORY;
break;
}
return attr;
}
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
const char* tagtree_get_icon(struct tree_context* c) const unsigned char* tagtree_get_icon(struct tree_context* c)
#else #else
int tagtree_get_icon(struct tree_context* c) int tagtree_get_icon(struct tree_context* c)
#endif #endif
{ {
int icon; int icon;
switch (c->currtable) switch (tagtree_get_attr(c))
{ {
case navibrowse: case TREE_ATTR_MPA:
if (csi->tagorder[c->currextra] == tag_title)
icon = Icon_Audio;
else
icon = Icon_Folder;
break;
case allsubentries:
icon = Icon_Audio; icon = Icon_Audio;
break; break;
case ATTR_DIRECTORY:
default: default:
icon = Icon_Folder; icon = Icon_Folder;
break; break;
} }
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
return (char *)bitmap_icons_6x8[icon]; return bitmap_icons_6x8[icon];
#else #else
return icon; return icon;
#endif #endif

View file

@ -35,12 +35,12 @@ int tagtree_enter(struct tree_context* c);
void tagtree_exit(struct tree_context* c); void tagtree_exit(struct tree_context* c);
int tagtree_load(struct tree_context* c); int tagtree_load(struct tree_context* c);
struct tagentry* tagtree_get_entry(struct tree_context *c, int id); struct tagentry* tagtree_get_entry(struct tree_context *c, int id);
int tagtree_get_attr(struct tree_context* c);
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
const char* tagtree_get_icon(struct tree_context* c); const unsigned char* tagtree_get_icon(struct tree_context* c);
#else #else
int tagtree_get_icon(struct tree_context* c); int tagtree_get_icon(struct tree_context* c);
#endif #endif
int tagtree_get_filename(struct tree_context* c, char *buf, int buflen); int tagtree_get_filename(struct tree_context* c, char *buf, int buflen);
#endif #endif

View file

@ -766,14 +766,10 @@ static bool dirbrowse(void)
else { else {
if (id3db) if (id3db)
{ {
switch (tc.currtable) if (tagtree_get_attr(&tc) == TREE_ATTR_MPA)
{ {
case navibrowse: attr = TREE_ATTR_MPA;
if (tc.currextra != tag_title) tagtree_get_filename(&tc, buf, sizeof(buf));
break;
attr=TREE_ATTR_MPA;
tagtree_get_filename(&tc, buf, sizeof(buf));
break;
} }
} }
else else