summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorRobert Kukla <roolku@rockbox.org>2007-11-04 21:11:40 +0000
committerRobert Kukla <roolku@rockbox.org>2007-11-04 21:11:40 +0000
commitca1b92089623a4e377f2fae67a790bd099a8d59d (patch)
tree997c92846c51274220fa9ed9a2fd0962a8ee2359 /apps
parent31c1164c49c88b32a5d0243c8ed32b01376772f2 (diff)
downloadrockbox-ca1b92089623a4e377f2fae67a790bd099a8d59d.zip
rockbox-ca1b92089623a4e377f2fae67a790bd099a8d59d.tar.gz
rockbox-ca1b92089623a4e377f2fae67a790bd099a8d59d.tar.bz2
rockbox-ca1b92089623a4e377f2fae67a790bd099a8d59d.tar.xz
Fix for FS#8082:
runtime data fields are filled like any other fields in the mp3entry struct during the call to get_metadata(); HWCODEC still uses the old callback mechanism git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15463 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/metadata.c7
-rw-r--r--apps/tagtree.c6
-rw-r--r--apps/tagtree.h1
3 files changed, 11 insertions, 3 deletions
diff --git a/apps/metadata.c b/apps/metadata.c
index 6671975..97926fe 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -26,6 +26,9 @@
#include "playback.h"
#include "debug.h"
#include "logf.h"
+#ifdef HAVE_TAGCACHE
+#include "tagtree.h"
+#endif
#include "cuesheet.h"
#if CONFIG_CODEC == SWCODEC
@@ -319,6 +322,10 @@ bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
lseek(fd, 0, SEEK_SET);
strncpy(id3->path, trackname, sizeof(id3->path));
+#ifdef HAVE_TAGCACHE
+ tagtree_buffer_event(id3);
+#endif
+
return true;
}
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 60bdfb2..725e903 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -633,10 +633,8 @@ static int compare(const void *p1, const void *p2)
return strncasecmp(e1->name, e2->name, MAX_PATH);
}
-static void tagtree_buffer_event(struct mp3entry *id3)
+void tagtree_buffer_event(struct mp3entry *id3)
{
- (void)id3;
-
/* Do not gather data unless proper setting has been enabled. */
if (!global_settings.runtimedb)
return;
@@ -923,7 +921,9 @@ void tagtree_init(void)
root_menu = 0;
uniqbuf = buffer_alloc(UNIQBUF_SIZE);
+#if CONFIG_CODEC != SWCODEC
audio_set_track_buffer_event(tagtree_buffer_event);
+#endif
audio_set_track_unbuffer_event(tagtree_unbuffer_event);
}
diff --git a/apps/tagtree.h b/apps/tagtree.h
index e915dce..76060cb 100644
--- a/apps/tagtree.h
+++ b/apps/tagtree.h
@@ -48,6 +48,7 @@ char *tagtree_get_title(struct tree_context* c);
int tagtree_get_attr(struct tree_context* c);
int tagtree_get_icon(struct tree_context* c);
int tagtree_get_filename(struct tree_context* c, char *buf, int buflen);
+void tagtree_buffer_event(struct mp3entry *id3);
#endif
#endif