summaryrefslogtreecommitdiff
path: root/libjuicer
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2010-05-14 16:30:33 +0100
committerBastien Nocera <hadess@hadess.net>2010-05-14 16:30:33 +0100
commitedd6235f1ceb11d0d96e523af73981c74e2a6bf1 (patch)
treed1b7771fe981628da09629c67c510cce5e0fd3f1 /libjuicer
parent3213d90f098944cfe2a100e98e3d6351b6fb557b (diff)
Remove support for obsolete libmusicbrainz2
Diffstat (limited to 'libjuicer')
-rw-r--r--libjuicer/Makefile.am8
-rw-r--r--libjuicer/sj-metadata-musicbrainz.c616
-rw-r--r--libjuicer/sj-metadata-musicbrainz.h57
3 files changed, 0 insertions, 681 deletions
diff --git a/libjuicer/Makefile.am b/libjuicer/Makefile.am
index 0db4007..f134c2b 100644
--- a/libjuicer/Makefile.am
+++ b/libjuicer/Makefile.am
@@ -22,7 +22,6 @@ libjuicer_la_CPPFLAGS = \
libjuicer_la_CFLAGS = \
$(WARN_CFLAGS) \
- $(MUSICBRAINZ_CFLAGS) \
$(MUSICBRAINZ3_CFLAGS) \
$(GSTREAMER_CFLAGS) \
$(MEDIA_PROFILES_CFLAGS) \
@@ -32,7 +31,6 @@ libjuicer_la_CFLAGS = \
$(AM_CFLAGS)
libjuicer_la_LIBADD = \
- $(MUSICBRAINZ_LIBS) \
$(MUSICBRAINZ3_LIBS) \
$(MEDIA_PROFILES_LIBS) \
$(GSTREAMER_LIBS) \
@@ -44,12 +42,6 @@ libjuicer_la_LDFLAGS = \
-export-dynamic \
$(AM_LDFLAGS)
-if HAVE_MUSICBRAINZ
-libjuicer_la_SOURCES += \
- sj-metadata-musicbrainz.h \
- sj-metadata-musicbrainz.c
-endif
-
if HAVE_MUSICBRAINZ3
libjuicer_la_SOURCES += \
sj-metadata-musicbrainz3.h \
diff --git a/libjuicer/sj-metadata-musicbrainz.c b/libjuicer/sj-metadata-musicbrainz.c
deleted file mode 100644
index 6c640da..0000000
--- a/libjuicer/sj-metadata-musicbrainz.c
+++ /dev/null
@@ -1,616 +0,0 @@
-/*
- * sj-metadata-musicbrainz.c
- * Copyright (C) 2003 Ross Burton <ross@burtonini.com>
- *
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <glib-object.h>
-#include <glib/gi18n.h>
-#include <glib.h>
-#include <gconf/gconf-client.h>
-#include <musicbrainz/queries.h>
-#include <musicbrainz/mb_c.h>
-#include <stdlib.h>
-
-#include "sj-metadata-musicbrainz.h"
-#include "sj-structures.h"
-#include "sj-error.h"
-
-#define GCONF_MUSICBRAINZ_SERVER "/apps/sound-juicer/musicbrainz_server"
-#define GCONF_PROXY_USE_PROXY "/system/http_proxy/use_http_proxy"
-#define GCONF_PROXY_HOST "/system/http_proxy/host"
-#define GCONF_PROXY_PORT "/system/http_proxy/port"
-#define GCONF_PROXY_USE_AUTHENTICATION "/system/http_proxy/use_authentication"
-#define GCONF_PROXY_USERNAME "/system/http_proxy/authentication_user"
-#define GCONF_PROXY_PASSWORD "/system/http_proxy/authentication_password"
-
-
-struct SjMetadataMusicbrainzPrivate {
- musicbrainz_t mb;
- char *http_proxy;
- int http_proxy_port;
- char *cdrom;
- GList *albums;
-};
-
-#define GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), SJ_TYPE_METADATA_MUSICBRAINZ, SjMetadataMusicbrainzPrivate))
-
-enum {
- PROP_0,
- PROP_DEVICE,
- PROP_USE_PROXY,
- PROP_PROXY_HOST,
- PROP_PROXY_PORT,
-};
-
-static void metadata_interface_init (gpointer g_iface, gpointer iface_data);
-
-G_DEFINE_TYPE_WITH_CODE (SjMetadataMusicbrainz,
- sj_metadata_musicbrainz,
- G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (SJ_TYPE_METADATA,
- metadata_interface_init));
-
-
-/*
- * Private methods
- */
-
-static int
-get_duration_from_sectors (int sectors)
-{
-#define BYTES_PER_SECTOR 2352
-#define BYTES_PER_SECOND (44100 / 8) / 16 / 2
-
- return (sectors * BYTES_PER_SECTOR / BYTES_PER_SECOND);
-}
-
-/*
- * Virtual methods
- */
-
-/* Data imported from FreeDB is horrendeous for compilations,
- * Try to split the 'Various' artist */
-static void
-artist_and_title_from_title (TrackDetails *track, gpointer data)
-{
- char *slash, **split;
-
- if (g_ascii_strncasecmp (track->album->album_id, "freedb:", 7) != 0 && track->album->artist_id[0] != '\0' && track->artist_id[0] != '\0') {
- track->title = g_strdup (data);
- return;
- }
-
- slash = strstr (data, " / ");
- if (slash == NULL) {
- track->title = g_strdup (data);
- return;
- }
- split = g_strsplit (data, " / ", 2);
- track->artist = g_strdup (split[0]);
- track->title = g_strdup (split[1]);
- g_strfreev (split);
-}
-
-#if WITH_CACHE
-/**
- * Write the RDF in the MusicBrainz object to the file specified.
- */
-static void
-cache_rdf (musicbrainz_t mb, const char *filename)
-{
- GError *error = NULL;
- int len;
- char *path, *rdf;
-
- g_assert (mb != NULL);
- g_assert (filename != NULL);
-
- /* Create the folder for the file */
- path = g_path_get_dirname (filename);
- g_mkdir_with_parents (path, 0755); /* Handle errors in set_contents() */
- g_free (path);
-
- /* How much data is there to save? */
- len = mb_GetResultRDFLen (mb);
- rdf = g_malloc0 (len);
-
- /* Get the RDF and save it */
- mb_GetResultRDF (mb, rdf, len);
- if (!g_file_set_contents (filename, rdf, len, &error)) {
- g_warning ("Cannot write cache file %s: %s", filename, error->message);
- g_error_free (error);
- }
-
- g_free (rdf);
-}
-
-/*
- * Load into the MusicBrainz object the RDF from the specified cache file if it
- * exists and is valid then return TRUE, otherwise return FALSE.
- */
-static gboolean
-get_cached_rdf (musicbrainz_t mb, const char *cachepath)
-{
- gboolean ret = FALSE;
- GError *error = NULL;
- char *rdf = NULL;
-
- g_assert (mb != NULL);
- g_assert (cachepath != NULL);
-
- if (!g_file_test (cachepath, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
- goto done;
-
- /* Cache file exists, open it */
- if (!g_file_get_contents (cachepath, &rdf, NULL, &error)) {
- g_warning ("Cannot open cache file %s: %s", cachepath, error->message);
- g_error_free (error);
- goto done;
- }
-
- /* Set the RDF */
- if (mb_SetResultRDF (mb, rdf))
- ret = TRUE;
-
- done:
- g_free (rdf);
- return ret;
-}
-#else
-static gboolean
-get_cached_rdf (musicbrainz_t mb, const char *cachepath)
-{
- return FALSE;
-}
-static void
-cache_rdf (musicbrainz_t mb, const char *filename) {
-}
-#endif
-
-/*
- * Fill the MusicBrainz object with RDF. Basically get the CD Index and check
- * the local cache, if that fails then lookup the data online.
- */
-static void
-get_rdf (SjMetadata *metadata)
-{
- SjMetadataMusicbrainzPrivate *priv;
- char data[256];
- char *cdindex = NULL, *cachepath = NULL;
-
- g_assert (metadata != NULL);
-
- priv = SJ_METADATA_MUSICBRAINZ (metadata)->priv;
-
-#if WITH_CACHE
- /* Get the Table of Contents */
- if (!mb_Query (priv->mb, MBQ_GetCDTOC)) {
- mb_GetQueryError (priv->mb, data, sizeof (data));
- g_print (_("This CD could not be queried: %s\n"), data);
- return;
- }
-
- /* Extract the CD Index */
- if (!mb_GetResultData(priv->mb, MBE_TOCGetCDIndexId, data, sizeof (data))) {
- mb_GetQueryError (priv->mb, data, sizeof (data));
- g_print (_("This CD could not be queried: %s\n"), data);
- return;
- }
- cdindex = g_strdup (data);
-
- cachepath = g_build_filename (g_get_home_dir (), ".gnome2", "sound-juicer", "cache", cdindex, NULL);
-#endif
-
- if (!get_cached_rdf (priv->mb, cachepath)) {
- /* Don't re-use the CD Index as that doesn't send enough data to the server.
- By doing this we also pass track lengths, which can be proxied to FreeDB
- if required. */
- if (!mb_Query (priv->mb, MBQ_GetCDInfo)) {
- mb_GetQueryError (priv->mb, data, sizeof (data));
- g_print (_("This CD could not be queried: %s\n"), data);
- goto done;
- }
- cache_rdf (priv->mb, cachepath);
- }
-
- done:
- g_free (cachepath);
- g_free (cdindex);
-}
-
-/*
- * Magic character set encoding to try and repair brain-dead FreeDB encoding,
- * converting it to the current locale's encoding (which is likely to be the
- * intended encoding).
- */
-static void
-convert_encoding(char **str)
-{
- char *iso8859;
- char *converted;
-
- if (str == NULL || *str == NULL)
- return;
-
- iso8859 = g_convert (*str, -1, "ISO-8859-1", "UTF-8", NULL, NULL, NULL);
-
- if (iso8859) {
- converted = g_locale_to_utf8 (iso8859, -1, NULL, NULL, NULL);
-
- if (converted) {
- g_free (*str);
- *str = converted;
- }
- }
-
- g_free (iso8859);
-}
-
-static GList *
-mb_list_albums (SjMetadata *metadata, char **url, GError **error)
-{
- /** The size of the buffer used in MusicBrainz lookups */
- SjMetadataMusicbrainzPrivate *priv;
- GList *albums = NULL;
- GList *al, *tl;
- char data[1024];
- int num_albums, i, j;
-
- g_return_val_if_fail (metadata != NULL, NULL);
- g_return_val_if_fail (SJ_IS_METADATA_MUSICBRAINZ (metadata), NULL);
- priv = SJ_METADATA_MUSICBRAINZ (metadata)->priv;
- g_return_val_if_fail (priv->cdrom != NULL, NULL);
-
- if (sj_metadata_helper_check_media (priv->cdrom, error) == FALSE) {
- priv->albums = NULL;
- return NULL;
- }
-
- get_rdf (metadata);
-
- if (url != NULL) {
- mb_GetWebSubmitURL(priv->mb, data, sizeof(data));
- *url = g_strdup(data);
- }
-
- num_albums = mb_GetResultInt(priv->mb, MBE_GetNumAlbums);
- if (num_albums < 1) {
- priv->albums = NULL;
- return NULL;
- }
-
- for (i = 1; i <= num_albums; i++) {
- int num_tracks;
- AlbumDetails *album;
- gboolean from_freedb = FALSE;
-
- mb_Select1(priv->mb, MBS_SelectAlbum, i);
- album = g_new0 (AlbumDetails, 1);
-
- if (mb_GetResultData(priv->mb, MBE_AlbumGetAlbumId, data, sizeof (data))) {
- from_freedb = strstr(data, "freedb:") == data;
-
- mb_GetIDFromURL (priv->mb, data, data, sizeof (data));
- album->album_id = g_strdup (data);
- }
-
- if (mb_GetResultData (priv->mb, MBE_AlbumGetAlbumArtistId, data, sizeof (data))) {
- mb_GetIDFromURL (priv->mb, data, data, sizeof (data));
- album->artist_id = g_strdup (data);
-
- if (mb_GetResultData (priv->mb, MBE_AlbumGetAlbumArtistName, data, sizeof (data))) {
- album->artist = g_strdup (data);
- } else {
- if (g_ascii_strcasecmp (MBI_VARIOUS_ARTIST_ID, album->artist_id) == 0) {
- album->artist = g_strdup (_("Various"));
- } else {
- album->artist = g_strdup (_("Unknown Artist"));
- }
- }
- if (mb_GetResultData(priv->mb, MBE_AlbumGetAlbumArtistSortName, data, sizeof (data))) {
- album->artist_sortname = g_strdup (data);
- }
- }
-
- if (mb_GetResultData(priv->mb, MBE_AlbumGetAlbumName, data, sizeof (data))) {
- char *new_title;
- new_title = sj_metadata_helper_scan_disc_number (data, &album->disc_number);
- if (new_title)
- album->title = new_title;
- else
- album->title = g_strdup (data);
- } else {
- album->title = g_strdup (_("Unknown Title"));
- }
-
- if (mb_GetResultData(priv->mb, MBE_AlbumGetAmazonAsin, data, sizeof (data))) {
- album->asin = g_strdup (data);
- }
-
- {
- int num_releases;
- num_releases = mb_GetResultInt (priv->mb, MBE_AlbumGetNumReleaseDates);
- if (num_releases > 0) {
- mb_Select1(priv->mb, MBS_SelectReleaseDate, 1);
- if (mb_GetResultData(priv->mb, MBE_ReleaseGetDate, data, sizeof (data))) {
- album->release_date = sj_metadata_helper_scan_date (data);
- }
- mb_Select(priv->mb, MBS_Back);
- }
- }
-
- num_tracks = mb_GetResultInt(priv->mb, MBE_AlbumGetNumTracks);
- if (num_tracks < 1) {
- g_free (album->artist);
- g_free (album->artist_sortname);
- g_free (album->title);
- g_free (album);
- g_warning (_("Incomplete metadata for this CD"));
- priv->albums = NULL;
- return NULL;
- }
-
- for (j = 1; j <= num_tracks; j++) {
- TrackDetails *track;
- track = g_new0 (TrackDetails, 1);
-
- track->album = album;
-
- track->number = j; /* replace with number lookup? */
-
- if (mb_GetResultData1(priv->mb, MBE_AlbumGetTrackId, data, sizeof (data), j)) {
- mb_GetIDFromURL (priv->mb, data, data, sizeof (data));
- track->track_id = g_strdup (data);
- }
-
- if (mb_GetResultData1(priv->mb, MBE_AlbumGetArtistId, data, sizeof (data), j)) {
- mb_GetIDFromURL (priv->mb, data, data, sizeof (data));
- track->artist_id = g_strdup (data);
- }
-
- if (mb_GetResultData1(priv->mb, MBE_AlbumGetTrackName, data, sizeof (data), j)) {
- if (track->artist_id != NULL) {
- artist_and_title_from_title (track, data);
- } else {
- track->title = g_strdup (data);
- }
- } else {
- track->title = g_strdup (_("[Untitled]"));
- }
-
- if (track->artist == NULL && mb_GetResultData1(priv->mb, MBE_AlbumGetArtistName, data, sizeof (data), j)) {
- track->artist = g_strdup (data);
- }
-
- if (mb_GetResultData1(priv->mb, MBE_AlbumGetArtistSortName, data, sizeof (data), j)) {
- track->artist_sortname = g_strdup (data);
- }
-
- if (mb_GetResultData1(priv->mb, MBE_AlbumGetTrackDuration, data, sizeof (data), j)) {
- track->duration = atoi (data) / 1000;
- }
-
- if (from_freedb) {
- convert_encoding(&track->title);
- convert_encoding(&track->artist);
- convert_encoding(&track->artist_sortname);
- }
-
- album->tracks = g_list_append (album->tracks, track);
- album->number++;
- }
-
- if (from_freedb) {
- convert_encoding(&album->title);
- convert_encoding(&album->artist);
- convert_encoding(&album->artist_sortname);
- }
-
- if (from_freedb) {
- album->metadata_source = SOURCE_FREEDB;
- } else {
- album->metadata_source = SOURCE_MUSICBRAINZ;
- }
-
- albums = g_list_append (albums, album);
-
- mb_Select (priv->mb, MBS_Rewind);
- }
-
- /* For each album, we need to insert the duration data if necessary
- * We need to query this here because otherwise we would flush the
- * data queried from the server */
- /* TODO: scan for 0 duration before doing the query to avoid another lookup if
- we don't need to do it */
- mb_Query (priv->mb, MBQ_GetCDTOC);
- for (al = albums; al; al = al->next) {
- AlbumDetails *album = al->data;
-
- j = 1;
- for (tl = album->tracks; tl; tl = tl->next) {
- TrackDetails *track = tl->data;
- int sectors;
-
- if (track->duration == 0) {
- sectors = mb_GetResultInt1 (priv->mb, MBE_TOCGetTrackNumSectors, j+1);
- track->duration = get_duration_from_sectors (sectors);
- }
- j++;
- }
- }
-
- return albums;
-}
-
-/*
- * GObject methods
- */
-
-static void
-metadata_interface_init (gpointer g_iface, gpointer iface_data)
-{
- SjMetadataClass *klass = (SjMetadataClass*)g_iface;
- klass->list_albums = mb_list_albums;
-}
-
-static void
-sj_metadata_musicbrainz_init (SjMetadataMusicbrainz *self)
-{
- GConfClient *gconf_client;
- char *server_name = NULL;
-
- self->priv = GET_PRIVATE (self);
- self->priv->mb = mb_New ();
- mb_UseUTF8 (self->priv->mb, TRUE);
-
- gconf_client = gconf_client_get_default ();
- server_name = gconf_client_get_string (gconf_client, GCONF_MUSICBRAINZ_SERVER, NULL);
- if (server_name) {
- g_strstrip (server_name);
- }
- if (server_name && strcmp (server_name, "") != 0) {
- mb_SetServer (self->priv->mb, server_name, 80);
- g_free (server_name);
- }
-
- /* Set the HTTP proxy */
- if (gconf_client_get_bool (gconf_client, GCONF_PROXY_USE_PROXY, NULL)) {
- char *proxy_host = gconf_client_get_string (gconf_client, GCONF_PROXY_HOST, NULL);
- mb_SetProxy (self->priv->mb, proxy_host,
- gconf_client_get_int (gconf_client, GCONF_PROXY_PORT, NULL));
- g_free (proxy_host);
- if (gconf_client_get_bool (gconf_client, GCONF_PROXY_USE_AUTHENTICATION, NULL)) {
-#if HAVE_MB_SETPROXYCREDS
- char *username = gconf_client_get_string (gconf_client, GCONF_PROXY_USERNAME, NULL);
- char *password = gconf_client_get_string (gconf_client, GCONF_PROXY_PASSWORD, NULL);
- mb_SetProxyCreds (self->priv->mb, username, password);
- g_free (username);
- g_free (password);
-#else
- g_warning ("mb_SetProxyCreds() not found, no proxy authorisation possible.");
-#endif
- }
- }
-
- g_object_unref (gconf_client);
-
- if (g_getenv("MUSICBRAINZ_DEBUG")) {
- mb_SetDebug (self->priv->mb, TRUE);
- }
-}
-
-static void
-sj_metadata_musicbrainz_get_property (GObject *object, guint property_id,
- GValue *value, GParamSpec *pspec)
-{
- SjMetadataMusicbrainzPrivate *priv = SJ_METADATA_MUSICBRAINZ (object)->priv;
- g_assert (priv);
-
- switch (property_id) {
- case PROP_DEVICE:
- g_value_set_string (value, priv->cdrom);
- break;
- case PROP_PROXY_HOST:
- g_value_set_string (value, priv->http_proxy);
- break;
- case PROP_PROXY_PORT:
- g_value_set_int (value, priv->http_proxy_port);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
-}
-
-static void
-sj_metadata_musicbrainz_set_property (GObject *object, guint property_id,
- const GValue *value, GParamSpec *pspec)
-{
- SjMetadataMusicbrainzPrivate *priv = SJ_METADATA_MUSICBRAINZ (object)->priv;
- g_assert (priv);
-
- switch (property_id) {
- case PROP_DEVICE:
- if (priv->cdrom)
- g_free (priv->cdrom);
- priv->cdrom = g_value_dup_string (value);
- if (priv->cdrom)
- mb_SetDevice (priv->mb, priv->cdrom);
- break;
- case PROP_PROXY_HOST:
- if (priv->http_proxy) {
- g_free (priv->http_proxy);
- }
- priv->http_proxy = g_value_dup_string (value);
- /* TODO: check this unsets the proxy if NULL, or should we pass "" ? */
- mb_SetProxy (priv->mb, priv->http_proxy, priv->http_proxy_port);
- break;
- case PROP_PROXY_PORT:
- priv->http_proxy_port = g_value_get_int (value);
- mb_SetProxy (priv->mb, priv->http_proxy, priv->http_proxy_port);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
-}
-
-static void
-sj_metadata_musicbrainz_finalize (GObject *object)
-{
- SjMetadataMusicbrainzPrivate *priv;
-
- priv = SJ_METADATA_MUSICBRAINZ (object)->priv;
-
- g_free (priv->http_proxy);
- g_free (priv->cdrom);
- mb_Delete (priv->mb);
-
- G_OBJECT_CLASS (sj_metadata_musicbrainz_parent_class)->finalize (object);
-}
-
-static void
-sj_metadata_musicbrainz_class_init (SjMetadataMusicbrainzClass *class)
-{
- GObjectClass *object_class = (GObjectClass*)class;
-
- g_type_class_add_private (class, sizeof (SjMetadataMusicbrainzPrivate));
-
- object_class->get_property = sj_metadata_musicbrainz_get_property;
- object_class->set_property = sj_metadata_musicbrainz_set_property;
- object_class->finalize = sj_metadata_musicbrainz_finalize;
-
- g_object_class_override_property (object_class, PROP_DEVICE, "device");
- g_object_class_override_property (object_class, PROP_PROXY_HOST, "proxy-host");
- g_object_class_override_property (object_class, PROP_PROXY_PORT, "proxy-port");
-}
-
-
-/*
- * Public methods.
- */
-
-GObject *
-sj_metadata_musicbrainz_new (void)
-{
- return g_object_new (SJ_TYPE_METADATA_MUSICBRAINZ, NULL);
-}
diff --git a/libjuicer/sj-metadata-musicbrainz.h b/libjuicer/sj-metadata-musicbrainz.h
deleted file mode 100644
index bd2142c..0000000
--- a/libjuicer/sj-metadata-musicbrainz.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * sj-metadata-musicbrainz.h
- * Copyright (C) 2003 Ross Burton <ross@burtonini.com>
- *
- * 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_MUSICBRAINZ_H
-#define SJ_METADATA_MUSICBRAINZ_H
-
-#include <glib-object.h>
-#include "sj-metadata.h"
-
-G_BEGIN_DECLS
-
-#define SJ_TYPE_METADATA_MUSICBRAINZ (sj_metadata_musicbrainz_get_type ())
-#define SJ_METADATA_MUSICBRAINZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SJ_TYPE_METADATA_MUSICBRAINZ, SjMetadataMusicbrainz))
-#define SJ_METADATA_MUSICBRAINZ_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), SJ_TYPE_METADATA_MUSICBRAINZ, SjMetadataMusicbrainzClass))
-#define SJ_IS_METADATA_MUSICBRAINZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SJ_TYPE_METADATA_MUSICBRAINZ))
-#define SJ_IS_METADATA_MUSICBRAINZ_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), SJ_TYPE_METADATA_MUSICBRAINZ))
-#define SJ_METADATA_MUSICBRAINZ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SJ_TYPE_METADATA_MUSICBRAINZ, SjMetadataMusicbrainzClass))
-
-typedef struct _SjMetadataMusicbrainz SjMetadataMusicbrainz; /* dummy object */
-typedef struct _SjMetadataMusicbrainzClass SjMetadataMusicbrainzClass;
-typedef struct SjMetadataMusicbrainzPrivate SjMetadataMusicbrainzPrivate;
-
-struct _SjMetadataMusicbrainz
-{
- GObject parent;
- SjMetadataMusicbrainzPrivate *priv;
-};
-
-struct _SjMetadataMusicbrainzClass
-{
- GObjectClass parent;
-};
-
-GType sj_metadata_musicbrainz_get_type (void);
-
-GObject *sj_metadata_musicbrainz_new (void);
-
-G_END_DECLS
-
-#endif /* SJ_METADATA_MUSICBRAINZ_H */