[grilo] core: Add support for binary thumbnails
- From: Juan A. Suarez Romero <jasuarez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo] core: Add support for binary thumbnails
- Date: Thu, 3 Feb 2011 12:11:30 +0000 (UTC)
commit 81972d8db63df0608abf39df099019807524593f
Author: Fabien Lebaillif - Delamare <fabien developers arq-media com>
Date: Thu Jan 20 12:39:08 2011 +0100
core: Add support for binary thumbnails
Add a new property, "thumbnail-binary", to directly store thumbnails.
Signed-off-by: Juan A. Suarez Romero <jasuarez igalia com>
src/data/grl-media.c | 32 ++++++++++++++++++++++++++++++++
src/data/grl-media.h | 4 ++++
src/grl-metadata-key.c | 11 +++++++++++
src/grl-metadata-key.h | 1 +
4 files changed, 48 insertions(+), 0 deletions(-)
---
diff --git a/src/data/grl-media.c b/src/data/grl-media.c
index 21fe538..0a41bb9 100644
--- a/src/data/grl-media.c
+++ b/src/data/grl-media.c
@@ -493,6 +493,23 @@ grl_media_set_thumbnail (GrlMedia *data, const gchar *thumbnail)
}
/**
+ * grl_media_set_thumbnail_binary:
+ * @data: the media
+ * @thumbnail: thumbnail buffer
+ * @size: thumbnail buffer size
+ *
+ * Set the media's binary thumbnail
+ */
+void
+grl_media_set_thumbnail_binary (GrlMedia *data, const guint8 *thumbnail, gsize size)
+{
+ grl_data_set_binary (GRL_DATA (data),
+ GRL_METADATA_KEY_THUMBNAIL_BINARY,
+ thumbnail,
+ size);
+}
+
+/**
* grl_media_set_site:
* @data: the media
* @site: the site
@@ -793,6 +810,21 @@ grl_media_get_thumbnail (GrlMedia *data)
}
/**
+ * grl_media_get_thumbnail_binary:
+ * @data: the media object
+ * @size: pointer to storing the thumbnail buffer size
+ *
+ * Returns: the media's thumbnail data and set size to the thumbnail buffer size
+ */
+const guint8 *
+grl_media_get_thumbnail_binary (GrlMedia *data, gsize *size)
+{
+ return grl_data_get_binary (GRL_DATA (data),
+ GRL_METADATA_KEY_THUMBNAIL_BINARY,
+ size);
+}
+
+/**
* grl_media_get_site:
* @data: the media object
*
diff --git a/src/data/grl-media.h b/src/data/grl-media.h
index 4d2f9e3..31c2928 100644
--- a/src/data/grl-media.h
+++ b/src/data/grl-media.h
@@ -113,6 +113,8 @@ void grl_media_set_source (GrlMedia *data, const gchar *source);
void grl_media_set_thumbnail (GrlMedia *data, const gchar *thumbnail);
+void grl_media_set_thumbnail_binary (GrlMedia *data, const guint8 *thumbnail, gsize size);
+
void grl_media_set_site (GrlMedia *data, const gchar *site);
void grl_media_set_duration (GrlMedia *data, gint duration);
@@ -153,6 +155,8 @@ const gchar *grl_media_get_source (GrlMedia *data);
const gchar *grl_media_get_thumbnail (GrlMedia *data);
+const guint8 *grl_media_get_thumbnail_binary (GrlMedia *data, gsize *size);
+
const gchar *grl_media_get_site (GrlMedia *data);
gint grl_media_get_duration (GrlMedia *data);
diff --git a/src/grl-metadata-key.c b/src/grl-metadata-key.c
index 57c7203..92e7a10 100644
--- a/src/grl-metadata-key.c
+++ b/src/grl-metadata-key.c
@@ -39,6 +39,7 @@ GrlKeyID GRL_METADATA_KEY_MIME = NULL;
GrlKeyID GRL_METADATA_KEY_SITE = NULL;
GrlKeyID GRL_METADATA_KEY_SOURCE = NULL;
GrlKeyID GRL_METADATA_KEY_THUMBNAIL = NULL;
+GrlKeyID GRL_METADATA_KEY_THUMBNAIL_BINARY = NULL;
GrlKeyID GRL_METADATA_KEY_TITLE = NULL;
GrlKeyID GRL_METADATA_KEY_URL = NULL;
@@ -167,6 +168,16 @@ grl_metadata_key_setup_system_keys (GrlPluginRegistry *registry)
NULL,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
NULL);
+
+ GRL_METADATA_KEY_THUMBNAIL_BINARY =
+ grl_plugin_registry_register_metadata_key (registry,
+ g_param_spec_boxed ("thumbnail-binary",
+ "Thumbnail Binary",
+ "Thumbnail binary image",
+ G_TYPE_BYTE_ARRAY,
+ G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+
+ NULL);
GRL_METADATA_KEY_TITLE =
grl_plugin_registry_register_metadata_key (registry,
g_param_spec_string ("title",
diff --git a/src/grl-metadata-key.h b/src/grl-metadata-key.h
index f0521e8..f4f1c11 100644
--- a/src/grl-metadata-key.h
+++ b/src/grl-metadata-key.h
@@ -69,6 +69,7 @@ extern GrlKeyID GRL_METADATA_KEY_SITE;
extern GrlKeyID GRL_METADATA_KEY_SOURCE;
extern GrlKeyID GRL_METADATA_KEY_STUDIO;
extern GrlKeyID GRL_METADATA_KEY_THUMBNAIL;
+extern GrlKeyID GRL_METADATA_KEY_THUMBNAIL_BINARY;
extern GrlKeyID GRL_METADATA_KEY_TITLE;
extern GrlKeyID GRL_METADATA_KEY_URL;
extern GrlKeyID GRL_METADATA_KEY_WIDTH;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]