[sound-juicer/musicbrainz4: 4/12] mb4: add sj_metadata_free_albums



commit 942f2683570e39019eb106417c8f9806624ff863
Author: Christophe Fergeau <cfergeau redhat com>
Date:   Mon Aug 1 00:18:06 2011 +0200

    mb4: add sj_metadata_free_albums
    
    This function is not used and not really useful given the way
    libjuicer external API is done. AlbumDetails should probably be
    changed to be a GBoxedType...

 libjuicer/sj-metadata-musicbrainz4.c |    1 +
 libjuicer/sj-metadata.c              |   11 +++++++++++
 libjuicer/sj-metadata.h              |    2 ++
 3 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/libjuicer/sj-metadata-musicbrainz4.c b/libjuicer/sj-metadata-musicbrainz4.c
index 3b4f231..95c3a89 100644
--- a/libjuicer/sj-metadata-musicbrainz4.c
+++ b/libjuicer/sj-metadata-musicbrainz4.c
@@ -542,6 +542,7 @@ metadata_interface_init (gpointer g_iface, gpointer iface_data)
   SjMetadataClass *klass = (SjMetadataClass*)g_iface;
 
   klass->list_albums = mb4_list_albums;
+  klass->free_albums = mb4_free_albums;
 }
 
 static void
diff --git a/libjuicer/sj-metadata.c b/libjuicer/sj-metadata.c
index ce25cf6..437ca02 100644
--- a/libjuicer/sj-metadata.c
+++ b/libjuicer/sj-metadata.c
@@ -33,6 +33,7 @@
 
 #include "sj-metadata.h"
 #include "sj-metadata-marshal.h"
+#include "sj-structures.h"
 #include "sj-error.h"
 
 enum {
@@ -115,6 +116,16 @@ sj_metadata_list_albums (SjMetadata *metadata, char **url, GError **error)
   return SJ_METADATA_GET_CLASS (metadata)->list_albums (metadata, url, error);
 }
 
+void sj_metadata_free_albums (SjMetadata *metadata, GList *albums)
+{
+    if (SJ_METADATA_GET_CLASS (metadata)->free_albums)
+        SJ_METADATA_GET_CLASS (metadata)->free_albums (metadata, albums);
+    else {
+        g_list_foreach (albums, (GFunc)album_details_free, NULL);
+        g_list_free (albums);
+    }
+}
+
 char *
 sj_metadata_helper_scan_disc_number (const char *album_title, int *disc_number)
 {
diff --git a/libjuicer/sj-metadata.h b/libjuicer/sj-metadata.h
index f7a58d2..f069ac6 100644
--- a/libjuicer/sj-metadata.h
+++ b/libjuicer/sj-metadata.h
@@ -42,6 +42,7 @@ struct _SjMetadataClass
 
   /* Virtual Table */
   GList * (*list_albums) (SjMetadata *metadata, char **url, GError **error);
+  void (*free_albums) (SjMetadata *metadata, GList *albums);
 };
 
 GType sj_metadata_get_type (void);
@@ -49,6 +50,7 @@ void sj_metadata_set_cdrom (SjMetadata *metadata, const char* device);
 void sj_metadata_set_proxy (SjMetadata *metadata, const char* proxy);
 void sj_metadata_set_proxy_port (SjMetadata *metadata, const int proxy_port);
 GList * sj_metadata_list_albums (SjMetadata *metadata, char **url, GError **error);
+void sj_metadata_free_albums (SjMetadata *metadata, GList *albums);
 
 char * sj_metadata_helper_scan_disc_number (const char *album_title, int *disc_number);
 GDate * sj_metadata_helper_scan_date (const char *date);



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