tags 677235 + patch thanks On 12.06.2012 16:14, Jon Dowland wrote: > Source: gnome-sushi > Version: 0.4.1-2 > Severity: normal > > Upstream's latest release has transitioned to version 4, version 5 > is nearly identical to 4 (a few 'sed' commands away). I think > Michael Biebl backported the patch, I just need to dig it out and > test it.
Attached. -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
diff --git a/configure.ac b/configure.ac
index 7dbb5a2..f7ef732 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,7 +69,7 @@ PKG_CHECK_MODULES(SUSHI,
gstreamer-0.10
gstreamer-pbutils-0.10
gstreamer-tag-0.10
- libmusicbrainz3
+ libmusicbrainz5
evince-document-3.0
evince-view-3.0
gtksourceview-3.0
diff --git a/src/libsushi/sushi-cover-art.c b/src/libsushi/sushi-cover-art.c
index 73e5696..5869ae1 100644
--- a/src/libsushi/sushi-cover-art.c
+++ b/src/libsushi/sushi-cover-art.c
@@ -27,7 +27,7 @@
#include "sushi-cover-art.h"
-#include <musicbrainz3/mb_c.h>
+#include <musicbrainz5/mb5_c.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
G_DEFINE_TYPE (SushiCoverArtFetcher, sushi_cover_art_fetcher, G_TYPE_OBJECT);
@@ -212,43 +212,51 @@ fetch_uri_job (GIOSchedulerJob *sched_job,
gpointer user_data)
{
FetchUriJob *job = user_data;
- MbQuery query;
- MbReleaseFilter filter;
- MbRelease release;
- MbResultList results;
- gint results_len = 0, idx;
+ Mb5Metadata metadata;
+ Mb5Query query;
+ Mb5Release release;
+ Mb5ReleaseList release_list;
gchar *retval = NULL;
+ gchar **param_names = NULL;
+ gchar **param_values = NULL;
- query = mb_query_new (NULL, NULL);
+ query = mb5_query_new ("sushi", NULL, 0);
- filter = mb_release_filter_new ();
- filter = mb_release_filter_title (filter, job->album);
- filter = mb_release_filter_artist_name (filter, job->artist);
+ param_names = g_new (gchar*, 3);
+ param_values = g_new (gchar*, 3);
- results = mb_query_get_releases (query, filter);
- mb_query_free (query);
- mb_release_filter_free (filter);
+ param_names[0] = g_strdup ("query");
+ param_values[0] = g_strdup_printf ("artist:\"%s\" AND release:\"%s\"", job->artist, job->album);
- if (results)
- results_len = mb_result_list_get_size (results);
+ param_names[1] = g_strdup ("limit");
+ param_values[1] = g_strdup ("1");
- for (idx = 0; idx < results_len; idx++) {
- gchar asin[255];
+ param_names[2] = NULL;
+ param_values[2] = NULL;
- release = mb_result_list_get_release (results, idx);
- mb_release_get_asin (release, asin, 255);
+ metadata = mb5_query_query (query, "release", "", "",
+ 2, param_names, param_values);
- mb_release_free (release);
+ mb5_query_delete (query);
- if (asin != NULL &&
+ if (metadata) {
+ release_list = mb5_metadata_get_releaselist (metadata);
+ int i;
+ int release_list_length = mb5_release_list_size (release_list);
+ for (i = 0; i < release_list_length; i++) {
+ gchar asin[255];
+
+ release = mb5_release_list_item (release_list, i);
+ mb5_release_get_asin (release, asin, 255);
+
+ if (asin != NULL &&
asin[0] != '\0') {
- retval = g_strdup (asin);
- break;
+ retval = g_strdup (asin);
+ break;
+ }
}
}
-
- if (results)
- mb_result_list_free (results);
+ mb5_metadata_delete (metadata);
if (retval == NULL) {
/* FIXME: do we need a better error? */
@@ -264,7 +272,8 @@ fetch_uri_job (GIOSchedulerJob *sched_job,
g_io_scheduler_job_send_to_mainloop_async (sched_job,
fetch_uri_job_callback,
job, NULL);
-
+ g_strfreev (param_names);
+ g_strfreev (param_values);
return FALSE;
}
signature.asc
Description: OpenPGP digital signature

