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

#ifndef __SRC_LIBRYGEL_RENDERER_GST_RYGEL_RENDERER_GST_H__
#define __SRC_LIBRYGEL_RENDERER_GST_RYGEL_RENDERER_GST_H__

#include <glib.h>
#include <glib-object.h>
#include "rygel-renderer.h"
#include <gst/gst.h>
#include "rygel-core.h"
#include <stdlib.h>
#include <string.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_TYPE_PLAYBIN_PLAYER_ERROR (rygel_playbin_player_error_get_type ())

#define RYGEL_TYPE_PLAYBIN_PLAYER (rygel_playbin_player_get_type ())
#define RYGEL_PLAYBIN_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_PLAYBIN_PLAYER, RygelPlaybinPlayer))
#define RYGEL_PLAYBIN_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_PLAYBIN_PLAYER, RygelPlaybinPlayerClass))
#define RYGEL_IS_PLAYBIN_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_PLAYBIN_PLAYER))
#define RYGEL_IS_PLAYBIN_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_PLAYBIN_PLAYER))
#define RYGEL_PLAYBIN_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_PLAYBIN_PLAYER, RygelPlaybinPlayerClass))

typedef struct _RygelPlaybinPlayer RygelPlaybinPlayer;
typedef struct _RygelPlaybinPlayerClass RygelPlaybinPlayerClass;
typedef struct _RygelPlaybinPlayerPrivate RygelPlaybinPlayerPrivate;

#define RYGEL_TYPE_PLAYBIN_RENDERER (rygel_playbin_renderer_get_type ())
#define RYGEL_PLAYBIN_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_PLAYBIN_RENDERER, RygelPlaybinRenderer))
#define RYGEL_PLAYBIN_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_PLAYBIN_RENDERER, RygelPlaybinRendererClass))
#define RYGEL_IS_PLAYBIN_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_PLAYBIN_RENDERER))
#define RYGEL_IS_PLAYBIN_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_PLAYBIN_RENDERER))
#define RYGEL_PLAYBIN_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_PLAYBIN_RENDERER, RygelPlaybinRendererClass))

typedef struct _RygelPlaybinRenderer RygelPlaybinRenderer;
typedef struct _RygelPlaybinRendererClass RygelPlaybinRendererClass;
typedef struct _RygelPlaybinRendererPrivate RygelPlaybinRendererPrivate;

typedef enum  {
	RYGEL_PLAYBIN_PLAYER_ERROR_NO_ELEMENT
} RygelPlaybinPlayerError;
#define RYGEL_PLAYBIN_PLAYER_ERROR rygel_playbin_player_error_quark ()

struct _RygelPlaybinPlayer {
	GObject parent_instance;
	RygelPlaybinPlayerPrivate * priv;
};

struct _RygelPlaybinPlayerClass {
	GObjectClass parent_class;
};

struct _RygelPlaybinRenderer {
	RygelMediaRenderer parent_instance;
	RygelPlaybinRendererPrivate * priv;
};

struct _RygelPlaybinRendererClass {
	RygelMediaRendererClass parent_class;
};

VALA_EXTERN GQuark rygel_playbin_player_error_quark (void);
VALA_EXTERN GType rygel_playbin_player_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType rygel_playbin_player_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelPlaybinPlayer, g_object_unref)
VALA_EXTERN RygelPlaybinPlayer* rygel_playbin_player_instance (GError** error);
VALA_EXTERN GstElement* rygel_playbin_player_get_playbin (RygelPlaybinPlayer* self);
VALA_EXTERN GList* rygel_playbin_player_get_supported_profiles (RygelPlaybinPlayer* self);
VALA_EXTERN GType rygel_playbin_renderer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelPlaybinRenderer, g_object_unref)
VALA_EXTERN RygelPlaybinRenderer* rygel_playbin_renderer_new (const gchar* title);
VALA_EXTERN RygelPlaybinRenderer* rygel_playbin_renderer_construct (GType object_type,
                                                        const gchar* title);
VALA_EXTERN GstElement* rygel_playbin_renderer_get_playbin (RygelPlaybinRenderer* self);

G_END_DECLS

#endif
