summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/tagtree.c45
-rw-r--r--apps/tagtree.h4
-rw-r--r--apps/tree.c10
3 files changed, 35 insertions, 24 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c
index b3e423018e..0268dc5f64 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)
710 if (!tagcache_search(&tcs, tag_filename)) 710 if (!tagcache_search(&tcs, tag_filename))
711 return -1; 711 return -1;
712 712
713 tagcache_search_add_filter(&tcs, tag_title, entry->extraseek); 713 if (!tagcache_retrieve(&tcs, entry->extraseek, buf, buflen))
714
715 if (!tagcache_get_next(&tcs))
716 { 714 {
717 tagcache_search_finish(&tcs); 715 tagcache_search_finish(&tcs);
718 return -2; 716 return -2;
719 } 717 }
720 718
721 strncpy(buf, tcs.result, buflen-1);
722 tagcache_search_finish(&tcs); 719 tagcache_search_finish(&tcs);
723 720
724 return 0; 721 return 0;
@@ -789,34 +786,52 @@ struct tagentry* tagtree_get_entry(struct tree_context *c, int id)
789 return &entry[realid]; 786 return &entry[realid];
790} 787}
791 788
792#ifdef HAVE_LCD_BITMAP 789int tagtree_get_attr(struct tree_context* c)
793const char* tagtree_get_icon(struct tree_context* c)
794#else
795int tagtree_get_icon(struct tree_context* c)
796#endif
797{ 790{
798 int icon; 791 int attr = -1;
799
800 switch (c->currtable) 792 switch (c->currtable)
801 { 793 {
802 case navibrowse: 794 case navibrowse:
803 if (csi->tagorder[c->currextra] == tag_title) 795 if (csi->tagorder[c->currextra] == tag_title)
804 icon = Icon_Audio; 796 attr = TREE_ATTR_MPA;
805 else 797 else
806 icon = Icon_Folder; 798 attr = ATTR_DIRECTORY;
807 break; 799 break;
808 800
809 case allsubentries: 801 case allsubentries:
810 icon = Icon_Audio; 802 attr = TREE_ATTR_MPA;
811 break; 803 break;
812 804
813 default: 805 default:
806 attr = ATTR_DIRECTORY;
807 break;
808 }
809
810 return attr;
811}
812
813#ifdef HAVE_LCD_BITMAP
814const unsigned char* tagtree_get_icon(struct tree_context* c)
815#else
816int tagtree_get_icon(struct tree_context* c)
817#endif
818{
819 int icon;
820
821 switch (tagtree_get_attr(c))
822 {
823 case TREE_ATTR_MPA:
824 icon = Icon_Audio;
825 break;
826
827 case ATTR_DIRECTORY:
828 default:
814 icon = Icon_Folder; 829 icon = Icon_Folder;
815 break; 830 break;
816 } 831 }
817 832
818#ifdef HAVE_LCD_BITMAP 833#ifdef HAVE_LCD_BITMAP
819 return (char *)bitmap_icons_6x8[icon]; 834 return bitmap_icons_6x8[icon];
820#else 835#else
821 return icon; 836 return icon;
822#endif 837#endif
diff --git a/apps/tagtree.h b/apps/tagtree.h
index c1010ec95a..81d900bbb6 100644
--- a/apps/tagtree.h
+++ b/apps/tagtree.h
@@ -35,12 +35,12 @@ int tagtree_enter(struct tree_context* c);
35void tagtree_exit(struct tree_context* c); 35void tagtree_exit(struct tree_context* c);
36int tagtree_load(struct tree_context* c); 36int tagtree_load(struct tree_context* c);
37struct tagentry* tagtree_get_entry(struct tree_context *c, int id); 37struct tagentry* tagtree_get_entry(struct tree_context *c, int id);
38int tagtree_get_attr(struct tree_context* c);
38#ifdef HAVE_LCD_BITMAP 39#ifdef HAVE_LCD_BITMAP
39const char* tagtree_get_icon(struct tree_context* c); 40const unsigned char* tagtree_get_icon(struct tree_context* c);
40#else 41#else
41int tagtree_get_icon(struct tree_context* c); 42int tagtree_get_icon(struct tree_context* c);
42#endif 43#endif
43int tagtree_get_filename(struct tree_context* c, char *buf, int buflen); 44int tagtree_get_filename(struct tree_context* c, char *buf, int buflen);
44 45
45#endif 46#endif
46
diff --git a/apps/tree.c b/apps/tree.c
index b19ffaadee..c7a6c012b7 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -766,14 +766,10 @@ static bool dirbrowse(void)
766 else { 766 else {
767 if (id3db) 767 if (id3db)
768 { 768 {
769 switch (tc.currtable) 769 if (tagtree_get_attr(&tc) == TREE_ATTR_MPA)
770 { 770 {
771 case navibrowse: 771 attr = TREE_ATTR_MPA;
772 if (tc.currextra != tag_title) 772 tagtree_get_filename(&tc, buf, sizeof(buf));
773 break;
774 attr=TREE_ATTR_MPA;
775 tagtree_get_filename(&tc, buf, sizeof(buf));
776 break;
777 } 773 }
778 } 774 }
779 else 775 else