sound-juicer r2277 - in trunk: . libjuicer tests



Author: hadess
Date: Wed Sep  3 13:07:49 2008
New Revision: 2277
URL: http://svn.gnome.org/viewvc/sound-juicer?rev=2277&view=rev

Log:
2008-09-03  Bastien Nocera  <hadess hadess net>

	* libjuicer/sj-metadata-musicbrainz.c (lookup_cd):
	* libjuicer/sj-structures.c (album_details_free):
	* libjuicer/sj-structures.h:
	* tests/mb-test.c (source_to_str), (metadata_cb):
	Export ASIN, discogs and Wikipedia URLs in the disc metadata,
	only ASIN implemented for the Musicbrainz2 backend right now
	(Closes: #550587)



Modified:
   trunk/ChangeLog
   trunk/libjuicer/sj-metadata-musicbrainz.c
   trunk/libjuicer/sj-structures.c
   trunk/libjuicer/sj-structures.h
   trunk/tests/mb-test.c

Modified: trunk/libjuicer/sj-metadata-musicbrainz.c
==============================================================================
--- trunk/libjuicer/sj-metadata-musicbrainz.c	(original)
+++ trunk/libjuicer/sj-metadata-musicbrainz.c	Wed Sep  3 13:07:49 2008
@@ -423,6 +423,10 @@
       album->title = g_strdup (_("Unknown Title"));
     }
 
+    if (mb_GetResultData(priv->mb, MBE_AlbumGetAmazonAsin, data, sizeof (data))) {
+      album->asin = g_strdup (data);
+    }
+
     if (g_regex_match (priv->disc_regex, album->title, 0, &info)) {
       int pos = 0;
       char *s;

Modified: trunk/libjuicer/sj-structures.c
==============================================================================
--- trunk/libjuicer/sj-structures.c	(original)
+++ trunk/libjuicer/sj-structures.c	Wed Sep  3 13:07:49 2008
@@ -52,5 +52,8 @@
   if (album->release_date) g_date_free (album->release_date);
   g_list_deep_free (album->tracks, (GFunc)track_details_free);
   g_free (album->artist_sortname);
+  g_free (album->asin);
+  g_free (album->discogs);
+  g_free (album->wikipedia);
   g_free (album);
 }

Modified: trunk/libjuicer/sj-structures.h
==============================================================================
--- trunk/libjuicer/sj-structures.h	(original)
+++ trunk/libjuicer/sj-structures.h	Wed Sep  3 13:07:49 2008
@@ -32,6 +32,7 @@
 typedef struct _TrackDetails TrackDetails;
 
 enum _MetadataSource {
+  SOURCE_UNKNOWN = 0,
   SOURCE_CDTEXT,
   SOURCE_FREEDB,
   SOURCE_MUSICBRAINZ
@@ -59,6 +60,9 @@
   GDate *release_date; /* MusicBrainz support multiple releases per album */
   char* album_id;
   char* artist_id;
+  char* asin;
+  char* discogs;
+  char* wikipedia;
   MetadataSource metadata_source;
 };
 

Modified: trunk/tests/mb-test.c
==============================================================================
--- trunk/tests/mb-test.c	(original)
+++ trunk/tests/mb-test.c	Wed Sep  3 13:07:49 2008
@@ -4,6 +4,18 @@
 #include "sj-metadata.h"
 #include "sj-metadata-musicbrainz.h"
 
+static const char *
+source_to_str (MetadataSource source)
+{
+	const char * strs[] = {
+		"Unknown",
+		"CD-Text",
+		"FreeDB",
+		"MusicBrainz"
+	};
+	return strs[source];
+}
+
 static void
 metadata_cb (SjMetadata *metadata, GList *albums, GError *error)
 {
@@ -17,6 +29,15 @@
   while (albums) {
     AlbumDetails *album;
     album = (AlbumDetails*)albums->data;
+    g_print ("Source: %s\n", source_to_str(album->metadata_source));
+    if (album->metadata_source == SOURCE_MUSICBRAINZ)
+      g_print ("Album ID: %s\n", album->album_id);
+    if (album->asin != NULL)
+      g_print ("ASIN: %s\n", album->asin);
+    if (album->discogs != NULL)
+      g_print ("Discogs: %s\n", album->discogs);
+    if (album->wikipedia != NULL)
+      g_print ("Wikipedia: %s\n", album->wikipedia);
     g_print ("'%s', by %s\n", album->title, album->artist);
     while (album->tracks) {
       TrackDetails *track = (TrackDetails*)album->tracks->data;



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