|  |  |  | GStreamer 0.8 Core API Reference (0.8.4) |  | 
|---|
GstURIHandler — Plugin feature that describes URI types and the element that handles it
enum GstURIType; #define GST_TYPE_URI_HANDLER #define GST_URI_HANDLER (obj) #define GST_IS_URI_HANDLER (obj) #define GST_URI_HANDLER_GET_INTERFACE (obj) #define GST_URI_HANDLER_CLASS (obj) struct GstURIHandler; struct GstURIHandlerInterface; gboolean gst_uri_protocol_is_valid (const gchar *protocol); gboolean gst_uri_is_valid (const gchar *uri); gchar* gst_uri_get_protocol (const gchar *uri); gchar* gst_uri_get_location (const gchar *uri); gchar* gst_uri_construct (const gchar *protocol, const gchar *location); GstElement* gst_element_make_from_uri (const GstURIType type, const gchar *uri, const gchar *elementname); guint gst_uri_handler_get_uri_type (GstURIHandler *handler); gchar** gst_uri_handler_get_protocols (GstURIHandler *handler); G_CONST_RETURN gchar* gst_uri_handler_get_uri (GstURIHandler *handler); gboolean gst_uri_handler_set_uri (GstURIHandler *handler, const gchar *uri); void gst_uri_handler_new_uri (GstURIHandler *handler, const gchar *uri);
The URIHandler is a pluginfeature that can be used to locate element and the element property that can handle a given URI.
#define GST_URI_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_URI_HANDLER, GstURIHandler))
| obj : | 
#define GST_IS_URI_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_URI_HANDLER))
| obj : | 
#define GST_URI_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_URI_HANDLER, GstURIHandlerInterface))
| obj : | 
#define GST_URI_HANDLER_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GST_TYPE_URI_HANDLER, GstURIHandler))
| obj : | 
struct GstURIHandlerInterface {
  GTypeInterface	parent;
  /* signals */
  void			(* new_uri)				(GstURIHandler *	handler,
								 const gchar *		uri);
  /* idea for the future ?
  gboolean		(* require_password)			(GstURIHandler *	handler,
								 gchar **		username,
								 gchar **		password);
   */
  /* vtable */
  /* querying capabilities */
  GstURIType		(* get_type)				(void);
  gchar **		(* get_protocols)			(void);
  /* using the interface */
  G_CONST_RETURN gchar *(* get_uri)				(GstURIHandler *	handler);
  gboolean		(* set_uri)				(GstURIHandler *	handler,
								 const gchar *		uri);
  
  /* we might want to add functions here to query features, someone with gnome-vfs knowledge go ahead */
  gpointer _gst_reserved[GST_PADDING];
};
gboolean gst_uri_protocol_is_valid (const gchar *protocol);
Tests if the given string is a valid protocol identifier. Protocols must consist of alphanumeric characters and not start with a number.
| protocol : | string to check | 
| Returns : | TRUE if the string is a valid protocol identifier | 
gboolean gst_uri_is_valid (const gchar *uri);
Tests if the given string is a valid URI identifier. URIs start with a valid protocol followed by "://" and a string identifying the location.
| uri : | string to check | 
| Returns : | TRUE if the string is a valid URI | 
gchar* gst_uri_get_protocol (const gchar *uri);
Extracts the protocol out of a given valid URI. The returned string must be freed using g_free().
| uri : | URI to get protocol from | 
| Returns : | The protocol for this URI. | 
gchar* gst_uri_get_location (const gchar *uri);
Extracts the location out of a given valid URI. So the protocol and "://" are stripped from the URI. The returned string must be freed using g_free().
| uri : | URI to get the location from | 
| Returns : | The location for this URI. | 
gchar*      gst_uri_construct               (const gchar *protocol,
                                             const gchar *location);Constructs a URI for a given valid protocol and location.
| protocol : | protocol for URI | 
| location : | location for URI | 
| Returns : | a new string for this URI | 
GstElement* gst_element_make_from_uri (const GstURIType type, const gchar *uri, const gchar *elementname);
Creates an element for handling the given URI.
| type : | wether to create a source or a sink | 
| uri : | URI to create element for | 
| elementname : | optional name of created element | 
| Returns : | a new element or NULL if none could be created | 
guint gst_uri_handler_get_uri_type (GstURIHandler *handler);
Gets the type of a URI handler
| handler : | Handler to query type of | 
| Returns : | the type of the URI handler | 
gchar** gst_uri_handler_get_protocols (GstURIHandler *handler);
Gets the list of supported protocols for this handler. This list may not be modified.
| handler : | Handler to get protocols for | 
| Returns : | the supported protocols | 
G_CONST_RETURN gchar* gst_uri_handler_get_uri
                                            (GstURIHandler *handler);Gets the currently handled URI of the handler or NULL, if none is set.
| handler : | handler to query URI of | 
| Returns : | the URI | 
gboolean gst_uri_handler_set_uri (GstURIHandler *handler, const gchar *uri);
Tries to set the URI of the given handler and returns TRUE if it succeeded.
| handler : | handler to set URI of | 
| uri : | URI to set | 
| Returns : | TRUE, if the URI was set successfully | 
void gst_uri_handler_new_uri (GstURIHandler *handler, const gchar *uri);
Emits the new-uri event for a given handler, when that handler has a new URI. This function should only be called by URI handlers themselves.
| handler : | handler with a new URI | 
| uri : | new URI or NULL if it was unset | 
| << GstTypeFindElement | gstutils >> |