diff --git a/ChangeLog b/ChangeLog index df2f8cc4e6..ba808afb96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-03-09 Tim-Philipp Müller + + * docs/gst/gstreamer-sections.txt: + * gst/gsturi.c: (gst_uri_has_protocol): + * gst/gsturi.h: + Add new API: gst_uri_has_protocol() (#333779). + 2006-03-09 Wim Taymans * gst/gstclock.c: (gst_clock_entry_new), diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 1ef79a7268..6de8ba3a23 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -1973,6 +1973,7 @@ GstURIType GST_URI_TYPE_IS_VALID gst_uri_protocol_is_valid gst_uri_is_valid +gst_uri_has_protocol gst_uri_get_protocol gst_uri_get_location gst_uri_construct diff --git a/gst/gsturi.c b/gst/gsturi.c index 84bb194e52..24eaa286bd 100644 --- a/gst/gsturi.c +++ b/gst/gsturi.c @@ -372,6 +372,32 @@ gst_uri_get_protocol (const gchar * uri) return g_strndup (uri, colon - uri); } +/** + * gst_uri_has_protocol: + * @uri: an URI string + * @protocol: a protocol string (e.g. "http") + * + * Returns TRUE if the protocol of a given valid URI matches @protocol. + * + * Since: 0.10.4 + */ +gboolean +gst_uri_has_protocol (const gchar * uri, const gchar * protocol) +{ + gchar *colon; + + g_return_val_if_fail (uri != NULL, FALSE); + g_return_val_if_fail (protocol != NULL, FALSE); + g_return_val_if_fail (gst_uri_is_valid (uri), FALSE); + + colon = strstr (uri, "://"); + + if (colon == NULL) + return FALSE; + + return (strncmp (uri, protocol, (size_t) (colon - uri)) == 0); +} + /** * gst_uri_get_location: * @uri: A URI string diff --git a/gst/gsturi.h b/gst/gsturi.h index f76f56dc54..82bae5d277 100644 --- a/gst/gsturi.h +++ b/gst/gsturi.h @@ -115,6 +115,8 @@ 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); +gboolean gst_uri_has_protocol (const gchar * uri, + const gchar * protocol); gchar * gst_uri_get_location (const gchar * uri); gchar * gst_uri_construct (const gchar * protocol, const gchar * location);