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

#ifndef __SRC_PLUGINS_GST_LAUNCH_RYGEL_GST_LAUNCH_H__
#define __SRC_PLUGINS_GST_LAUNCH_RYGEL_GST_LAUNCH_H__

#include "rygel-core.h"
#include "rygel-server.h"
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>

G_BEGIN_DECLS

#define RYGEL_GST_LAUNCH_PLUGIN_NAME "GstLaunch"
#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_GST_LAUNCH_TYPE_PLUGIN (rygel_gst_launch_plugin_get_type ())
#define RYGEL_GST_LAUNCH_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_GST_LAUNCH_TYPE_PLUGIN, RygelGstLaunchPlugin))
#define RYGEL_GST_LAUNCH_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_GST_LAUNCH_TYPE_PLUGIN, RygelGstLaunchPluginClass))
#define RYGEL_GST_LAUNCH_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_GST_LAUNCH_TYPE_PLUGIN))
#define RYGEL_GST_LAUNCH_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_GST_LAUNCH_TYPE_PLUGIN))
#define RYGEL_GST_LAUNCH_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_GST_LAUNCH_TYPE_PLUGIN, RygelGstLaunchPluginClass))

typedef struct _RygelGstLaunchPlugin RygelGstLaunchPlugin;
typedef struct _RygelGstLaunchPluginClass RygelGstLaunchPluginClass;
typedef struct _RygelGstLaunchPluginPrivate RygelGstLaunchPluginPrivate;

#define RYGEL_GST_LAUNCH_TYPE_ROOT_CONTAINER (rygel_gst_launch_root_container_get_type ())
#define RYGEL_GST_LAUNCH_ROOT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_GST_LAUNCH_TYPE_ROOT_CONTAINER, RygelGstLaunchRootContainer))
#define RYGEL_GST_LAUNCH_ROOT_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_GST_LAUNCH_TYPE_ROOT_CONTAINER, RygelGstLaunchRootContainerClass))
#define RYGEL_GST_LAUNCH_IS_ROOT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_GST_LAUNCH_TYPE_ROOT_CONTAINER))
#define RYGEL_GST_LAUNCH_IS_ROOT_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_GST_LAUNCH_TYPE_ROOT_CONTAINER))
#define RYGEL_GST_LAUNCH_ROOT_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_GST_LAUNCH_TYPE_ROOT_CONTAINER, RygelGstLaunchRootContainerClass))

typedef struct _RygelGstLaunchRootContainer RygelGstLaunchRootContainer;
typedef struct _RygelGstLaunchRootContainerClass RygelGstLaunchRootContainerClass;
typedef struct _RygelGstLaunchRootContainerPrivate RygelGstLaunchRootContainerPrivate;

#define RYGEL_GST_LAUNCH_TYPE_AUDIO_ITEM (rygel_gst_launch_audio_item_get_type ())
#define RYGEL_GST_LAUNCH_AUDIO_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_GST_LAUNCH_TYPE_AUDIO_ITEM, RygelGstLaunchAudioItem))
#define RYGEL_GST_LAUNCH_AUDIO_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_GST_LAUNCH_TYPE_AUDIO_ITEM, RygelGstLaunchAudioItemClass))
#define RYGEL_GST_LAUNCH_IS_AUDIO_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_GST_LAUNCH_TYPE_AUDIO_ITEM))
#define RYGEL_GST_LAUNCH_IS_AUDIO_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_GST_LAUNCH_TYPE_AUDIO_ITEM))
#define RYGEL_GST_LAUNCH_AUDIO_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_GST_LAUNCH_TYPE_AUDIO_ITEM, RygelGstLaunchAudioItemClass))

typedef struct _RygelGstLaunchAudioItem RygelGstLaunchAudioItem;
typedef struct _RygelGstLaunchAudioItemClass RygelGstLaunchAudioItemClass;
typedef struct _RygelGstLaunchAudioItemPrivate RygelGstLaunchAudioItemPrivate;

