[sound-juicer] Use musicbrainz5, drop earlier versions



commit b5e6c0bc35bcff70f6a3a538fdfb2a35e315c935
Author: Jon Dowland <jmtd debian org>
Date:   Fri Jun 1 12:33:07 2012 +0100

    Use musicbrainz5, drop earlier versions
    
    Update sound-juicer to use version 5 of musicbrainz.  This is
    mostly a straight substitution (MUSICBRAINZ4âMUSICBRAINZ5,
    Mb4âMb5, and so on).
    routines:
    
    Drop conditional support for version 3 of the API, leaving 5
    only.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=676749

 configure.in                                       |   33 +-
 libjuicer/Makefile.am                              |   18 +-
 libjuicer/sj-metadata-getter.c                     |   24 +-
 libjuicer/sj-metadata-musicbrainz3.c               |  460 --------------------
 libjuicer/sj-metadata-musicbrainz3.h               |   56 ---
 libjuicer/sj-metadata-musicbrainz4.h               |   56 ---
 ...a-musicbrainz4.c => sj-metadata-musicbrainz5.c} |  296 +++++++-------
 libjuicer/sj-metadata-musicbrainz5.h               |   56 +++
 8 files changed, 222 insertions(+), 777 deletions(-)
---
diff --git a/configure.in b/configure.in
index 0691406..2b42787 100644
--- a/configure.in
+++ b/configure.in
@@ -70,32 +70,15 @@ AM_GST_ELEMENT_CHECK(flacenc,,AC_MSG_WARN([The 'flacenc' element was not found.
 AM_GST_ELEMENT_CHECK(wavenc,,AC_MSG_WARN([The 'wavenc' element was not found. This will cause encoding to Wave to fail.]))
 AM_GST_ELEMENT_CHECK(giosink,,AC_MSG_WARN([The 'giosink' element was not found. This will cause Sound Juicer to fail at runtime.]))
 
-# Find optional MusicBrainz4
-PKG_CHECK_MODULES(MUSICBRAINZ4, libmusicbrainz4 >= 4.0.3 libdiscid, [have_mb4=yes], [have_mb4=no])
-AC_SUBST(MUSICBRAINZ4_CFLAGS)
-AC_SUBST(MUSICBRAINZ4_LIBS)
-if test "$have_mb4" = "yes" ; then
-        AC_DEFINE([HAVE_MUSICBRAINZ4], 1, [Whether libmusicbrainz4 is available])
+# MusicBrainz5
+PKG_CHECK_MODULES(MUSICBRAINZ5, libmusicbrainz5 >= 5.0.1 libdiscid, [have_mb5=yes], [have_mb5=no])
+AC_SUBST(MUSICBRAINZ5_CFLAGS)
+AC_SUBST(MUSICBRAINZ5_LIBS)
+if test "$have_mb5" = "yes" ; then
+        AC_DEFINE([HAVE_MUSICBRAINZ5], 1, [Whether libmusicbrainz5 is available])
+else
+        AC_MSG_ERROR([libmusicbrainz5 needs to be available for sound-juicer to build])
 fi
-AM_CONDITIONAL([HAVE_MUSICBRAINZ4], [test "$have_mb4" = "yes"])
-
-# MusicBrainz3 fallback
-if test "$have_mb4" != "yes" ; then
-        PKG_CHECK_MODULES(MUSICBRAINZ3, libmusicbrainz3 >= 3.0.2, [have_mb3=yes], [have_mb3=no])
-        AC_SUBST(MUSICBRAINZ3_CFLAGS)
-        AC_SUBST(MUSICBRAINZ3_LIBS)
-        if test "$have_mb3" = "yes" ; then
-                AC_DEFINE([HAVE_MUSICBRAINZ3], 1, [Whether libmusicbrainz3 is available])
-        else
-                AC_MSG_ERROR([libmusicbrainz4 or libmusicbrainz3 need to be available for sound-juicer to build])
-        fi
-
-        oldlibs=$LIBS
-        LIBS="$LIBS $MUSICBRAINZ3_LIBS"
-        AC_CHECK_FUNCS(mb_extract_uuid)
-        LIBS="$oldlibs"
-fi
-AM_CONDITIONAL([HAVE_MUSICBRAINZ3], [test "$have_mb3" = "yes"])
 
 # Find gio for the metadata extractor
 PKG_CHECK_MODULES(GIO, gio-2.0)
diff --git a/libjuicer/Makefile.am b/libjuicer/Makefile.am
index fc6e834..69f7186 100644
--- a/libjuicer/Makefile.am
+++ b/libjuicer/Makefile.am
@@ -40,21 +40,11 @@ libjuicer_la_LDFLAGS = \
 	-export-dynamic \
 	$(AM_LDFLAGS)
 
-if HAVE_MUSICBRAINZ3
 libjuicer_la_SOURCES += \
-	sj-metadata-musicbrainz3.h \
-	sj-metadata-musicbrainz3.c
-libjuicer_la_LIBADD += $(MUSICBRAINZ3_LIBS)
-libjuicer_la_CFLAGS += $(MUSICBRAINZ3_CFLAGS)
-endif
-
-if HAVE_MUSICBRAINZ4
-libjuicer_la_SOURCES += \
-	sj-metadata-musicbrainz4.h \
-	sj-metadata-musicbrainz4.c
-libjuicer_la_LIBADD += $(MUSICBRAINZ4_LIBS)
-libjuicer_la_CFLAGS += $(MUSICBRAINZ4_CFLAGS)
-endif
+	sj-metadata-musicbrainz5.h \
+	sj-metadata-musicbrainz5.c
+libjuicer_la_LIBADD += $(MUSICBRAINZ5_LIBS)
+libjuicer_la_CFLAGS += $(MUSICBRAINZ5_CFLAGS)
 
 
 #
diff --git a/libjuicer/sj-metadata-getter.c b/libjuicer/sj-metadata-getter.c
index cc08a2b..6037b22 100644
--- a/libjuicer/sj-metadata-getter.c
+++ b/libjuicer/sj-metadata-getter.c
@@ -26,15 +26,9 @@
 #include "sj-metadata-getter.h"
 #include "sj-metadata-marshal.h"
 #include "sj-metadata.h"
-#ifdef HAVE_MUSICBRAINZ4
-#include "sj-metadata-musicbrainz4.h"
-#endif /* HAVE_MUSICBRAINZ4 */
-#ifdef HAVE_MUSICBRAINZ3
-#include "sj-metadata-musicbrainz3.h"
-#endif /* HAVE_MUSICBRAINZ3 */
-#ifdef HAVE_MUSICBRAINZ
-#include "sj-metadata-musicbrainz.h"
-#endif /* HAVE_MUSICBRAINZ */
+#ifdef HAVE_MUSICBRAINZ5
+#include "sj-metadata-musicbrainz5.h"
+#endif /* HAVE_MUSICBRAINZ5 */
 #include "sj-metadata-gvfs.h"
 #include "sj-error.h"
 
@@ -178,15 +172,9 @@ lookup_cd (SjMetadataGetter *mdg)
   GError *error = NULL;
   gboolean found = FALSE;
   GType types[] = {
-#ifdef HAVE_MUSICBRAINZ4
-    SJ_TYPE_METADATA_MUSICBRAINZ4,
-#endif /* HAVE_MUSICBRAINZ4 */
-#ifdef HAVE_MUSICBRAINZ3
-    SJ_TYPE_METADATA_MUSICBRAINZ3,
-#endif /* HAVE_MUSICBRAINZ3 */
-#ifdef HAVE_MUSICBRAINZ
-    SJ_TYPE_METADATA_MUSICBRAINZ,
-#endif /* HAVE_MUSICBRAINZ */
+#ifdef HAVE_MUSICBRAINZ5
+    SJ_TYPE_METADATA_MUSICBRAINZ5,
+#endif /* HAVE_MUSICBRAINZ5 */
     SJ_TYPE_METADATA_GVFS
   };
 
diff --git a/libjuicer/sj-metadata-musicbrainz4.c b/libjuicer/sj-metadata-musicbrainz5.c
similarity index 66%
rename from libjuicer/sj-metadata-musicbrainz4.c
rename to libjuicer/sj-metadata-musicbrainz5.c
index 0a97657..cad2141 100644
--- a/libjuicer/sj-metadata-musicbrainz4.c
+++ b/libjuicer/sj-metadata-musicbrainz5.c
@@ -1,5 +1,5 @@
 /*
- * sj-metadata-musicbrainz4.c
+ * sj-metadata-musicbrainz5.c
  * Copyright (C) 2008 Ross Burton <ross burtonini com>
  * Copyright (C) 2008 Bastien Nocera <hadess hadess net>
  * Copyright (C) 2011 Christophe Fergeau <cfergeau redhat com>
@@ -30,9 +30,9 @@
 #include <glib-object.h>
 #include <gconf/gconf-client.h>
 #include <discid/discid.h>
-#include <musicbrainz4/mb4_c.h>
+#include <musicbrainz5/mb5_c.h>
 
-#include "sj-metadata-musicbrainz4.h"
+#include "sj-metadata-musicbrainz5.h"
 #include "sj-structures.h"
 #include "sj-error.h"
 
@@ -56,16 +56,16 @@
 #define SJ_MUSICBRAINZ_USER_AGENT "libjuicer-"VERSION
 
 typedef struct {
-  Mb4Query mb;
+  Mb5Query mb;
   DiscId *disc;
   char *cdrom;
   /* Proxy */
   char *http_proxy;
   int http_proxy_port;
-} SjMetadataMusicbrainz4Private;
+} SjMetadataMusicbrainz5Private;
 
 #define GET_PRIVATE(o)  \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((o), SJ_TYPE_METADATA_MUSICBRAINZ4, SjMetadataMusicbrainz4Private))
+  (G_TYPE_INSTANCE_GET_PRIVATE ((o), SJ_TYPE_METADATA_MUSICBRAINZ5, SjMetadataMusicbrainz5Private))
 
 enum {
   PROP_0,
@@ -77,8 +77,8 @@ enum {
 
 static void metadata_interface_init (gpointer g_iface, gpointer iface_data);
 
-G_DEFINE_TYPE_WITH_CODE (SjMetadataMusicbrainz4,
-                         sj_metadata_musicbrainz4,
+G_DEFINE_TYPE_WITH_CODE (SjMetadataMusicbrainz5,
+                         sj_metadata_musicbrainz5,
                          G_TYPE_OBJECT,
                          G_IMPLEMENT_INTERFACE (SJ_TYPE_METADATA,
                                                 metadata_interface_init));
@@ -89,7 +89,7 @@ G_DEFINE_TYPE_WITH_CODE (SjMetadataMusicbrainz4,
  */
 #ifdef DUMP_DETAILS
 static void
-sj_mb4_album_details_dump (AlbumDetails *details)
+sj_mb5_album_details_dump (AlbumDetails *details)
 {
   if (details->country)
     g_print ("Country: %s\n", details->country);
@@ -99,13 +99,13 @@ sj_mb4_album_details_dump (AlbumDetails *details)
     g_print ("Lyrics URL: %s\n", details->lyrics_url);
 }
 #else
-#define sj_mb4_album_details_dump(...)
+#define sj_mb5_album_details_dump(...)
 #endif
 
 static GList *
-get_artist_list (Mb4ArtistCredit credit)
+get_artist_list (Mb5ArtistCredit credit)
 {
-  Mb4NameCreditList name_list;
+  Mb5NameCreditList name_list;
   GList *artists;
   unsigned int i;
   char buffer[512]; /* for the GET macro */
@@ -113,34 +113,34 @@ get_artist_list (Mb4ArtistCredit credit)
   if (credit == NULL)
     return NULL;
 
-  name_list = mb4_artistcredit_get_namecreditlist (credit);
+  name_list = mb5_artistcredit_get_namecreditlist (credit);
   if (name_list == NULL) {
     return NULL;
   }
 
   artists = NULL;
-  for (i = 0; i < mb4_namecredit_list_size (name_list); i++) {
-    Mb4NameCredit name_credit;
-    Mb4Artist artist;
+  for (i = 0; i < mb5_namecredit_list_size (name_list); i++) {
+    Mb5NameCredit name_credit;
+    Mb5Artist artist;
     ArtistDetails *details;
 
-    name_credit = mb4_namecredit_list_item (name_list, i);
+    name_credit = mb5_namecredit_list_item (name_list, i);
     details = g_new0 (ArtistDetails, 1);
-    GET (details->joinphrase, mb4_namecredit_get_joinphrase, name_credit);
+    GET (details->joinphrase, mb5_namecredit_get_joinphrase, name_credit);
     artists = g_list_prepend (artists, details);
-    artist = mb4_namecredit_get_artist (name_credit);
+    artist = mb5_namecredit_get_artist (name_credit);
     if (!artist) {
-      g_warning ("no Mb4Artist associated with Mb4NameCredit, falling back to Mb4NameCredit::name");
-      GET (details->name, mb4_namecredit_get_name, name_credit);
+      g_warning ("no Mb5Artist associated with Mb5NameCredit, falling back to Mb5NameCredit::name");
+      GET (details->name, mb5_namecredit_get_name, name_credit);
       continue;
     }
 
-    GET (details->id, mb4_artist_get_id, artist);
-    GET (details->name, mb4_artist_get_name, artist);
-    GET (details->sortname, mb4_artist_get_sortname, artist);
-    GET (details->disambiguation, mb4_artist_get_disambiguation, artist);
-    GET (details->gender, mb4_artist_get_gender, artist);
-    GET (details->country, mb4_artist_get_country, artist);
+    GET (details->id, mb5_artist_get_id, artist);
+    GET (details->name, mb5_artist_get_name, artist);
+    GET (details->sortname, mb5_artist_get_sortname, artist);
+    GET (details->disambiguation, mb5_artist_get_disambiguation, artist);
+    GET (details->gender, mb5_artist_get_gender, artist);
+    GET (details->country, mb5_artist_get_country, artist);
   }
 
   return g_list_reverse(artists);
@@ -220,9 +220,9 @@ fill_album_composer (AlbumDetails *album)
   }
 }
 
-typedef void (*RelationForeachFunc)(Mb4Relation relation, gpointer user_data);
+typedef void (*RelationForeachFunc)(Mb5Relation relation, gpointer user_data);
 
-static void relationlist_list_foreach_relation(Mb4RelationListList relation_lists,
+static void relationlist_list_foreach_relation(Mb5RelationListList relation_lists,
                                                const char *targettype,
                                                const char *relation_type,
                                                RelationForeachFunc callback,
@@ -233,27 +233,27 @@ static void relationlist_list_foreach_relation(Mb4RelationListList relation_list
   if (relation_lists == NULL)
     return;
 
-  for (j = 0; j < mb4_relationlist_list_size (relation_lists); j++) {
-    Mb4RelationList relations;
+  for (j = 0; j < mb5_relationlist_list_size (relation_lists); j++) {
+    Mb5RelationList relations;
     char type[512]; /* To hold relationlist target-type and relation type */
     unsigned int i;
 
-    relations = mb4_relationlist_list_item (relation_lists, j);
+    relations = mb5_relationlist_list_item (relation_lists, j);
     if (relations == NULL)
       return;
 
-    mb4_relation_list_get_targettype (relations, type, sizeof (type));
+    mb5_relation_list_get_targettype (relations, type, sizeof (type));
     if (!g_str_equal (type, targettype))
       continue;
 
-    for (i = 0; i < mb4_relation_list_size (relations); i++) {
-      Mb4Relation relation;
+    for (i = 0; i < mb5_relation_list_size (relations); i++) {
+      Mb5Relation relation;
 
-      relation = mb4_relation_list_item (relations, i);
+      relation = mb5_relation_list_item (relations, i);
       if (relation == NULL)
         continue;
 
-      mb4_relation_get_type (relation, type, sizeof (type));
+      mb5_relation_get_type (relation, type, sizeof (type));
       if (!g_str_equal (type, relation_type))
         continue;
 
@@ -262,66 +262,66 @@ static void relationlist_list_foreach_relation(Mb4RelationListList relation_list
   }
 }
 
-static void composer_cb (Mb4Relation relation, gpointer user_data)
+static void composer_cb (Mb5Relation relation, gpointer user_data)
 {
-      Mb4Artist composer;
+      Mb5Artist composer;
       TrackDetails *track = (TrackDetails *)user_data;
       char buffer[512]; /* for the GET() macro */
 
-      composer = mb4_relation_get_artist (relation);
+      composer = mb5_relation_get_artist (relation);
       if (composer == NULL)
         return;
 
-      GET (track->composer, mb4_artist_get_name, composer);
-      GET (track->composer_sortname, mb4_artist_get_sortname, composer);
+      GET (track->composer, mb5_artist_get_name, composer);
+      GET (track->composer_sortname, mb5_artist_get_sortname, composer);
 }
 
-static void work_cb (Mb4Relation relation, gpointer user_data)
+static void work_cb (Mb5Relation relation, gpointer user_data)
 {
-    Mb4RelationListList relation_lists;
-    Mb4Work work;
+    Mb5RelationListList relation_lists;
+    Mb5Work work;
 
-    work = mb4_relation_get_work (relation);
+    work = mb5_relation_get_work (relation);
     if (work == NULL)
         return;
-    relation_lists = mb4_work_get_relationlistlist (work);
+    relation_lists = mb5_work_get_relationlistlist (work);
     relationlist_list_foreach_relation (relation_lists, "artist", "composer",
                                         composer_cb, user_data);
 }
 
 static void
-fill_recording_relations (Mb4Recording recording, TrackDetails *track)
+fill_recording_relations (Mb5Recording recording, TrackDetails *track)
 {
-  Mb4RelationListList relation_lists;
+  Mb5RelationListList relation_lists;
 
-  relation_lists = mb4_recording_get_relationlistlist (recording);
+  relation_lists = mb5_recording_get_relationlistlist (recording);
   relationlist_list_foreach_relation(relation_lists, "work", "performance",
                                      work_cb, track);
 }
 
 static void
-fill_tracks_from_medium (Mb4Medium medium, AlbumDetails *album)
+fill_tracks_from_medium (Mb5Medium medium, AlbumDetails *album)
 {
-  Mb4TrackList track_list;
+  Mb5TrackList track_list;
   GList *tracks;
   unsigned int i;
   char buffer[512]; /* for the GET() macro */
 
-  track_list = mb4_medium_get_tracklist (medium);
+  track_list = mb5_medium_get_tracklist (medium);
   if (!track_list)
     return;
 
-  album->number = mb4_track_list_size (track_list);
+  album->number = mb5_track_list_size (track_list);
 
   tracks = NULL;
 
-  for (i = 0; i < mb4_track_list_size (track_list); i++) {
-    Mb4Track mbt;
-    Mb4ArtistCredit credit;
-    Mb4Recording recording;
+  for (i = 0; i < mb5_track_list_size (track_list); i++) {
+    Mb5Track mbt;
+    Mb5ArtistCredit credit;
+    Mb5Recording recording;
     TrackDetails *track;
 
-    mbt = mb4_track_list_item (track_list, i);
+    mbt = mb5_track_list_item (track_list, i);
     if (!mbt)
       continue;
 
@@ -329,22 +329,22 @@ fill_tracks_from_medium (Mb4Medium medium, AlbumDetails *album)
 
     track->album = album;
 
-    track->number = mb4_track_get_position (mbt);
+    track->number = mb5_track_get_position (mbt);
 
     /* duration from track is more reliable than from recording */
-    track->duration = mb4_track_get_length (mbt) / 1000;
+    track->duration = mb5_track_get_length (mbt) / 1000;
 
-    recording = mb4_track_get_recording (mbt);
+    recording = mb5_track_get_recording (mbt);
     if (recording != NULL) {
-      GET (track->title, mb4_recording_get_title, recording);
-      GET (track->track_id, mb4_recording_get_id, recording);
+      GET (track->title, mb5_recording_get_title, recording);
+      GET (track->track_id, mb5_recording_get_id, recording);
       fill_recording_relations (recording, track);
       if (track->duration == 0)
-        track->duration = mb4_recording_get_length (recording) / 1000;
-      credit = mb4_recording_get_artistcredit (recording);
+        track->duration = mb5_recording_get_length (recording) / 1000;
+      credit = mb5_recording_get_artistcredit (recording);
     } else {
-      GET (track->title, mb4_track_get_title, mbt);
-      credit = mb4_track_get_artistcredit (mbt);
+      GET (track->title, mb5_track_get_title, mbt);
+      credit = mb5_track_get_artistcredit (mbt);
     }
 
     if (credit) {
@@ -369,39 +369,39 @@ fill_tracks_from_medium (Mb4Medium medium, AlbumDetails *album)
   album->tracks = g_list_reverse (tracks);
 }
 
-static void wikipedia_cb (Mb4Relation relation, gpointer user_data)
+static void wikipedia_cb (Mb5Relation relation, gpointer user_data)
 {
   AlbumDetails *album = (AlbumDetails *)user_data;
   char buffer[512]; /* for the GET() macro */
   char *wikipedia = NULL;
 
-  GET (wikipedia, mb4_relation_get_target, relation);
+  GET (wikipedia, mb5_relation_get_target, relation);
   if (wikipedia != NULL) {
     g_free (album->wikipedia);
     album->wikipedia = wikipedia;
   }
 }
 
-static void discogs_cb (Mb4Relation relation, gpointer user_data)
+static void discogs_cb (Mb5Relation relation, gpointer user_data)
 {
   AlbumDetails *album = (AlbumDetails *)user_data;
   char buffer[512]; /* for the GET() macro */
   char *discogs = NULL;
 
-  GET (discogs, mb4_relation_get_target, relation);
+  GET (discogs, mb5_relation_get_target, relation);
   if (discogs != NULL) {
     g_free (album->discogs);
     album->discogs = discogs;
   }
 }
 
-static void lyrics_cb (Mb4Relation relation, gpointer user_data)
+static void lyrics_cb (Mb5Relation relation, gpointer user_data)
 {
   AlbumDetails *album = (AlbumDetails *)user_data;
   char buffer[512]; /* for the GET() macro */
   char *lyrics = NULL;
 
-  GET (lyrics, mb4_relation_get_target, relation);
+  GET (lyrics, mb5_relation_get_target, relation);
   if (lyrics != NULL) {
     g_free (album->lyrics_url);
     album->lyrics_url = lyrics;
@@ -409,7 +409,7 @@ static void lyrics_cb (Mb4Relation relation, gpointer user_data)
 }
 
 static void
-fill_relations (Mb4RelationListList relation_lists, AlbumDetails *album)
+fill_relations (Mb5RelationListList relation_lists, AlbumDetails *album)
 {
   relationlist_list_foreach_relation (relation_lists, "url", "wikipedia",
                                       wikipedia_cb, album);
@@ -420,13 +420,13 @@ fill_relations (Mb4RelationListList relation_lists, AlbumDetails *album)
 }
 
 static AlbumDetails *
-make_album_from_release (Mb4ReleaseGroup group,
-                         Mb4Release release,
-                         Mb4Medium medium)
+make_album_from_release (Mb5ReleaseGroup group,
+                         Mb5Release release,
+                         Mb5Medium medium)
 {
   AlbumDetails *album;
-  Mb4ArtistCredit credit;
-  Mb4RelationListList relationlists;
+  Mb5ArtistCredit credit;
+  Mb5RelationListList relationlists;
   GList *artists;
   char *date = NULL;
   char buffer[512]; /* for the GET macro */
@@ -436,12 +436,12 @@ make_album_from_release (Mb4ReleaseGroup group,
 
   album = g_new0 (AlbumDetails, 1);
 
-  GET (album->album_id, mb4_release_get_id, release);
-  GET (album->title, mb4_medium_get_title, medium);
+  GET (album->album_id, mb5_release_get_id, release);
+  GET (album->title, mb5_medium_get_title, medium);
   if (album->title == NULL)
-    GET (album->title, mb4_release_get_title, release);
+    GET (album->title, mb5_release_get_title, release);
 
-  credit = mb4_release_get_artistcredit (release);
+  credit = mb5_release_get_artistcredit (release);
 
   artists = get_artist_list (credit);
   if (artists) {
@@ -451,30 +451,30 @@ make_album_from_release (Mb4ReleaseGroup group,
   }
   album->artists = artists;
 
-  GET (date, mb4_release_get_date, release);
+  GET (date, mb5_release_get_date, release);
   album->release_date = sj_metadata_helper_scan_date (date);
   g_free (date);
 
-  GET (album->asin, mb4_release_get_asin, release);
-  GET (album->country, mb4_release_get_country, release);
+  GET (album->asin, mb5_release_get_asin, release);
+  GET (album->country, mb5_release_get_country, release);
   if (group) {
-    GET (album->type, mb4_releasegroup_get_primarytype, group);
+    GET (album->type, mb5_releasegroup_get_primarytype, group);
     if (g_str_has_suffix (album->type, "Spokenword")
         || g_str_has_suffix (album->type, "Interview")
         || g_str_has_suffix (album->type, "Audiobook")) {
       album->is_spoken_word = TRUE;
     }
-    relationlists = mb4_releasegroup_get_relationlistlist (group);
+    relationlists = mb5_releasegroup_get_relationlistlist (group);
     fill_relations (relationlists, album);
   }
 
-  album->disc_number = mb4_medium_get_position (medium);
+  album->disc_number = mb5_medium_get_position (medium);
   fill_tracks_from_medium (medium, album);
   fill_album_composer (album);
-  relationlists = mb4_release_get_relationlistlist (release);
+  relationlists = mb5_release_get_relationlistlist (release);
   fill_relations (relationlists, album);
 
-  sj_mb4_album_details_dump (album);
+  sj_mb5_album_details_dump (album);
   return album;
 }
 
@@ -482,16 +482,16 @@ make_album_from_release (Mb4ReleaseGroup group,
  * Virtual methods
  */
 static GList *
-mb4_list_albums (SjMetadata *metadata, char **url, GError **error)
+mb5_list_albums (SjMetadata *metadata, char **url, GError **error)
 {
-  SjMetadataMusicbrainz4Private *priv;
+  SjMetadataMusicbrainz5Private *priv;
   GList *albums = NULL;
-  Mb4ReleaseList releases;
-  Mb4Release release;
+  Mb5ReleaseList releases;
+  Mb5Release release;
   const char *discid = NULL;
   char buffer[1024];
   int i;
-  g_return_val_if_fail (SJ_IS_METADATA_MUSICBRAINZ4 (metadata), NULL);
+  g_return_val_if_fail (SJ_IS_METADATA_MUSICBRAINZ5 (metadata), NULL);
 
   priv = GET_PRIVATE (metadata);
 
@@ -514,22 +514,22 @@ mb4_list_albums (SjMetadata *metadata, char **url, GError **error)
     discid = discid_get_id (priv->disc);
   }
 
-  releases = mb4_query_lookup_discid(priv->mb, discid);
+  releases = mb5_query_lookup_discid(priv->mb, discid);
 
   if (releases == NULL)
     return NULL;
 
-  if (mb4_release_list_size (releases) == 0)
+  if (mb5_release_list_size (releases) == 0)
     return NULL;
 
-  for (i = 0; i < mb4_release_list_size (releases); i++) {
+  for (i = 0; i < mb5_release_list_size (releases); i++) {
     AlbumDetails *album;
 
-    release = mb4_release_list_item (releases, i);
+    release = mb5_release_list_item (releases, i);
     if (release) {
       char *releaseid = NULL;
-      Mb4Release full_release = NULL;
-      Mb4Metadata release_md = NULL;
+      Mb5Release full_release = NULL;
+      Mb5Metadata release_md = NULL;
       const char *query_entity = "release";
       char *params_names[] = { "inc" };
       char *params_values[] = { "artists artist-credits labels recordings \
@@ -537,24 +537,24 @@ release-groups url-rels discids recording-level-rels work-level-rels work-rels \
 artist-rels" };
 
       releaseid = NULL;
-      GET(releaseid, mb4_release_get_id, release);
+      GET(releaseid, mb5_release_get_id, release);
       /* Inorder to get metadata from work and composer relationships
        * we need to perform a custom query
        */
-      release_md = mb4_query_query (priv->mb, query_entity, releaseid, "", 1,
+      release_md = mb5_query_query (priv->mb, query_entity, releaseid, "", 1,
                                     params_names, params_values);
 
-      if (release_md && mb4_metadata_get_release (release_md))
-        full_release = mb4_metadata_get_release (release_md);
+      if (release_md && mb5_metadata_get_release (release_md))
+        full_release = mb5_metadata_get_release (release_md);
       g_free (releaseid);
 
       if (full_release) {
-        Mb4MediumList media;
-        Mb4Metadata metadata = NULL;
-        Mb4ReleaseGroup group;
+        Mb5MediumList media;
+        Mb5Metadata metadata = NULL;
+        Mb5ReleaseGroup group;
         unsigned int j;
 
-        group = mb4_release_get_releasegroup (full_release);
+        group = mb5_release_get_releasegroup (full_release);
         if (group) {
           /* The release-group information we can extract from the
            * lookup_release query doesn't have the url relations for the
@@ -564,32 +564,32 @@ artist-rels" };
           char *params_names[] = { "inc" };
           char *params_values[] = { "artists url-rels" };
 
-          GET (releasegroupid, mb4_releasegroup_get_id, group);
-          metadata = mb4_query_query (priv->mb, "release-group", releasegroupid, "",
+          GET (releasegroupid, mb5_releasegroup_get_id, group);
+          metadata = mb5_query_query (priv->mb, "release-group", releasegroupid, "",
                                       1, params_names, params_values);
           g_free (releasegroupid);
         }
 
-        if (metadata && mb4_metadata_get_releasegroup (metadata))
-          group = mb4_metadata_get_releasegroup (metadata);
+        if (metadata && mb5_metadata_get_releasegroup (metadata))
+          group = mb5_metadata_get_releasegroup (metadata);
 
-        media = mb4_release_media_matching_discid (full_release, discid);
-        for (j = 0; j < mb4_medium_list_size (media); j++) {
-          Mb4Medium medium;
-          medium = mb4_medium_list_item (media, j);
+        media = mb5_release_media_matching_discid (full_release, discid);
+        for (j = 0; j < mb5_medium_list_size (media); j++) {
+          Mb5Medium medium;
+          medium = mb5_medium_list_item (media, j);
           if (medium) {
             album = make_album_from_release (group, full_release, medium);
             album->metadata_source = SOURCE_MUSICBRAINZ;
             albums = g_list_append (albums, album);
           }
         }
-        mb4_metadata_delete (metadata);
-        mb4_medium_list_delete (media);
+        mb5_metadata_delete (metadata);
+        mb5_medium_list_delete (media);
       }
-      mb4_metadata_delete (release_md);
+      mb5_metadata_delete (release_md);
     }
   }
-  mb4_release_list_delete (releases);
+  mb5_release_list_delete (releases);
   return albums;
 }
 
@@ -602,16 +602,16 @@ metadata_interface_init (gpointer g_iface, gpointer iface_data)
 {
   SjMetadataClass *klass = (SjMetadataClass*)g_iface;
 
-  klass->list_albums = mb4_list_albums;
+  klass->list_albums = mb5_list_albums;
 }
 
 static void
-sj_metadata_musicbrainz4_init (SjMetadataMusicbrainz4 *self)
+sj_metadata_musicbrainz5_init (SjMetadataMusicbrainz5 *self)
 {
   GConfClient *gconf_client;
   gchar *server_name;
 
-  SjMetadataMusicbrainz4Private *priv;
+  SjMetadataMusicbrainz5Private *priv;
 
   priv = GET_PRIVATE (self);
 
@@ -624,7 +624,7 @@ sj_metadata_musicbrainz4_init (SjMetadataMusicbrainz4 *self)
     server_name = NULL;
   }
 
-  priv->mb = mb4_query_new (SJ_MUSICBRAINZ_USER_AGENT, server_name, 0);
+  priv->mb = mb5_query_new (SJ_MUSICBRAINZ_USER_AGENT, server_name, 0);
   g_free (server_name);
 
 
@@ -634,21 +634,21 @@ sj_metadata_musicbrainz4_init (SjMetadataMusicbrainz4 *self)
     int port;
 
     proxy_host = gconf_client_get_string (gconf_client, GCONF_PROXY_HOST, NULL);
-    mb4_query_set_proxyhost (priv->mb, proxy_host);
+    mb5_query_set_proxyhost (priv->mb, proxy_host);
     g_free (proxy_host);
 
     port = gconf_client_get_int (gconf_client, GCONF_PROXY_PORT, NULL);
-    mb4_query_set_proxyport (priv->mb, port);
+    mb5_query_set_proxyport (priv->mb, port);
 
     if (gconf_client_get_bool (gconf_client, GCONF_PROXY_USE_AUTHENTICATION, NULL)) {
       char *username, *password;
 
       username = gconf_client_get_string (gconf_client, GCONF_PROXY_USERNAME, NULL);
-      mb4_query_set_proxyusername (priv->mb, username);
+      mb5_query_set_proxyusername (priv->mb, username);
       g_free (username);
 
       password = gconf_client_get_string (gconf_client, GCONF_PROXY_PASSWORD, NULL);
-      mb4_query_set_proxypassword (priv->mb, password);
+      mb5_query_set_proxypassword (priv->mb, password);
       g_free (password);
     }
   }
@@ -657,10 +657,10 @@ sj_metadata_musicbrainz4_init (SjMetadataMusicbrainz4 *self)
 }
 
 static void
-sj_metadata_musicbrainz4_get_property (GObject *object, guint property_id,
+sj_metadata_musicbrainz5_get_property (GObject *object, guint property_id,
                                        GValue *value, GParamSpec *pspec)
 {
-  SjMetadataMusicbrainz4Private *priv = GET_PRIVATE (object);
+  SjMetadataMusicbrainz5Private *priv = GET_PRIVATE (object);
   g_assert (priv);
 
   switch (property_id) {
@@ -679,10 +679,10 @@ sj_metadata_musicbrainz4_get_property (GObject *object, guint property_id,
 }
 
 static void
-sj_metadata_musicbrainz4_set_property (GObject *object, guint property_id,
+sj_metadata_musicbrainz5_set_property (GObject *object, guint property_id,
                                        const GValue *value, GParamSpec *pspec)
 {
-  SjMetadataMusicbrainz4Private *priv = GET_PRIVATE (object);
+  SjMetadataMusicbrainz5Private *priv = GET_PRIVATE (object);
   g_assert (priv);
 
   switch (property_id) {
@@ -697,11 +697,11 @@ sj_metadata_musicbrainz4_set_property (GObject *object, guint property_id,
     }
     priv->http_proxy = g_value_dup_string (value);
     /* TODO: check this unsets the proxy if NULL, or should we pass "" ? */
-    mb4_query_set_proxyhost (priv->mb, priv->http_proxy);
+    mb5_query_set_proxyhost (priv->mb, priv->http_proxy);
     break;
   case PROP_PROXY_PORT:
     priv->http_proxy_port = g_value_get_int (value);
-    mb4_query_set_proxyport (priv->mb, priv->http_proxy_port);
+    mb5_query_set_proxyport (priv->mb, priv->http_proxy_port);
     break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -709,14 +709,14 @@ sj_metadata_musicbrainz4_set_property (GObject *object, guint property_id,
 }
 
 static void
-sj_metadata_musicbrainz4_finalize (GObject *object)
+sj_metadata_musicbrainz5_finalize (GObject *object)
 {
-  SjMetadataMusicbrainz4Private *priv;
+  SjMetadataMusicbrainz5Private *priv;
 
   priv = GET_PRIVATE (object);
 
   if (priv->mb != NULL) {
-    mb4_query_delete (priv->mb);
+    mb5_query_delete (priv->mb);
     priv->mb = NULL;
   }
   if (priv->disc != NULL) {
@@ -725,19 +725,19 @@ sj_metadata_musicbrainz4_finalize (GObject *object)
   }
   g_free (priv->cdrom);
 
-  G_OBJECT_CLASS (sj_metadata_musicbrainz4_parent_class)->finalize (object);
+  G_OBJECT_CLASS (sj_metadata_musicbrainz5_parent_class)->finalize (object);
 }
 
 static void
-sj_metadata_musicbrainz4_class_init (SjMetadataMusicbrainz4Class *class)
+sj_metadata_musicbrainz5_class_init (SjMetadataMusicbrainz5Class *class)
 {
   GObjectClass *object_class = (GObjectClass*)class;
 
-  g_type_class_add_private (class, sizeof (SjMetadataMusicbrainz4Private));
+  g_type_class_add_private (class, sizeof (SjMetadataMusicbrainz5Private));
 
-  object_class->get_property = sj_metadata_musicbrainz4_get_property;
-  object_class->set_property = sj_metadata_musicbrainz4_set_property;
-  object_class->finalize = sj_metadata_musicbrainz4_finalize;
+  object_class->get_property = sj_metadata_musicbrainz5_get_property;
+  object_class->set_property = sj_metadata_musicbrainz5_set_property;
+  object_class->finalize = sj_metadata_musicbrainz5_finalize;
 
   g_object_class_override_property (object_class, PROP_DEVICE, "device");
   g_object_class_override_property (object_class, PROP_PROXY_HOST, "proxy-host");
@@ -750,7 +750,7 @@ sj_metadata_musicbrainz4_class_init (SjMetadataMusicbrainz4Class *class)
  */
 
 GObject *
-sj_metadata_musicbrainz4_new (void)
+sj_metadata_musicbrainz5_new (void)
 {
-  return g_object_new (SJ_TYPE_METADATA_MUSICBRAINZ4, NULL);
+  return g_object_new (SJ_TYPE_METADATA_MUSICBRAINZ5, NULL);
 }
diff --git a/libjuicer/sj-metadata-musicbrainz5.h b/libjuicer/sj-metadata-musicbrainz5.h
new file mode 100644
index 0000000..3cd4c42
--- /dev/null
+++ b/libjuicer/sj-metadata-musicbrainz5.h
@@ -0,0 +1,56 @@
+/*
+ * sj-metadata-musicbrainz5.h
+ * Copyright (C) 2008 Ross Burton <ross burtonini com>
+ * Copyright (C) 2008 Bastien Nocera <hadess hadess net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef SJ_METADATA_MUSICBRAINZ5_H
+#define SJ_METADATA_MUSICBRAINZ5_H
+
+#include <glib-object.h>
+#include "sj-metadata.h"
+
+G_BEGIN_DECLS
+
+#define SJ_TYPE_METADATA_MUSICBRAINZ5           (sj_metadata_musicbrainz5_get_type ())
+#define SJ_METADATA_MUSICBRAINZ5(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), SJ_TYPE_METADATA_MUSICBRAINZ5, SjMetadataMusicbrainz5))
+#define SJ_METADATA_MUSICBRAINZ5_CLASS(vtable)  (G_TYPE_CHECK_CLASS_CAST ((vtable), SJ_TYPE_METADATA_MUSICBRAINZ5, SjMetadataMusicbrainz5Class))
+#define SJ_IS_METADATA_MUSICBRAINZ5(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SJ_TYPE_METADATA_MUSICBRAINZ5))
+#define SJ_IS_METADATA_MUSICBRAINZ5_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), SJ_TYPE_METADATA_MUSICBRAINZ5))
+#define SJ_METADATA_MUSICBRAINZ5_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SJ_TYPE_METADATA_MUSICBRAINZ5, SjMetadataMusicbrainz5Class))
+
+typedef struct _SjMetadataMusicbrainz5 SjMetadataMusicbrainz5;
+typedef struct _SjMetadataMusicbrainz5Class SjMetadataMusicbrainz5Class;
+
+struct _SjMetadataMusicbrainz5
+{
+  GObject parent;
+};
+
+struct _SjMetadataMusicbrainz5Class
+{
+  GObjectClass parent;
+};
+
+GType sj_metadata_musicbrainz5_get_type (void);
+
+GObject *sj_metadata_musicbrainz5_new (void);
+
+G_END_DECLS
+
+#endif /* SJ_METADATA_MUSICBRAINZ5_H */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]