/* ft_plugin_mpris.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SRC_PLUGINS_MPRIS_FT_PLUGIN_MPRIS_H__
#define __SRC_PLUGINS_MPRIS_FT_PLUGIN_MPRIS_H__

#include "ft_ui.h"
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.h>
#include "ft_core.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 MPRIS_DBUS_NAME_PREFIX "org.mpris.MediaPlayer2."

#define MPRIS_TYPE_APPLICATION_EXTENSION (mpris_application_extension_get_type ())
#define MPRIS_APPLICATION_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MPRIS_TYPE_APPLICATION_EXTENSION, MprisApplicationExtension))
#define MPRIS_APPLICATION_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MPRIS_TYPE_APPLICATION_EXTENSION, MprisApplicationExtensionClass))
#define MPRIS_IS_APPLICATION_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MPRIS_TYPE_APPLICATION_EXTENSION))
#define MPRIS_IS_APPLICATION_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MPRIS_TYPE_APPLICATION_EXTENSION))
#define MPRIS_APPLICATION_EXTENSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MPRIS_TYPE_APPLICATION_EXTENSION, MprisApplicationExtensionClass))

typedef struct _MprisApplicationExtension MprisApplicationExtension;
typedef struct _MprisApplicationExtensionClass MprisApplicationExtensionClass;
typedef struct _MprisApplicationExtensionPrivate MprisApplicationExtensionPrivate;
typedef enum  {
	MPRIS_PLAYBACK_STATUS_UNKNOWN,
	MPRIS_PLAYBACK_STATUS_STOPPED,
	MPRIS_PLAYBACK_STATUS_PLAYING,
	MPRIS_PLAYBACK_STATUS_PAUSED
} MprisPlaybackStatus;

#define MPRIS_TYPE_PLAYBACK_STATUS (mpris_playback_status_get_type ())

#define MPRIS_TYPE_PLAYER (mpris_player_get_type ())
#define MPRIS_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MPRIS_TYPE_PLAYER, MprisPlayer))
#define MPRIS_IS_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MPRIS_TYPE_PLAYER))
#define MPRIS_PLAYER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MPRIS_TYPE_PLAYER, MprisPlayerIface))

typedef struct _MprisPlayer MprisPlayer;
typedef struct _MprisPlayerIface MprisPlayerIface;

#define MPRIS_TYPE_PLAYER_PROXY (mpris_player_proxy_get_type ())

#define MPRIS_TYPE_PLAYER_WRAPPER (mpris_player_wrapper_get_type ())
#define MPRIS_PLAYER_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MPRIS_TYPE_PLAYER_WRAPPER, MprisPlayerWrapper))
#define MPRIS_PLAYER_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MPRIS_TYPE_PLAYER_WRAPPER, MprisPlayerWrapperClass))
#define MPRIS_IS_PLAYER_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MPRIS_TYPE_PLAYER_WRAPPER))
#define MPRIS_IS_PLAYER_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MPRIS_TYPE_PLAYER_WRAPPER))
#define MPRIS_PLAYER_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MPRIS_TYPE_PLAYER_WRAPPER, MprisPlayerWrapperClass))

typedef struct _MprisPlayerWrapper MprisPlayerWrapper;
typedef struct _MprisPlayerWrapperClass MprisPlayerWrapperClass;
typedef struct _MprisPlayerWrapperPrivate MprisPlayerWrapperPrivate;

#define MPRIS_TYPE_PREFERENCES_WINDOW_EXTENSION (mpris_preferences_window_extension_get_type ())
#define MPRIS_PREFERENCES_WINDOW_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MPRIS_TYPE_PREFERENCES_WINDOW_EXTENSION, MprisPreferencesWindowExtension))
#define MPRIS_PREFERENCES_WINDOW_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MPRIS_TYPE_PREFERENCES_WINDOW_EXTENSION, MprisPreferencesWindowExtensionClass))
#define MPRIS_IS_PREFERENCES_WINDOW_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MPRIS_TYPE_PREFERENCES_WINDOW_EXTENSION))
#define MPRIS_IS_PREFERENCES_WINDOW_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MPRIS_TYPE_PREFERENCES_WINDOW_EXTENSION))
#define MPRIS_PREFERENCES_WINDOW_EXTENSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MPRIS_TYPE_PREFERENCES_WINDOW_EXTENSION, MprisPreferencesWindowExtensionClass))

typedef struct _MprisPreferencesWindowExtension MprisPreferencesWindowExtension;
typedef struct _MprisPreferencesWindowExtensionClass MprisPreferencesWindowExtensionClass;
typedef struct _MprisPreferencesWindowExtensionPrivate MprisPreferencesWindowExtensionPrivate;

struct _MprisApplicationExtension {
	FtApplicationExtension parent_instance;
	MprisApplicationExtensionPrivate * priv;
};

struct _MprisApplicationExtensionClass {
	FtApplicationExtensionClass parent_class;
};

struct _MprisPlayerIface {
	GTypeInterface parent_iface;
	void (*play) (MprisPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*play_finish) (MprisPlayer* self, GAsyncResult* _res_, GError** error);
	void (*play_pause) (MprisPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*play_pause_finish) (MprisPlayer* self, GAsyncResult* _res_, GError** error);
	void (*pause) (MprisPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*pause_finish) (MprisPlayer* self, GAsyncResult* _res_, GError** error);
	void (*seek) (MprisPlayer* self, gint64 offset, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*seek_finish) (MprisPlayer* self, GAsyncResult* _res_, GError** error);
	gchar* (*get_playback_status) (MprisPlayer* self);
	gboolean (*get_can_play) (MprisPlayer* self);
	gboolean (*get_can_pause) (MprisPlayer* self);
	gboolean (*get_can_seek) (MprisPlayer* self);
};

struct _MprisPlayerWrapper {
	GObject parent_instance;
	MprisPlayerWrapperPrivate * priv;
	FtState associated_state;
	gboolean auto_paused;
};

struct _MprisPlayerWrapperClass {
	GObjectClass parent_class;
};

struct _MprisPreferencesWindowExtension {
	FtPreferencesWindowExtension parent_instance;
	MprisPreferencesWindowExtensionPrivate * priv;
};

struct _MprisPreferencesWindowExtensionClass {
	FtPreferencesWindowExtensionClass parent_class;
};

GType mpris_application_extension_register_type (GTypeModule * module);
VALA_EXTERN GType mpris_application_extension_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MprisApplicationExtension, g_object_unref)
VALA_EXTERN MprisApplicationExtension* mpris_application_extension_new (void);
VALA_EXTERN MprisApplicationExtension* mpris_application_extension_construct (GType object_type);
VALA_EXTERN GType mpris_playback_status_get_type (void) G_GNUC_CONST ;
VALA_EXTERN MprisPlaybackStatus mpris_playback_status_from_string (const gchar* status);
VALA_EXTERN GType mpris_player_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void mpris_player_proxy_register_dynamic_type (GTypeModule* module);
VALA_EXTERN guint mpris_player_register_object (void* object,
                                    GDBusConnection* connection,
                                    const gchar* path,
                                    GError** error);
GType mpris_player_register_type (GTypeModule * module);
VALA_EXTERN GType mpris_player_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MprisPlayer, g_object_unref)
VALA_EXTERN void mpris_player_play (MprisPlayer* self,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void mpris_player_play_finish (MprisPlayer* self,
                               GAsyncResult* _res_,
                               GError** error);
VALA_EXTERN void mpris_player_play_pause (MprisPlayer* self,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN void mpris_player_play_pause_finish (MprisPlayer* self,
                                     GAsyncResult* _res_,
                                     GError** error);
VALA_EXTERN void mpris_player_pause (MprisPlayer* self,
                         GAsyncReadyCallback _callback_,
                         gpointer _user_data_);
VALA_EXTERN void mpris_player_pause_finish (MprisPlayer* self,
                                GAsyncResult* _res_,
                                GError** error);
VALA_EXTERN void mpris_player_seek (MprisPlayer* self,
                        gint64 offset,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void mpris_player_seek_finish (MprisPlayer* self,
                               GAsyncResult* _res_,
                               GError** error);
VALA_EXTERN gchar* mpris_player_get_playback_status (MprisPlayer* self);
VALA_EXTERN gboolean mpris_player_get_can_play (MprisPlayer* self);
VALA_EXTERN gboolean mpris_player_get_can_pause (MprisPlayer* self);
VALA_EXTERN gboolean mpris_player_get_can_seek (MprisPlayer* self);
VALA_EXTERN void mpris_peas_register_types (GTypeModule* module);
GType mpris_player_wrapper_register_type (GTypeModule * module);
VALA_EXTERN GType mpris_player_wrapper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MprisPlayerWrapper, g_object_unref)
VALA_EXTERN MprisPlayerWrapper* mpris_player_wrapper_new (const gchar* dbus_name,
                                              GCancellable* cancellable);
VALA_EXTERN MprisPlayerWrapper* mpris_player_wrapper_construct (GType object_type,
                                                    const gchar* dbus_name,
                                                    GCancellable* cancellable);
VALA_EXTERN gboolean mpris_player_wrapper_is_pausing (MprisPlayerWrapper* self);
VALA_EXTERN gboolean mpris_player_wrapper_is_resuming (MprisPlayerWrapper* self);
VALA_EXTERN void mpris_player_wrapper_pause (MprisPlayerWrapper* self,
                                 GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
VALA_EXTERN gboolean mpris_player_wrapper_pause_finish (MprisPlayerWrapper* self,
                                            GAsyncResult* _res_);
VALA_EXTERN void mpris_player_wrapper_resume (MprisPlayerWrapper* self,
                                  GAsyncReadyCallback _callback_,
                                  gpointer _user_data_);
VALA_EXTERN gboolean mpris_player_wrapper_resume_finish (MprisPlayerWrapper* self,
                                             GAsyncResult* _res_);
VALA_EXTERN MprisPlaybackStatus mpris_player_wrapper_get_status (MprisPlayerWrapper* self);
VALA_EXTERN gboolean mpris_player_wrapper_get_can_pause (MprisPlayerWrapper* self);
GType mpris_preferences_window_extension_register_type (GTypeModule * module);
VALA_EXTERN GType mpris_preferences_window_extension_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MprisPreferencesWindowExtension, g_object_unref)
VALA_EXTERN MprisPreferencesWindowExtension* mpris_preferences_window_extension_new (void);
VALA_EXTERN MprisPreferencesWindowExtension* mpris_preferences_window_extension_construct (GType object_type);

G_END_DECLS

#endif