#define RYGEL_GST_LAUNCH_TYPE_VIDEO_ITEM (rygel_gst_launch_video_item_get_type ())
#define RYGEL_GST_LAUNCH_VIDEO_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_GST_LAUNCH_TYPE_VIDEO_ITEM, RygelGstLaunchVideoItem))
#define RYGEL_GST_LAUNCH_VIDEO_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_GST_LAUNCH_TYPE_VIDEO_ITEM, RygelGstLaunchVideoItemClass))
#define RYGEL_GST_LAUNCH_IS_VIDEO_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_GST_LAUNCH_TYPE_VIDEO_ITEM))
#define RYGEL_GST_LAUNCH_IS_VIDEO_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_GST_LAUNCH_TYPE_VIDEO_ITEM))
#define RYGEL_GST_LAUNCH_VIDEO_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_GST_LAUNCH_TYPE_VIDEO_ITEM, RygelGstLaunchVideoItemClass))

typedef struct _RygelGstLaunchVideoItem RygelGstLaunchVideoItem;
typedef struct _RygelGstLaunchVideoItemClass RygelGstLaunchVideoItemClass;
typedef struct _RygelGstLaunchVideoItemPrivate RygelGstLaunchVideoItemPrivate;

struct _RygelGstLaunchPlugin {
	RygelMediaServerPlugin parent_instance;
	RygelGstLaunchPluginPrivate * priv;
};

struct _RygelGstLaunchPluginClass {
	RygelMediaServerPluginClass parent_class;
};

struct _RygelGstLaunchRootContainer {
	RygelSimpleContainer parent_instance;
	RygelGstLaunchRootContainerPrivate * priv;
};

struct _RygelGstLaunchRootContainerClass {
	RygelSimpleContainerClass parent_class;
};

struct _RygelGstLaunchAudioItem {
	RygelAudioItem parent_instance;
	RygelGstLaunchAudioItemPrivate * priv;
};

struct _RygelGstLaunchAudioItemClass {
	RygelAudioItemClass parent_class;
};

struct _RygelGstLaunchVideoItem {
	RygelVideoItem parent_instance;
	RygelGstLaunchVideoItemPrivate * priv;
};

struct _RygelGstLaunchVideoItemClass {
	RygelVideoItemClass parent_class;
};

VALA_EXTERN void module_init (RygelPluginLoader* loader);
VALA_EXTERN GType rygel_gst_launch_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelGstLaunchPlugin, g_object_unref)
VALA_EXTERN RygelGstLaunchPlugin* rygel_gst_launch_plugin_new (void);
VALA_EXTERN RygelGstLaunchPlugin* rygel_gst_launch_plugin_construct (GType object_type);
VALA_EXTERN GType rygel_gst_launch_root_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelGstLaunchRootContainer, g_object_unref)
VALA_EXTERN RygelGstLaunchRootContainer* rygel_gst_launch_root_container_new (const gchar* title);
VALA_EXTERN RygelGstLaunchRootContainer* rygel_gst_launch_root_container_construct (GType object_type,
                                                                        const gchar* title);
VALA_EXTERN void rygel_gst_launch_root_container_init (RygelGstLaunchRootContainer* self);
VALA_EXTERN GType rygel_gst_launch_audio_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelGstLaunchAudioItem, g_object_unref)
VALA_EXTERN RygelGstLaunchAudioItem* rygel_gst_launch_audio_item_new (const gchar* id,
                                                          RygelMediaContainer* parent,
                                                          const gchar* title,
                                                          const gchar* mime_type,
                                                          const gchar* launch_line);
VALA_EXTERN RygelGstLaunchAudioItem* rygel_gst_launch_audio_item_construct (GType object_type,
                                                                const gchar* id,
                                                                RygelMediaContainer* parent,
                                                                const gchar* title,
                                                                const gchar* mime_type,
                                                                const gchar* launch_line);
VALA_EXTERN GType rygel_gst_launch_video_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelGstLaunchVideoItem, g_object_unref)
VALA_EXTERN RygelGstLaunchVideoItem* rygel_gst_launch_video_item_new (const gchar* id,
                                                          RygelMediaContainer* parent,
                                                          const gchar* title,
                                                          const gchar* mime_type,
                                                          const gchar* launch_line);
VALA_EXTERN RygelGstLaunchVideoItem* rygel_gst_launch_video_item_construct (GType object_type,
                                                                const gchar* id,
                                                                RygelMediaContainer* parent,
                                                                const gchar* title,
                                                                const gchar* mime_type,
                                                                const gchar* launch_line);

G_END_DECLS

#endif
