| Top |
| void | (*RBExtDBRequestCallback) () |
| RBExtDB * | rb_ext_db_new () |
| char * | rb_ext_db_lookup () |
| gboolean | rb_ext_db_request () |
| void | rb_ext_db_store_uri () |
| void | rb_ext_db_store () |
| void | rb_ext_db_store_raw () |
This class simplifies searching for and providing external metadata such as album art or lyrics. A metadata provider connects to a signal on the database and in response provides a URI, a buffer containing the data, or an object representation of the data (such as a GdkPixbuf). A metadata requestor calls rb_ext_db_request and specifies a callback, or alternatively connects to a signal to receive all metadata as it is stored.
void (*RBExtDBRequestCallback) (RBExtDBKey *key,const char *filename,GValue *data,gpointer user_data);
RBExtDB *
rb_ext_db_new (const char *name);
Provides access to a metadata store instance.
char * rb_ext_db_lookup (RBExtDB *store,RBExtDBKey *key);
Looks up a cached metadata item.
gboolean rb_ext_db_request (RBExtDB *store,RBExtDBKey *key,RBExtDBRequestCallback callback,gpointer user_data,GDestroyNotify destroy);
Requests a metadata item. If the item is cached, the callback will be called synchronously. Otherwise, metadata providers will provide results asynchronously.
void rb_ext_db_store_uri (RBExtDB *store,RBExtDBKey *key,RBExtDBSourceType source_type,const char *uri);
Stores an item identified by uri
in the metadata store so that
lookups matching key
will return it.
store |
metadata store instance |
|
key |
metadata storage key |
|
source_type |
metadata source type |
|
uri |
URI of the item to store. |
[allow-none] |
void rb_ext_db_store (RBExtDB *store,RBExtDBKey *key,RBExtDBSourceType source_type,GValue *data);
Stores an item in the metadata store so that lookups matching key
will
return it. data
should contain an object that must be transformed using
the RBExtDB::store signal before being stored. For example,
the album art cache expects GdkPixbuf objects here, rather than buffers
containing JPEG encoded files.
store |
metadata store instance |
|
key |
metadata storage key |
|
source_type |
metadata source type |
|
data |
data to store. |
[allow-none] |
void rb_ext_db_store_raw (RBExtDB *store,RBExtDBKey *key,RBExtDBSourceType source_type,GValue *data);
Stores an item in the metadata store so that lookpus matching key
will return it. data
should contain the data to be written to the
store, either as a string or as a GByteArray.
store |
metadata store instance |
|
key |
metadata storage key |
|
source_type |
metadata source type |
|
data |
data to store. |
[allow-none] |
struct RBExtDBClass {
GObjectClass parent;
/* requestor signals */
void (*added) (RBExtDB *store,
RBExtDBKey *key,
const char *filename,
GValue *data);
/* provider signals */
gboolean (*request) (RBExtDB *store,
RBExtDBKey *key,
guint64 last_time);
/* data format conversion signals */
GValue * (*store) (RBExtDB *store,
GValue *data);
GValue * (*load) (RBExtDB *store,
GValue *data);
};