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

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


#include <config.h>
#include <gtk/gtk.h>
#include <libmpd/libmpd.h>
#include <libmpd/libmpd-internal.h>

#ifndef __GMPC_MPDDATA_MODEL_H__
#define __GMPC_MPDDATA_MODEL_H__

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



#define GMPC_MPD_DATA_MODEL(a) GMPC_MPDDATA_MODEL(a)
	enum
	{
		MPDDATA_MODEL_COL_MPDSONG = 0, 		      /* get the mpd_Song */
		MPDDATA_MODEL_COL_PLAYING,				      /* Shows if this song is the current song */
		MPDDATA_MODEL_COL_PLAYING_FONT_WEIGHT,	/* Shows if this song is the current song */
		MPDDATA_MODEL_COL_PATH,					        /* Path to song/file/directory */
		MPDDATA_MODEL_COL_MARKUP, 				      /* a string that has FALSEmarkup */
		MPDDATA_MODEL_COL_SONG_ARTIST,			    /* artist name */
		MPDDATA_MODEL_COL_SONG_ALBUM,			      /* album name */
		MPDDATA_MODEL_COL_SONG_TITLE,			      /* song title */
		MPDDATA_MODEL_COL_SONG_TITLEFILE,		    /* song title */
		MPDDATA_MODEL_COL_SONG_GENRE,			      /* song genre */
		MPDDATA_MODEL_COL_SONG_TRACK,			      /* song track */
		MPDDATA_MODEL_COL_SONG_NAME,			      /* stream name */
		MPDDATA_MODEL_COL_SONG_COMPOSER,		    /* composer name */
		MPDDATA_MODEL_COL_SONG_PERFORMER,		    /* performer */
		MPDDATA_MODEL_COL_SONG_DATE,			      /* date */
		MPDDATA_MODEL_COL_SONG_LENGTH_FORMAT,	  /* length formatted */
		MPDDATA_MODEL_COL_SONG_DISC,			      /* disc */
		MPDDATA_MODEL_COL_SONG_COMMENT,			    /* comment */
		MPDDATA_MODEL_COL_SONG_POS,				      /* position */
        MPDDATA_MODEL_COL_SONG_ALBUMARTIST,
		MPDDATA_MODEL_COL_PATH_EXTENSION,				/* Extention */
		MPDDATA_MODEL_COL_PATH_DIRECTORY,				/* Directory */
		MPDDATA_MODEL_COL_SONG_ID,				      /* col id */
		MPDDATA_MODEL_COL_ICON_ID,				      /* icon id */
		MPDDATA_MODEL_COL_SONG_LENGTH,			    /* length */
		MPDDATA_MODEL_COL_SONG_RATING,			    /* rating */
		MPDDATA_MODEL_TAG_TYPE,				          /* tag type */
		MPDDATA_MODEL_ROW_TYPE,					        /* type of the row */
		MPDDATA_MODEL_META_DATA,                        /* metadata */
		MPDDATA_MODEL_USERDATA,
        MPDDATA_MODEL_COL_SONG_PRIORITY,                /* priority */
		MPDDATA_MODEL_N_COLUMNS
	} ;


/*
 * Type checking and casting macros
 */
#define GMPC_TYPE_MPDDATA_MODEL	(gmpc_mpddata_model_get_type())
#define GMPC_MPDDATA_MODEL(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gmpc_mpddata_model_get_type(), GmpcMpdDataModel)
#define GMPC_MPDDATA_MODEL_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gmpc_mpddata_model_get_type(), GmpcMpdDataModel const)
#define GMPC_MPDDATA_MODEL_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), gmpc_mpddata_model_get_type(), GmpcMpdDataModelClass)
#define GMPC_IS_MPDDATA_MODEL(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), gmpc_mpddata_model_get_type ())

#define GMPC_MPDDATA_MODEL_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), gmpc_mpddata_model_get_type(), GmpcMpdDataModelClass)

/* Private structure type */
typedef struct _GmpcMpdDataModelPrivate GmpcMpdDataModelPrivate;

/*
 * Main object structure
 */
#ifndef __TYPEDEF_GMPC_MPDDATA_MODEL__
#define __TYPEDEF_GMPC_MPDDATA_MODEL__
typedef struct _GmpcMpdDataModel GmpcMpdDataModel;
#endif
struct _GmpcMpdDataModel {
	GObject __parent__;
	/*< public >*/
	GType types[MPDDATA_MODEL_N_COLUMNS];
	gint num_rows;
	gint icon_size;
	gboolean has_up;
	/*< private >*/
	GmpcMpdDataModelPrivate *_priv;
};

/*
 * Class definition
 */
