I was hoping to have this patch finished today and beg for an upload prior to
the freeze, but 3-5 is not a straightforward substitution â¹
Attached are two patches: a straightforward substitution and the beginnings of
fixing up the bits that need fixing. I still hope to have this ready for
squeeze.
(don't mind the NMU stuff in these patches, that's just from my working copy)
Description: Use libmusicbrainz5 instead of 3
Author: Jon Dowland <[email protected]>
--- a/configure.in (revision 2279)
+++ b/configure.in (working copy)
@@ -224,13 +224,13 @@
AC_SUBST(GPOD_CFLAGS)
AC_SUBST(GPOD_LIBS)
-AC_ARG_WITH([libmusicbrainz3],
- [AS_HELP_STRING([--with-libmusicbrainz3],
- [Add support for libmusicbrainz3])],
+AC_ARG_WITH([libmusicbrainz5],
+ [AS_HELP_STRING([--with-libmusicbrainz5],
+ [Add support for libmusicbrainz5])],
[],
- [with_libmusicbrainz3=check])
-AS_IF([test "x$with_libmusicbrainz3" != xno],
- [PKG_CHECK_MODULES(MUSICBRAINZ,[libmusicbrainz3 libcurl],[MUSICBRAINZ_DEFINES="-DHAVE_MUSICBRAINZ" AC_DEFINE([MUSICBRAINZ_ENABLED],[1],[Define to 1 if you have musicbrainz3 support])],AC_MSG_NOTICE([Compiling without libmusicbrainz3 support]))
+ [with_libmusicbrainz5=check])
+AS_IF([test "x$with_libmusicbrainz5" != xno],
+ [PKG_CHECK_MODULES(MUSICBRAINZ,[libmusicbrainz5 libcurl],[MUSICBRAINZ_DEFINES="-DHAVE_MUSICBRAINZ" AC_DEFINE([MUSICBRAINZ_ENABLED],[1],[Define to 1 if you have musicbrainz5 support])],AC_MSG_NOTICE([Compiling without libmusicbrainz5 support]))
AC_SUBST(MUSICBRAINZ_DEFINES)
AC_SUBST(MUSICBRAINZ_CFLAGS)
AC_SUBST(MUSICBRAINZ_LIBS)
--- a/src/support.c (revision 2279)
+++ b/src/support.c (working copy)
@@ -2375,12 +2375,12 @@
gchar *get_cover_art_url(gchar * artist, gchar * title, gchar * album)
{
int i;
- MbWebService mb;
- MbQuery query;
- MbReleaseFilter release_filter;
- MbResultList results;
- MbRelease release;
- MbReleaseIncludes includes;
+ Mb5WebService mb;
+ Mb5Query query;
+ Mb5ReleaseFilter release_filter;
+ Mb5ResultList results;
+ Mb5Release release;
+ Mb5ReleaseIncludes includes;
char id[1024];
char asin[1024];
@@ -2393,41 +2393,41 @@
if (album == NULL && artist == NULL)
return ret;
- mb = mb_webservice_new();
+ mb = mb5_webservice_new();
- query = mb_query_new(mb, "gnome-mplayer");
+ query = mb5_query_new(mb, "gnome-mplayer");
- release_filter = mb_release_filter_new();
+ release_filter = mb5_release_filter_new();
if (release_filter == NULL)
return ret;
if (artist != NULL && strlen(artist) > 0)
- release_filter = mb_release_filter_artist_name(release_filter, artist);
+ release_filter = mb5_release_filter_artist_name(release_filter, artist);
if (album != NULL && strlen(album) > 0)
- release_filter = mb_release_filter_title(release_filter, album);
+ release_filter = mb5_release_filter_title(release_filter, album);
- results = mb_query_get_releases(query, release_filter);
- mb_release_filter_free(release_filter);
+ results = mb5_query_get_releases(query, release_filter);
+ mb5_release_filter_free(release_filter);
if (results != NULL) {
- //printf("items found: %i\n", mb_result_list_get_size(results));
+ //printf("items found: %i\n", mb5_result_list_get_size(results));
highest_score = -1;
- for (i = 0; i < mb_result_list_get_size(results); i++) {
- score = mb_result_list_get_score(results, i);
- release = mb_result_list_get_release(results, i);
+ for (i = 0; i < mb5_result_list_get_size(results); i++) {
+ score = mb5_result_list_get_score(results, i);
+ release = mb5_result_list_get_release(results, i);
if (release != NULL) {
- mb_release_get_id(release, id, 1024);
- mb_release_free(release);
- includes = mb_release_includes_new();
+ mb5_release_get_id(release, id, 1024);
+ mb5_release_free(release);
+ includes = mb5_release_includes_new();
if (includes != NULL) {
- includes = mb_track_includes_url_relations(includes);
- release = mb_query_get_release_by_id(query, id, includes);
- mb_release_includes_free(includes);
+ includes = mb5_track_includes_url_relations(includes);
+ release = mb5_query_get_release_by_id(query, id, includes);
+ mb5_release_includes_free(includes);
}
}
if (release != NULL) {
- mb_release_get_asin(release, asin, 1024);
- mb_release_free(release);
+ mb5_release_get_asin(release, asin, 1024);
+ mb5_release_free(release);
if (strlen(asin) > 0) {
//printf("asin = %s score = %i\n",asin,score);
if (score > highest_score) {
@@ -2441,11 +2441,11 @@
if (score == 100 && ret != NULL)
break;
}
- mb_result_list_free(results);
+ mb5_result_list_free(results);
}
- mb_query_free(query);
- mb_webservice_free(mb);
+ mb5_query_free(query);
+ mb5_webservice_free(mb);
return ret;
}
--- a/src/support.h (revision 2279)
+++ b/src/support.h (working copy)
@@ -47,7 +47,7 @@
#endif
#ifdef HAVE_MUSICBRAINZ
-#include <musicbrainz3/mb_c.h>
+#include <musicbrainz5/mb5_c.h>
#include <curl/curl.h>
#endif
--- gnome-mplayer-1.0.6.orig/src/support.c
+++ gnome-mplayer-1.0.6/src/support.c
@@ -2330,7 +2330,6 @@ gboolean gpod_load_tracks(gchar * mount_
gchar *get_cover_art_url(gchar * artist, gchar * title, gchar * album)
{
int i;
- Mb5WebService mb;
Mb5Query query;
Mb5ReleaseFilter release_filter;
Mb5ResultList results;
@@ -2342,26 +2341,34 @@ gchar *get_cover_art_url(gchar * artist,
gchar *ret = NULL;
gint score, highest_score;
+ param_names = g_new (gchar*, 3);
+ param_values = g_new (gchar*, 3);
+
if (disable_cover_art_fetch)
return ret;
if (album == NULL && artist == NULL)
return ret;
- mb = mb5_webservice_new();
+ query = mb5_query_new(mb, "gnome-mplayer", 0);
- query = mb5_query_new(mb, "gnome-mplayer");
+ param_names[0] = g_strdup ("query");
+ if (artist != NULL && strlen(artist) > 0) {
+ if (album != NULL && strlen(album) > 0) {
+ param_values[0] = g_strdup_printf ("artist:\"%s\" AND
release:\"%s\"", artist, album);
+ } else {
+ param_values[0] = g_strdup_printf ("artist:\"%s\"", artist);
+ }
+ } else if (album != NULL && strlen(album) > 0) {
+ param_values[0] = g_strdup_printf ("release:\"%s\"", album);
+ }
- release_filter = mb5_release_filter_new();
- if (release_filter == NULL)
- return ret;
- if (artist != NULL && strlen(artist) > 0)
- release_filter = mb5_release_filter_artist_name(release_filter,
artist);
- if (album != NULL && strlen(album) > 0)
- release_filter = mb5_release_filter_title(release_filter, album);
+ param_names[1] = g_strdup ("limit");
+ param_values[1] = g_strdup ("1"); // XXX: probably want more than that
+ param_names[2] = NULL;
+ param_values[2] = NULL;
- results = mb5_query_get_releases(query, release_filter);
- mb5_release_filter_free(release_filter);
+ results = mb5_query_query(query, "release", "", "", 2, param_names,
param_values);
if (results != NULL) {
//printf("items found: %i\n", mb5_result_list_get_size(results));
@@ -2401,6 +2408,8 @@ gchar *get_cover_art_url(gchar * artist,
mb5_query_free(query);
mb5_webservice_free(mb);
+ g_strfreev (param_names);
+ g_strfreev (param_values);
return ret;
}
_______________________________________________
pkg-multimedia-maintainers mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers