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

#ifndef __SRC_MEDIA_ENGINES_GSTREAMER_RYGEL_MEDIA_ENGINE_GST_H__
#define __SRC_MEDIA_ENGINES_GSTREAMER_RYGEL_MEDIA_ENGINE_GST_H__

#include "rygel-server.h"
#include <glib-object.h>
#include <gio/gio.h>
#include <gst/gst.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 RYGEL_TYPE_GST_MEDIA_ENGINE (rygel_gst_media_engine_get_type ())
#define RYGEL_GST_MEDIA_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_GST_MEDIA_ENGINE, RygelGstMediaEngine))
#define RYGEL_GST_MEDIA_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_GST_MEDIA_ENGINE, RygelGstMediaEngineClass))
#define RYGEL_IS_GST_MEDIA_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_GST_MEDIA_ENGINE))
#define RYGEL_IS_GST_MEDIA_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_GST_MEDIA_ENGINE))
#define RYGEL_GST_MEDIA_ENGINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_GST_MEDIA_ENGINE, RygelGstMediaEngineClass))

typedef struct _RygelGstMediaEngine RygelGstMediaEngine;
typedef struct _RygelGstMediaEngineClass RygelGstMediaEngineClass;
typedef struct _RygelGstMediaEnginePrivate RygelGstMediaEnginePrivate;

#define RYGEL_TYPE_GST_TRANSCODER_ERROR (rygel_gst_transcoder_error_get_type ())

struct _RygelGstMediaEngine {
	RygelMediaEngine parent_instance;
	RygelGstMediaEnginePrivate * priv;
};

struct _RygelGstMediaEngineClass {
	RygelMediaEngineClass parent_class;
};

typedef enum  {
	RYGEL_GST_TRANSCODER_ERROR_CANT_TRANSCODE
} RygelGstTranscoderError;
#define RYGEL_GST_TRANSCODER_ERROR rygel_gst_transcoder_error_quark ()

VALA_EXTERN GType rygel_gst_media_engine_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelGstMediaEngine, g_object_unref)
VALA_EXTERN RygelGstMediaEngine* rygel_gst_media_engine_new (void);
VALA_EXTERN RygelGstMediaEngine* rygel_gst_media_engine_construct (GType object_type);
VALA_EXTERN RygelDataSource* rygel_gst_media_engine_create_data_source_from_element (RygelGstMediaEngine* self,
                                                                         GstElement* element);
VALA_EXTERN RygelMediaEngine* module_get_instance (void);
VALA_EXTERN GQuark rygel_gst_transcoder_error_quark (void);
VALA_EXTERN GType rygel_gst_transcoder_error_get_type (void) G_GNUC_CONST ;

G_END_DECLS

#endif
