diff options
| author | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-12-09 18:48:02 +0000 |
|---|---|---|
| committer | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-12-09 18:48:02 +0000 |
| commit | 90ce8269033dd1f06a5054392f35e45e45a5c560 (patch) | |
| tree | 0583f4c56c2b8d73078f2112cc851862b859385d /apps/plugin.h | |
| parent | 19f487b451b026833a6d9aaeabcec756c9e9f2b7 (diff) | |
| download | rockbox-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.h | 39 |
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 */ |