/* Generated by GOB (v2.0.17)   (do not edit directly) */

#include <glib.h>
#include <glib-object.h>


#include <gtk/gtk.h>
#include <libmpd/libmpd.h>
#include "metadata.h"


#ifndef __GMPC_META_WATCHER_H__
#define __GMPC_META_WATCHER_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


/*
 * Type checking and casting macros
 */
#define GMPC_TYPE_META_WATCHER	(gmpc_meta_watcher_get_type())
#define GMPC_META_WATCHER(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gmpc_meta_watcher_get_type(), GmpcMetaWatcher)
#define GMPC_META_WATCHER_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gmpc_meta_watcher_get_type(), GmpcMetaWatcher const)
#define GMPC_META_WATCHER_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), gmpc_meta_watcher_get_type(), GmpcMetaWatcherClass)
#define GMPC_IS_META_WATCHER(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), gmpc_meta_watcher_get_type ())

#define GMPC_META_WATCHER_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), gmpc_meta_watcher_get_type(), GmpcMetaWatcherClass)

/*
 * Main object structure
 */
#ifndef __TYPEDEF_GMPC_META_WATCHER__
#define __TYPEDEF_GMPC_META_WATCHER__
typedef struct _GmpcMetaWatcher GmpcMetaWatcher;
#endif
struct _GmpcMetaWatcher {
	GObject __parent__;
};

/*
 * Class definition
 */
typedef struct _GmpcMetaWatcherClass GmpcMetaWatcherClass;
struct _GmpcMetaWatcherClass {
	GObjectClass __parent__;
	/*signal*/void (* data_changed) (GmpcMetaWatcher * self, mpd_Song * song, MetaDataType type, MetaDataResult result, MetaData * met);
	/*signal*/void (* force_reload) (GmpcMetaWatcher * self);
};


/*
 * Public methods
 */
GType	gmpc_meta_watcher_get_type	(void) G_GNUC_CONST;
#line 34 "gmpc-meta-watcher.gob"
GmpcMetaWatcher * 	gmpc_meta_watcher_new	(void);
#line 60 "gmpc-meta-watcher.h"
#line 40 "gmpc-meta-watcher.gob"
void 	gmpc_meta_watcher_data_changed	(GmpcMetaWatcher * self,
					mpd_Song * song,
					MetaDataType type,
					MetaDataResult result,
					MetaData * met);
#line 67 "gmpc-meta-watcher.h"
#line 50 "gmpc-meta-watcher.gob"
void 	gmpc_meta_watcher_force_reload	(GmpcMetaWatcher * self);
#line 70 "gmpc-meta-watcher.h"
#line 59 "gmpc-meta-watcher.gob"
gboolean 	gmpc_meta_watcher_match_data	(MetaDataType type,
					mpd_Song * song1,
					mpd_Song * song2);
#line 75 "gmpc-meta-watcher.h"
#line 126 "gmpc-meta-watcher.gob"
void 	gmpc_meta_watcher_get_meta_path_callback	(GmpcMetaWatcher * self,
					mpd_Song * song,
					MetaDataType type,
					MetaDataCallback callback,
					gpointer data);
#line 82 "gmpc-meta-watcher.h"
#line 144 "gmpc-meta-watcher.gob"
MetaDataResult 	gmpc_meta_watcher_get_meta_path	(GmpcMetaWatcher * self,
					mpd_Song * song,
					MetaDataType type,
					MetaData ** met);
#line 88 "gmpc-meta-watcher.h"

/*
 * Signal connection wrapper macros
 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define gmpc_meta_watcher_connect__data_changed(object,func,data)	g_signal_connect(GMPC_META_WATCHER(__extension__ ({GmpcMetaWatcher *___object = (object); ___object; })),"data_changed",(GCallback) __extension__ ({void (* ___data_changed) (GmpcMetaWatcher * ___fake___self, mpd_Song * ___fake___song, MetaDataType ___fake___type, MetaDataResult ___fake___result, MetaData * ___fake___met, gpointer ___data ) = (func); ___data_changed; }), (data))
#define gmpc_meta_watcher_connect_after__data_changed(object,func,data)	g_signal_connect_after(GMPC_META_WATCHER(__extension__ ({GmpcMetaWatcher *___object = (object); ___object; })),"data_changed",(GCallback) __extension__ ({void (* ___data_changed) (GmpcMetaWatcher * ___fake___self, mpd_Song * ___fake___song, MetaDataType ___fake___type, MetaDataResult ___fake___result, MetaData * ___fake___met, gpointer ___data ) = (func); ___data_changed; }), (data))
#define gmpc_meta_watcher_connect_data__data_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_META_WATCHER(__extension__ ({GmpcMetaWatcher *___object = (object); ___object; })),"data_changed",(GCallback) __extension__ ({void (* ___data_changed) (GmpcMetaWatcher * ___fake___self, mpd_Song * ___fake___song, MetaDataType ___fake___type, MetaDataResult ___fake___result, MetaData * ___fake___met, gpointer ___data ) = (func); ___data_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
#define gmpc_meta_watcher_connect__force_reload(object,func,data)	g_signal_connect(GMPC_META_WATCHER(__extension__ ({GmpcMetaWatcher *___object = (object); ___object; })),"force_reload",(GCallback) __extension__ ({void (* ___force_reload) (GmpcMetaWatcher * ___fake___self, gpointer ___data ) = (func); ___force_reload; }), (data))
#define gmpc_meta_watcher_connect_after__force_reload(object,func,data)	g_signal_connect_after(GMPC_META_WATCHER(__extension__ ({GmpcMetaWatcher *___object = (object); ___object; })),"force_reload",(GCallback) __extension__ ({void (* ___force_reload) (GmpcMetaWatcher * ___fake___self, gpointer ___data ) = (func); ___force_reload; }), (data))
#define gmpc_meta_watcher_connect_data__force_reload(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_META_WATCHER(__extension__ ({GmpcMetaWatcher *___object = (object); ___object; })),"force_reload",(GCallback) __extension__ ({void (* ___force_reload) (GmpcMetaWatcher * ___fake___self, gpointer ___data ) = (func); ___force_reload; }), (data), (destroy_data), (GConnectFlags)(flags))
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define gmpc_meta_watcher_connect__data_changed(object,func,data)	g_signal_connect(GMPC_META_WATCHER(object),"data_changed",(GCallback)(func),(data))
#define gmpc_meta_watcher_connect_after__data_changed(object,func,data)	g_signal_connect_after(GMPC_META_WATCHER(object),"data_changed",(GCallback)(func),(data))
#define gmpc_meta_watcher_connect_data__data_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_META_WATCHER(object),"data_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#define gmpc_meta_watcher_connect__force_reload(object,func,data)	g_signal_connect(GMPC_META_WATCHER(object),"force_reload",(GCallback)(func),(data))
#define gmpc_meta_watcher_connect_after__force_reload(object,func,data)	g_signal_connect_after(GMPC_META_WATCHER(object),"force_reload",(GCallback)(func),(data))
#define gmpc_meta_watcher_connect_data__force_reload(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_META_WATCHER(object),"force_reload",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#endif /* __GNUC__ && !__STRICT_ANSI__ */


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
