/* games-dreamcast-plugin.h generated by valac 0.56.18-dirty, the Vala compiler, do not modify */

#ifndef __PLUGINS_DREAMCAST_SRC_GAMES_DREAMCAST_PLUGIN_H__
#define __PLUGINS_DREAMCAST_SRC_GAMES_DREAMCAST_PLUGIN_H__

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

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define GAMES_TYPE_GDI (games_gdi_get_type ())
#define GAMES_GDI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAMES_TYPE_GDI, GamesGdi))
#define GAMES_GDI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAMES_TYPE_GDI, GamesGdiClass))
#define GAMES_IS_GDI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAMES_TYPE_GDI))
#define GAMES_IS_GDI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAMES_TYPE_GDI))
#define GAMES_GDI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAMES_TYPE_GDI, GamesGdiClass))

typedef struct _GamesGdi GamesGdi;
typedef struct _GamesGdiClass GamesGdiClass;
typedef struct _GamesGdiPrivate GamesGdiPrivate;

#define GAMES_GDI_TYPE_TRACK_NODE (games_gdi_track_node_get_type ())
typedef struct _GamesGdiTrackNode GamesGdiTrackNode;

struct _GamesGdi {
	GObject parent_instance;
	GamesGdiPrivate * priv;
};

struct _GamesGdiClass {
	GObjectClass parent_class;
};

struct _GamesGdiTrackNode {
	GFile* file;
	gint track_number;
};

VALA_EXTERN GType register_games_plugin (GTypeModule* module);
GType games_gdi_register_type (GTypeModule * module);
VALA_EXTERN GType games_gdi_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GamesGdi, g_object_unref)
VALA_EXTERN GamesGdi* games_gdi_new (GFile* file);
VALA_EXTERN GamesGdi* games_gdi_construct (GType object_type,
                               GFile* file);
VALA_EXTERN GType games_gdi_track_node_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GamesGdiTrackNode* games_gdi_track_node_dup (const GamesGdiTrackNode* self);
VALA_EXTERN void games_gdi_track_node_free (GamesGdiTrackNode* self);
VALA_EXTERN void games_gdi_track_node_copy (const GamesGdiTrackNode* self,
                                GamesGdiTrackNode* dest);
VALA_EXTERN void games_gdi_track_node_destroy (GamesGdiTrackNode* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (GamesGdiTrackNode, games_gdi_track_node_destroy)
VALA_EXTERN void games_gdi_get_track (GamesGdi* self,
                          guint i,
                          GamesGdiTrackNode* result,
                          GError** error);
VALA_EXTERN void games_gdi_parse (GamesGdi* self,
                      GError** error);
VALA_EXTERN GFile* games_gdi_get_file (GamesGdi* self);
VALA_EXTERN guint games_gdi_get_tracks_number (GamesGdi* self);

G_END_DECLS

#endif
