From 90ce8269033dd1f06a5054392f35e45e45a5c560 Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Sun, 9 Dec 2007 18:48:02 +0000 Subject: 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 --- apps/plugin.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'apps/plugin.h') diff --git a/apps/plugin.h b/apps/plugin.h index 9105932485..02c722f2ec 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 */ -- cgit v1.2.3