typedef struct _GmpcMpdDataModelClass GmpcMpdDataModelClass;
struct _GmpcMpdDataModelClass {
	GObjectClass __parent__;
	/*signal*/void (* playtime_changed) (GmpcMpdDataModel * self, gulong playtime);
};


/*
 * Public methods
 */
GType	gmpc_mpddata_model_get_type	(void) G_GNUC_CONST;
gboolean 	gmpc_mpddata_model_get_has_up	(GmpcMpdDataModel * self);
void 	gmpc_mpddata_model_set_has_up	(GmpcMpdDataModel * self,
					gboolean val);
GmpcMpdDataModel * 	gmpc_mpddata_model_new	(void);
void 	gmpc_mpddata_model_reset_rating	(GmpcMpdDataModel * self);
gboolean 	gmpc_mpddata_model_iter_children	(GtkTreeModel * model,
					GtkTreeIter * iter,
					GtkTreeIter * parent);
gint 	gmpc_mpddata_model_get_n_columns	(GtkTreeModel * model);
void 	gmpc_mpddata_model_get_value	(GtkTreeModel * model,
					GtkTreeIter * iter,
					gint column,
					GValue * value);
void 	gmpc_mpddata_model_set_request_artist	(GmpcMpdDataModel * self,
					const char * artist);
const char * 	gmpc_mpddata_model_get_request_artist	(GmpcMpdDataModel * self);
long unsigned 	gmpc_mpddata_model_set_mpd_data	(GmpcMpdDataModel * self,
					MpdData * data2);
int 	gmpc_mpddata_model_test_sort_func	(gpointer ppaa,
					gpointer ppbb,
					GmpcMpdDataModel * self);
long unsigned 	gmpc_mpddata_model_set_mpd_data_slow	(GmpcMpdDataModel * self,
					MpdData * data2);
void 	gmpc_mpddata_model_playtime_changed	(GmpcMpdDataModel * self,
					gulong playtime);
gulong 	gmpc_mpddata_model_get_playtime	(GmpcMpdDataModel * self);
gint 	gmpc_mpddata_model_get_pos	(GmpcMpdDataModel * self,
					GtkTreeIter * iter);
void 	gmpc_mpddata_model_disable_image	(GmpcMpdDataModel * self);
MpdData * 	gmpc_mpddata_model_steal_mpd_data	(GmpcMpdDataModel * self);

/*
 * Signal connection wrapper macros
 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define gmpc_mpddata_model_connect__playtime_changed(object,func,data)	g_signal_connect(GMPC_MPDDATA_MODEL(__extension__ ({GmpcMpdDataModel *___object = (object); ___object; })),"playtime_changed",(GCallback) __extension__ ({void (* ___playtime_changed) (GmpcMpdDataModel * ___fake___self, gulong ___fake___playtime, gpointer ___data ) = (func); ___playtime_changed; }), (data))
#define gmpc_mpddata_model_connect_after__playtime_changed(object,func,data)	g_signal_connect_after(GMPC_MPDDATA_MODEL(__extension__ ({GmpcMpdDataModel *___object = (object); ___object; })),"playtime_changed",(GCallback) __extension__ ({void (* ___playtime_changed) (GmpcMpdDataModel * ___fake___self, gulong ___fake___playtime, gpointer ___data ) = (func); ___playtime_changed; }), (data))
#define gmpc_mpddata_model_connect_data__playtime_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_MPDDATA_MODEL(__extension__ ({GmpcMpdDataModel *___object = (object); ___object; })),"playtime_changed",(GCallback) __extension__ ({void (* ___playtime_changed) (GmpcMpdDataModel * ___fake___self, gulong ___fake___playtime, gpointer ___data ) = (func); ___playtime_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define gmpc_mpddata_model_connect__playtime_changed(object,func,data)	g_signal_connect(GMPC_MPDDATA_MODEL(object),"playtime_changed",(GCallback)(func),(data))
#define gmpc_mpddata_model_connect_after__playtime_changed(object,func,data)	g_signal_connect_after(GMPC_MPDDATA_MODEL(object),"playtime_changed",(GCallback)(func),(data))
#define gmpc_mpddata_model_connect_data__playtime_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_MPDDATA_MODEL(object),"playtime_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#endif /* __GNUC__ && !__STRICT_ANSI__ */


/*
 * Argument wrapping macros
 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define GMPC_MPDDATA_MODEL_PROP_HAS_UP(arg)    	"has_up", __extension__ ({gboolean z = (arg); z;})
#define GMPC_MPDDATA_MODEL_GET_PROP_HAS_UP(arg)	"has_up", __extension__ ({gboolean *z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define GMPC_MPDDATA_MODEL_PROP_HAS_UP(arg)    	"has_up",(gboolean )(arg)
#define GMPC_MPDDATA_MODEL_GET_PROP_HAS_UP(arg)	"has_up",(gboolean *)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
