summaryrefslogtreecommitdiff
path: root/apps/plugin.h
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2007-12-09 18:48:02 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2007-12-09 18:48:02 +0000
commit90ce8269033dd1f06a5054392f35e45e45a5c560 (patch)
tree0583f4c56c2b8d73078f2112cc851862b859385d /apps/plugin.h
parent19f487b451b026833a6d9aaeabcec756c9e9f2b7 (diff)
downloadrockbox-90ce8269033dd1f06a5054392f35e45e45a5c560.zip
rockbox-90ce8269033dd1f06a5054392f35e45e45a5c560.tar.gz
rockbox-90ce8269033dd1f06a5054392f35e45e45a5c560.tar.bz2
rockbox-90ce8269033dd1f06a5054392f35e45e45a5c560.tar.xz
Initial commit of the PictureFlow plugin, a nice visualization for album covers.
Original code by Ariya Hidayat. Rockbox port by Jonas Hurrelmann and a few tweaks by me. On the first startup the database is scanned and album art is searched for each album. This process will take some time (dircache enabled and/or database in RAM speed it up, and it is possible to abort by pressing MENU), but the results are cached and the next startups will be very quick. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15900 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugin.h')
-rw-r--r--apps/plugin.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/apps/plugin.h b/apps/plugin.h
index 9105932..02c722f 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -78,6 +78,9 @@
#include "list.h"
#include "tree.h"
#include "color_picker.h"
+#include "buffering.h"
+#include "tagcache.h"
+#include "albumart.h"
#ifdef HAVE_REMOTE_LCD
#include "lcd-remote.h"
@@ -655,6 +658,42 @@ struct plugin_api {
void (*remote_backlight_set_timeout_plugged)(int index);
#endif
#endif /* HAVE_REMOTE_LCD */
+
+#if (CONFIG_CODEC == SWCODEC)
+ int (*bufopen)(const char *file, size_t offset, enum data_type type);
+ int (*bufalloc)(const void *src, size_t size, enum data_type type);
+ bool (*bufclose)(int handle_id);
+ int (*bufseek)(int handle_id, size_t newpos);
+ int (*bufadvance)(int handle_id, off_t offset);
+ ssize_t (*bufread)(int handle_id, size_t size, void *dest);
+ ssize_t (*bufgetdata)(int handle_id, size_t size, void **data);
+ ssize_t (*bufgettail)(int handle_id, size_t size, void **data);
+ ssize_t (*bufcuttail)(int handle_id, size_t size);
+
+ ssize_t (*buf_get_offset)(int handle_id, void *ptr);
+ ssize_t (*buf_handle_offset)(int handle_id);
+ void (*buf_request_buffer_handle)(int handle_id);
+ void (*buf_set_base_handle)(int handle_id);
+ size_t (*buf_used)(void);
+#endif
+
+#ifdef HAVE_TAGCACHE
+ bool (*tagcache_search)(struct tagcache_search *tcs, int tag);
+ void (*tagcache_search_set_uniqbuf)(struct tagcache_search *tcs,
+ void *buffer, long length);
+ bool (*tagcache_search_add_filter)(struct tagcache_search *tcs,
+ int tag, int seek);
+ bool (*tagcache_get_next)(struct tagcache_search *tcs);
+ bool (*tagcache_retrieve)(struct tagcache_search *tcs, int idxid,
+ int tag, char *buf, long size);
+ void (*tagcache_search_finish)(struct tagcache_search *tcs);
+#endif
+
+#ifdef HAVE_ALBUMART
+ bool (*find_albumart)(const struct mp3entry *id3, char *buf, int buflen);
+ bool (*search_albumart_files)(const struct mp3entry *id3, const char *size_string,
+ char *buf, int buflen);
+#endif
};
/* plugin header */