X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstiterator.h;h=2f535079980ae3d4be12af59a28c62bec667f227;hb=57c8e0146f0e203058c95721527cf50a1dd19f72;hp=6785672f3d9e5d014bec2848150ed307d1dae22c;hpb=46f83f5fcda0dadd3afaeb807f8917356d1bcf19;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstiterator.h b/gst/gstiterator.h index 6785672..2f53507 100644 --- a/gst/gstiterator.h +++ b/gst/gstiterator.h @@ -225,9 +225,12 @@ struct _GstIterator { gpointer _gst_reserved[GST_PADDING]; }; +GST_API GType gst_iterator_get_type (void); /* creating iterators */ + +GST_API GstIterator* gst_iterator_new (guint size, GType type, GMutex *lock, @@ -237,34 +240,46 @@ GstIterator* gst_iterator_new (guint size, GstIteratorItemFunction item, GstIteratorResyncFunction resync, GstIteratorFreeFunction free) G_GNUC_MALLOC; - +GST_API GstIterator* gst_iterator_new_list (GType type, GMutex *lock, guint32 *master_cookie, GList **list, GObject * owner, GstIteratorItemFunction item) G_GNUC_MALLOC; - +GST_API GstIterator* gst_iterator_new_single (GType type, const GValue * object) G_GNUC_MALLOC; - +GST_API GstIterator* gst_iterator_copy (const GstIterator *it) G_GNUC_MALLOC; /* using iterators */ + +GST_API GstIteratorResult gst_iterator_next (GstIterator *it, GValue * elem); + +GST_API void gst_iterator_resync (GstIterator *it); + +GST_API void gst_iterator_free (GstIterator *it); +GST_API void gst_iterator_push (GstIterator *it, GstIterator *other); /* higher-order functions that operate on iterators */ + +GST_API GstIterator* gst_iterator_filter (GstIterator *it, GCompareFunc func, const GValue * user_data) G_GNUC_MALLOC; +GST_API GstIteratorResult gst_iterator_fold (GstIterator *it, GstIteratorFoldFunction func, GValue *ret, gpointer user_data); +GST_API GstIteratorResult gst_iterator_foreach (GstIterator *it, GstIteratorForeachFunction func, gpointer user_data); +GST_API gboolean gst_iterator_find_custom (GstIterator *it, GCompareFunc func, GValue *elem, gpointer user_data);