[grilo-plugins] all: resolve() is a cancellable operation
- From: Juan A. Suarez Romero <jasuarez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo-plugins] all: resolve() is a cancellable operation
- Date: Wed, 13 Apr 2011 10:20:19 +0000 (UTC)
commit ac6e31354f90040ba29eec6ecf37dc5a98270ddd
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date: Wed Apr 6 06:44:20 2011 +0000
all: resolve() is a cancellable operation
As such, the callback needs to send the operation ID.
Signed-off-by: Juan A. Suarez Romero <jasuarez igalia com>
src/media/tracker/grl-tracker-metadata.c | 6 +++---
src/metadata/gravatar/grl-gravatar.c | 2 +-
src/metadata/lastfm-albumart/grl-lastfm-albumart.c | 8 ++++----
src/metadata/local-metadata/grl-local-metadata.c | 12 ++++++------
src/metadata/metadata-store/grl-metadata-store.c | 6 +++---
test/main.c | 1 +
6 files changed, 18 insertions(+), 17 deletions(-)
---
diff --git a/src/media/tracker/grl-tracker-metadata.c b/src/media/tracker/grl-tracker-metadata.c
index 0ba6a33..dc22759 100644
--- a/src/media/tracker/grl-tracker-metadata.c
+++ b/src/media/tracker/grl-tracker-metadata.c
@@ -267,7 +267,7 @@ tracker_resolve_cb (GObject *source_object,
"Failed to start resolve action : %s",
tracker_error->message);
- rs->callback (rs->source, rs->media, rs->user_data, error);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, error);
g_error_free (tracker_error);
g_error_free (error);
@@ -282,9 +282,9 @@ tracker_resolve_cb (GObject *source_object,
fill_grilo_media_from_sparql (rs->media, cursor, col);
}
- rs->callback (rs->source, rs->media, rs->user_data, NULL);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, NULL);
} else {
- rs->callback (rs->source, rs->media, rs->user_data, NULL);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, NULL);
}
end_operation:
diff --git a/src/metadata/gravatar/grl-gravatar.c b/src/metadata/gravatar/grl-gravatar.c
index 93886d7..35e6885 100644
--- a/src/metadata/gravatar/grl-gravatar.c
+++ b/src/metadata/gravatar/grl-gravatar.c
@@ -316,5 +316,5 @@ grl_gravatar_source_resolve (GrlMetadataSource *source,
set_avatar (GRL_DATA (rs->media), GRL_METADATA_KEY_AUTHOR);
}
- rs->callback (source, rs->media, rs->user_data, NULL);
+ rs->callback (source, rs->resolve_id, rs->media, rs->user_data, NULL);
}
diff --git a/src/metadata/lastfm-albumart/grl-lastfm-albumart.c b/src/metadata/lastfm-albumart/grl-lastfm-albumart.c
index e0ff168..908849f 100644
--- a/src/metadata/lastfm-albumart/grl-lastfm-albumart.c
+++ b/src/metadata/lastfm-albumart/grl-lastfm-albumart.c
@@ -207,7 +207,7 @@ read_done_cb (GObject *source_object,
GRL_CORE_ERROR_RESOLVE_FAILED,
"Failed to connect to Last.FM: '%s'",
wc_error->message);
- rs->callback (rs->source, rs->media, rs->user_data, error);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, error);
g_error_free (wc_error);
g_error_free (error);
@@ -254,7 +254,7 @@ read_done_cb (GObject *source_object,
g_free (image);
}
- rs->callback (rs->source, rs->media, rs->user_data, NULL);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, NULL);
}
static void
@@ -343,7 +343,7 @@ grl_lastfm_albumart_source_resolve (GrlMetadataSource *source,
if (iter == NULL) {
GRL_DEBUG ("No supported key was requested");
- rs->callback (source, rs->media, rs->user_data, NULL);
+ rs->callback (source, rs->resolve_id, rs->media, rs->user_data, NULL);
} else {
artist = grl_data_get_string (GRL_DATA (rs->media),
GRL_METADATA_KEY_ARTIST);
@@ -353,7 +353,7 @@ grl_lastfm_albumart_source_resolve (GrlMetadataSource *source,
if (!artist || !album) {
GRL_DEBUG ("Missing dependencies");
- rs->callback (source, rs->media, rs->user_data, NULL);
+ rs->callback (source, rs->resolve_id, rs->media, rs->user_data, NULL);
} else {
esc_artist = g_uri_escape_string (artist, NULL, TRUE);
esc_album = g_uri_escape_string (album, NULL, TRUE);
diff --git a/src/metadata/local-metadata/grl-local-metadata.c b/src/metadata/local-metadata/grl-local-metadata.c
index 4c3e892..57f4549 100644
--- a/src/metadata/local-metadata/grl-local-metadata.c
+++ b/src/metadata/local-metadata/grl-local-metadata.c
@@ -438,11 +438,11 @@ got_file_info (GFile *file, GAsyncResult *result,
grl_media_set_thumbnail (rs->media, thumbnail_uri);
g_free (thumbnail_uri);
- rs->callback (rs->source, rs->media, rs->user_data, NULL);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, NULL);
} else {
GRL_INFO ("Could not find thumbnail for media: %s",
grl_media_get_url (rs->media));
- rs->callback (rs->source, rs->media, rs->user_data, NULL);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, NULL);
}
goto exit;
@@ -451,7 +451,7 @@ error:
{
GError *new_error = g_error_new (GRL_CORE_ERROR, GRL_CORE_ERROR_RESOLVE_FAILED,
"Got error: %s", error->message);
- rs->callback (rs->source, rs->media, rs->user_data, new_error);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, new_error);
g_error_free (error);
g_error_free (new_error);
@@ -566,7 +566,7 @@ resolve_album_art (GrlMetadataSourceResolveSpec *rs, resolution_flags_t flags)
GError *error;
error = g_error_new (GRL_CORE_ERROR, GRL_CORE_ERROR_RESOLVE_FAILED,
"Thumbnail resolution for GrlMediaAudio not implemented in local-metadata");
- rs->callback (rs->source, rs->media, rs->user_data, error);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, error);
g_error_free (error);
}
@@ -692,7 +692,7 @@ grl_local_metadata_source_resolve (GrlMetadataSource *source,
if (error) {
/* No can do! */
- rs->callback (source, rs->media, rs->user_data, error);
+ rs->callback (source, rs->resolve_id, rs->media, rs->user_data, error);
g_error_free (error);
return;
}
@@ -709,7 +709,7 @@ grl_local_metadata_source_resolve (GrlMetadataSource *source,
resolve_album_art (rs, flags);
} else {
/* What's that media type? */
- rs->callback (source, rs->media, rs->user_data, NULL);
+ rs->callback (source, rs->resolve_id, rs->media, rs->user_data, NULL);
}
}
diff --git a/src/metadata/metadata-store/grl-metadata-store.c b/src/metadata/metadata-store/grl-metadata-store.c
index 2760db1..50aaf8a 100644
--- a/src/metadata/metadata-store/grl-metadata-store.c
+++ b/src/metadata/metadata-store/grl-metadata-store.c
@@ -594,7 +594,7 @@ grl_metadata_store_source_resolve (GrlMetadataSource *source,
error = g_error_new (GRL_CORE_ERROR,
GRL_CORE_ERROR_RESOLVE_FAILED,
"source-id not available, cannot resolve metadata.");
- rs->callback (rs->source, rs->media, rs->user_data, error);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, error);
g_error_free (error);
return;
}
@@ -608,13 +608,13 @@ grl_metadata_store_source_resolve (GrlMetadataSource *source,
source_id, media_id);
if (stmt) {
fill_metadata (rs->media, rs->keys, stmt);
- rs->callback (rs->source, rs->media, rs->user_data, NULL);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, NULL);
} else {
GRL_WARNING ("Failed to resolve metadata");
error = g_error_new (GRL_CORE_ERROR,
GRL_CORE_ERROR_RESOLVE_FAILED,
"Failed to resolve metadata.");
- rs->callback (rs->source, rs->media, rs->user_data, error);
+ rs->callback (rs->source, rs->resolve_id, rs->media, rs->user_data, error);
g_error_free (error);
}
}
diff --git a/test/main.c b/test/main.c
index 7a75d7c..afe28e1 100644
--- a/test/main.c
+++ b/test/main.c
@@ -166,6 +166,7 @@ metadata_cb (GrlMediaSource *source,
static void
resolve_cb (GrlMetadataSource *source,
+ guint resolve_id,
GrlMedia *media,
gpointer user_data,
const GError *error)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]