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:
parent
b9615514bf
commit
a85b23fa5b
3 changed files with 36 additions and 25 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
|
||||||
break;
|
|
||||||
attr=TREE_ATTR_MPA;
|
|
||||||
tagtree_get_filename(&tc, buf, sizeof(buf));
|
tagtree_get_filename(&tc, buf, sizeof(buf));
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue