#ifndef __GMYTH_STREAM_CLIENT_H__
#define __GMYTH_STREAM_CLIENT_H__

#include <glib-object.h>

G_BEGIN_DECLS

typedef struct _GMythStreamClient GMythStreamClient;
typedef struct _GMythStreamClientClass GMythStreamClientClass;

struct _GMythStreamClientClass {
	GObjectClass parent_class;
};

struct _GMythStreamClient {
	GObject parent;
};

/* TYPE MACROS */
#define GMYTH_TYPE_STREAM_CLIENT \
  (gmyth_stream_client_get_type())
#define GMYTH_STREAM_CLIENT(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST((obj), GMYTH_TYPE_STREAM_CLIENT, GMythStreamClient))
#define GMYTH_STREAM_CLIENT_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_CAST((klass), GMYTH_TYPE_STREAM_CLIENT, GMythStreamClientClass))
#define GMYTH_IS_STREAM_CLIENT(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GMYTH_TYPE_STREAM_CLIENT))
#define GMYTH_IS_STREAM_CLIENT_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_TYPE((klass), GMYTH_TYPE_STREAM_CLIENT))
#define GMYTH_STREAM_CLIENT_GET_CLASS(obj) \
  (G_TYPE_INSTANCE_GET_CLASS ((obj), GMYTH_TYPE_STREAM_CLIENT, GMythStreamClientClass))


GType 		        gmyth_stream_client_get_type 	(void);
GMythStreamClient*  gmyth_stream_client_new         (void);
gboolean            gmyth_stream_client_connect     (GMythStreamClient *self,
                                                     const gchar *server, guint port);
void                gmyth_stream_client_disconnect  (GMythStreamClient *self);
guint			    gmyth_stream_client_open_stream (GMythStreamClient *self,
                                                     const gchar* file_name,
                                                     const gchar* mux,
                                                     const gchar* vcodec,
                                                     guint vbitrate,
                                                     gdouble fps,
                                                     const gchar* acodec,
                                                     guint abitrate,
                                    				 guint width, guint height,
                                    				 guint port,
                                    				 const gchar* opt);
gboolean		    gmyth_stream_client_play_stream (GMythStreamClient *self,
                        							 guint stream_id);
void			    gmyth_stream_client_pause_stream(GMythStreamClient *self,
                        							 guint stream_id);
void			    gmyth_stream_client_close_stream (GMythStreamClient *self,
							                         guint stream_id);
							                         

G_END_DECLS

#endif