diff options
author | Andrew Mahone <andrew.mahone@gmail.com> | 2009-05-28 04:14:56 +0000 |
---|---|---|
committer | Andrew Mahone <andrew.mahone@gmail.com> | 2009-05-28 04:14:56 +0000 |
commit | 34589f6ccb19f2689255226fd8ee5fc612d5e632 (patch) | |
tree | b0371fcf92cd2579df65fc5160202277aaf90880 /apps | |
parent | dda7580f8a1778e805bb22cd083fa5aea51fe62f (diff) | |
download | rockbox-34589f6ccb19f2689255226fd8ee5fc612d5e632.tar.gz rockbox-34589f6ccb19f2689255226fd8ee5fc612d5e632.zip |
Suggested by Thomas Martitz, use tagcache_fill_tags to speed up PictureFlow album art search a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21110 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugin.c | 3 | ||||
-rw-r--r-- | apps/plugin.h | 5 | ||||
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.c | 16 |
3 files changed, 20 insertions, 4 deletions
diff --git a/apps/plugin.c b/apps/plugin.c index 05a27ea591..dfdcb01b19 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -648,6 +648,9 @@ static const struct plugin_api rockbox_api = { #ifdef HAVE_TOUCHSCREEN action_get_touchscreen_press, #endif +#if defined(HAVE_TAGCACHE) && defined(HAVE_TC_RAMCACHE) + tagcache_fill_tags +#endif }; int plugin_load(const char* plugin, const void* parameter) diff --git a/apps/plugin.h b/apps/plugin.h index 8ec0f19572..56d3f42d1b 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -128,7 +128,7 @@ void* plugin_get_buffer(size_t *buffer_size); #define PLUGIN_MAGIC 0x526F634B /* RocK */ /* increase this every time the api struct changes */ -#define PLUGIN_API_VERSION 152 +#define PLUGIN_API_VERSION 153 /* update this to latest version if a change to the api struct breaks backwards compatibility (and please take the opportunity to sort in any @@ -810,6 +810,9 @@ struct plugin_api { #ifdef HAVE_TOUCHSCREEN int (*action_get_touchscreen_press)(short *x, short *y); #endif +#if defined(HAVE_TAGCACHE) && defined(HAVE_TC_RAMCACHE) + bool (*tagcache_fill_tags)(struct mp3entry *id3, const char *filename); +#endif }; /* plugin header */ diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index cd12152d43..2baea2a730 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c @@ -879,9 +879,19 @@ bool get_albumart_for_index_from_db(const int slide_index, char *buf, struct mp3entry id3; int fd; - fd = rb->open(tcs.result, O_RDONLY); - rb->get_metadata(&id3, fd, tcs.result); - rb->close(fd); +#ifdef HAVE_TC_RAMCACHE + if (rb->tagcache_fill_tags(&id3, tcs.result)) + { + rb->strncpy(id3.path, tcs.result, sizeof(id3.path)); + id3.path[sizeof(id3.path) - 1] = 0; + } + else +#endif + { + fd = rb->open(tcs.result, O_RDONLY); + rb->get_metadata(&id3, fd, tcs.result); + rb->close(fd); + } if ( search_albumart_files(&id3, "", buf, buflen) ) result = true; else |