/* rygel-mpris.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SRC_PLUGINS_MPRIS_RYGEL_MPRIS_H__
#define __SRC_PLUGINS_MPRIS_RYGEL_MPRIS_H__

#include <glib-object.h>
#include "rygel-renderer.h"
#include <glib.h>
#include <float.h>
#include <math.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include "rygel-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 RYGEL_MPRIS_PLUGIN_MODULE_NAME "MPRIS"
#define RYGEL_MPRIS_MEDIA_PLAYER_PROXY_IFACE "org.mpris.MediaPlayer2"
#define RYGEL_MPRIS_MEDIA_PLAYER_PLAYER_PROXY_IFACE "org.mpris.MediaPlayer2.Player"

#define RYGEL_MPRIS_TYPE_PLAYER (rygel_mpris_player_get_type ())
#define RYGEL_MPRIS_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MPRIS_TYPE_PLAYER, RygelMPRISPlayer))
#define RYGEL_MPRIS_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MPRIS_TYPE_PLAYER, RygelMPRISPlayerClass))
#define RYGEL_MPRIS_IS_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MPRIS_TYPE_PLAYER))
#define RYGEL_MPRIS_IS_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MPRIS_TYPE_PLAYER))
#define RYGEL_MPRIS_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MPRIS_TYPE_PLAYER, RygelMPRISPlayerClass))

typedef struct _RygelMPRISPlayer RygelMPRISPlayer;
typedef struct _RygelMPRISPlayerClass RygelMPRISPlayerClass;
typedef struct _RygelMPRISPlayerPrivate RygelMPRISPlayerPrivate;

#define RYGEL_MPRIS_TYPE_PLUGIN (rygel_mpris_plugin_get_type ())
#define RYGEL_MPRIS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MPRIS_TYPE_PLUGIN, RygelMPRISPlugin))
#define RYGEL_MPRIS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MPRIS_TYPE_PLUGIN, RygelMPRISPluginClass))
#define RYGEL_MPRIS_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MPRIS_TYPE_PLUGIN))
#define RYGEL_MPRIS_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MPRIS_TYPE_PLUGIN))
#define RYGEL_MPRIS_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MPRIS_TYPE_PLUGIN, RygelMPRISPluginClass))

typedef struct _RygelMPRISPlugin RygelMPRISPlugin;
typedef struct _RygelMPRISPluginClass RygelMPRISPluginClass;
typedef struct _RygelMPRISPluginPrivate RygelMPRISPluginPrivate;

#define RYGEL_MPRIS_MEDIA_PLAYER_TYPE_PLAYER_PROXY (rygel_mpris_media_player_player_proxy_get_type ())
#define RYGEL_MPRIS_MEDIA_PLAYER_PLAYER_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MPRIS_MEDIA_PLAYER_TYPE_PLAYER_PROXY, RygelMPRISMediaPlayerPlayerProxy))
#define RYGEL_MPRIS_MEDIA_PLAYER_IS_PLAYER_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MPRIS_MEDIA_PLAYER_TYPE_PLAYER_PROXY))
#define RYGEL_MPRIS_MEDIA_PLAYER_PLAYER_PROXY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_MPRIS_MEDIA_PLAYER_TYPE_PLAYER_PROXY, RygelMPRISMediaPlayerPlayerProxyIface))

typedef struct _RygelMPRISMediaPlayerPlayerProxy RygelMPRISMediaPlayerPlayerProxy;
typedef struct _RygelMPRISMediaPlayerPlayerProxyIface RygelMPRISMediaPlayerPlayerProxyIface;

#define RYGEL_MPRIS_TYPE_MEDIA_PLAYER_PROXY (rygel_mpris_media_player_proxy_get_type ())
#define RYGEL_MPRIS_MEDIA_PLAYER_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MPRIS_TYPE_MEDIA_PLAYER_PROXY, RygelMPRISMediaPlayerProxy))
#define RYGEL_MPRIS_IS_MEDIA_PLAYER_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MPRIS_TYPE_MEDIA_PLAYER_PROXY))
#define RYGEL_MPRIS_MEDIA_PLAYER_PROXY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_MPRIS_TYPE_MEDIA_PLAYER_PROXY, RygelMPRISMediaPlayerProxyIface))

typedef struct _RygelMPRISMediaPlayerProxy RygelMPRISMediaPlayerProxy;
typedef struct _RygelMPRISMediaPlayerProxyIface RygelMPRISMediaPlayerProxyIface;

#define RYGEL_MPRIS_TYPE_MEDIA_PLAYER_PROXY_PROXY (rygel_mpris_media_player_proxy_proxy_get_type ())

#define RYGEL_MPRIS_MEDIA_PLAYER_TYPE_PLAYER_PROXY_PROXY (rygel_mpris_media_player_player_proxy_proxy_get_type ())

#define RYGEL_MPRIS_TYPE_PLUGIN_FACTORY (rygel_mpris_plugin_factory_get_type ())
#define RYGEL_MPRIS_PLUGIN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MPRIS_TYPE_PLUGIN_FACTORY, RygelMPRISPluginFactory))
#define RYGEL_MPRIS_PLUGIN_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MPRIS_TYPE_PLUGIN_FACTORY, RygelMPRISPluginFactoryClass))
#define RYGEL_MPRIS_IS_PLUGIN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MPRIS_TYPE_PLUGIN_FACTORY))
#define RYGEL_MPRIS_IS_PLUGIN_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MPRIS_TYPE_PLUGIN_FACTORY))
#define RYGEL_MPRIS_PLUGIN_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MPRIS_TYPE_PLUGIN_FACTORY, RygelMPRISPluginFactoryClass))

typedef struct _RygelMPRISPluginFactory RygelMPRISPluginFactory;
typedef struct _RygelMPRISPluginFactoryClass RygelMPRISPluginFactoryClass;
typedef struct _RygelMPRISPluginFactoryPrivate RygelMPRISPluginFactoryPrivate;

struct _RygelMPRISPlayer {
	GObject parent_instance;
	RygelMPRISPlayerPrivate * priv;
};

struct _RygelMPRISPlayerClass {
	GObjectClass parent_class;
};

struct _RygelMPRISMediaPlayerProxyIface {
	GTypeInterface parent_iface;
	gchar* (*get_identity) (RygelMPRISMediaPlayerProxy* self);
	gchar** (*get_supported_uri_schemes) (RygelMPRISMediaPlayerProxy* self, gint* result_length1);
	gchar** (*get_supported_mime_types) (RygelMPRISMediaPlayerProxy* self, gint* result_length1);
};

struct _RygelMPRISMediaPlayerPlayerProxyIface {
	GTypeInterface parent_iface;
	void (*pause) (RygelMPRISMediaPlayerPlayerProxy* self, GError** error);
	void (*play_pause) (RygelMPRISMediaPlayerPlayerProxy* self, GError** error);
	void (*stop) (RygelMPRISMediaPlayerPlayerProxy* self, GError** error);
	void (*play) (RygelMPRISMediaPlayerPlayerProxy* self, GError** error);
	void (*seek) (RygelMPRISMediaPlayerPlayerProxy* self, gint64 offset, GError** error);
	void (*open_uri) (RygelMPRISMediaPlayerPlayerProxy* self, const gchar* uri, GError** error);
	gchar* (*get_playback_status) (RygelMPRISMediaPlayerPlayerProxy* self);
	gdouble (*get_rate) (RygelMPRISMediaPlayerPlayerProxy* self);
	void (*set_rate) (RygelMPRISMediaPlayerPlayerProxy* self, gdouble value);
	gdouble (*get_minimum_rate) (RygelMPRISMediaPlayerPlayerProxy* self);
	gdouble (*get_maximum_rate) (RygelMPRISMediaPlayerPlayerProxy* self);
	gdouble (*get_volume) (RygelMPRISMediaPlayerPlayerProxy* self);
	void (*set_volume) (RygelMPRISMediaPlayerPlayerProxy* self, gdouble value);
	gint64 (*get_position) (RygelMPRISMediaPlayerPlayerProxy* self);
	gboolean (*get_can_seek) (RygelMPRISMediaPlayerPlayerProxy* self);
	gboolean (*get_can_control) (RygelMPRISMediaPlayerPlayerProxy* self);
	GHashTable* (*get_metadata) (RygelMPRISMediaPlayerPlayerProxy* self);
};

struct _RygelMPRISPlugin {
	RygelMediaRendererPlugin parent_instance;
	RygelMPRISPluginPrivate * priv;
	RygelMPRISMediaPlayerPlayerProxy* actual_player;
	gchar** mime_types;
	gint mime_types_length1;
	gchar** protocols;
	gint protocols_length1;
};

struct _RygelMPRISPluginClass {
	RygelMediaRendererPluginClass parent_class;
};

struct _RygelMPRISPluginFactory {
	GTypeInstance parent_instance;
	volatile int ref_count;
	RygelMPRISPluginFactoryPrivate * priv;
};

struct _RygelMPRISPluginFactoryClass {
	GTypeClass parent_class;
	void (*finalize) (RygelMPRISPluginFactory *self);
};

VALA_EXTERN GType rygel_mpris_player_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMPRISPlayer, g_object_unref)
VALA_EXTERN GType rygel_mpris_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMPRISPlugin, g_object_unref)
VALA_EXTERN RygelMPRISPlayer* rygel_mpris_player_new (RygelMPRISPlugin* plugin);
VALA_EXTERN RygelMPRISPlayer* rygel_mpris_player_construct (GType object_type,
                                                RygelMPRISPlugin* plugin);
VALA_EXTERN gdouble rygel_mpris_player_get_minimum_rate (RygelMPRISPlayer* self);
VALA_EXTERN gdouble rygel_mpris_player_get_maximum_rate (RygelMPRISPlayer* self);
VALA_EXTERN GType rygel_mpris_media_player_proxy_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMPRISMediaPlayerProxy, g_object_unref)
VALA_EXTERN GType rygel_mpris_media_player_proxy_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint rygel_mpris_media_player_proxy_register_object (void* object,
                                                      GDBusConnection* connection,
                                                      const gchar* path,
                                                      GError** error);
VALA_EXTERN GType rygel_mpris_media_player_player_proxy_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint rygel_mpris_media_player_player_proxy_register_object (void* object,
                                                             GDBusConnection* connection,
                                                             const gchar* path,
                                                             GError** error);
VALA_EXTERN GType rygel_mpris_media_player_player_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN RygelMPRISPlugin* rygel_mpris_plugin_new (const gchar* service_name,
                                          RygelMPRISMediaPlayerPlayerProxy* actual_player);
VALA_EXTERN RygelMPRISPlugin* rygel_mpris_plugin_construct (GType object_type,
                                                const gchar* service_name,
                                                RygelMPRISMediaPlayerPlayerProxy* actual_player);
VALA_EXTERN void module_init (RygelPluginLoader* loader);
VALA_EXTERN gpointer rygel_mpris_plugin_factory_ref (gpointer instance);
VALA_EXTERN void rygel_mpris_plugin_factory_unref (gpointer instance);
VALA_EXTERN GParamSpec* rygel_mpris_param_spec_plugin_factory (const gchar* name,
                                                   const gchar* nick,
                                                   const gchar* blurb,
                                                   GType object_type,
                                                   GParamFlags flags);
VALA_EXTERN void rygel_mpris_value_set_plugin_factory (GValue* value,
                                           gpointer v_object);
VALA_EXTERN void rygel_mpris_value_take_plugin_factory (GValue* value,
                                            gpointer v_object);
VALA_EXTERN gpointer rygel_mpris_value_get_plugin_factory (const GValue* value);
VALA_EXTERN GType rygel_mpris_plugin_factory_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMPRISPluginFactory, rygel_mpris_plugin_factory_unref)
VALA_EXTERN RygelMPRISPluginFactory* rygel_mpris_plugin_factory_new (RygelPluginLoader* loader,
                                                         GError** error);
VALA_EXTERN RygelMPRISPluginFactory* rygel_mpris_plugin_factory_construct (GType object_type,
                                                               RygelPluginLoader* loader,
                                                               GError** error);
VALA_EXTERN gchar* rygel_mpris_media_player_proxy_get_identity (RygelMPRISMediaPlayerProxy* self);
VALA_EXTERN gchar** rygel_mpris_media_player_proxy_get_supported_uri_schemes (RygelMPRISMediaPlayerProxy* self,
                                                                  gint* result_length1);
VALA_EXTERN gchar** rygel_mpris_media_player_proxy_get_supported_mime_types (RygelMPRISMediaPlayerProxy* self,
                                                                 gint* result_length1);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_pause (RygelMPRISMediaPlayerPlayerProxy* self,
                                                  GError** error);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_play_pause (RygelMPRISMediaPlayerPlayerProxy* self,
                                                       GError** error);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_stop (RygelMPRISMediaPlayerPlayerProxy* self,
                                                 GError** error);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_play (RygelMPRISMediaPlayerPlayerProxy* self,
                                                 GError** error);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_seek (RygelMPRISMediaPlayerPlayerProxy* self,
                                                 gint64 offset,
                                                 GError** error);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_open_uri (RygelMPRISMediaPlayerPlayerProxy* self,
                                                     const gchar* uri,
                                                     GError** error);
VALA_EXTERN gchar* rygel_mpris_media_player_player_proxy_get_playback_status (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN gdouble rygel_mpris_media_player_player_proxy_get_rate (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_set_rate (RygelMPRISMediaPlayerPlayerProxy* self,
                                                     gdouble value);
VALA_EXTERN gdouble rygel_mpris_media_player_player_proxy_get_minimum_rate (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN gdouble rygel_mpris_media_player_player_proxy_get_maximum_rate (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN gdouble rygel_mpris_media_player_player_proxy_get_volume (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN void rygel_mpris_media_player_player_proxy_set_volume (RygelMPRISMediaPlayerPlayerProxy* self,
                                                       gdouble value);
VALA_EXTERN gint64 rygel_mpris_media_player_player_proxy_get_position (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN gboolean rygel_mpris_media_player_player_proxy_get_can_seek (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN gboolean rygel_mpris_media_player_player_proxy_get_can_control (RygelMPRISMediaPlayerPlayerProxy* self);
VALA_EXTERN GHashTable* rygel_mpris_media_player_player_proxy_get_metadata (RygelMPRISMediaPlayerPlayerProxy* self);

G_END_DECLS

#endif
