X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstiterator.h;h=2f535079980ae3d4be12af59a28c62bec667f227;hb=e6bd5b41935f125bf43e030dcb909c3537d33b31;hp=2a21f8b381b05d08a36567cca5cd387babef779a;hpb=5acdc22001033be1310fa9085b44ab79157e6f82;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstiterator.h b/gst/gstiterator.h index 2a21f8b..2f53507 100644 --- a/gst/gstiterator.h +++ b/gst/gstiterator.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_ITERATOR_H__ @@ -146,7 +146,7 @@ typedef void (*GstIteratorForeachFunction) (const GValue * item, gpo * * A function to be passed to gst_iterator_fold(). * - * Returns: TRUE if the fold should continue, FALSE if it should stop. + * Returns: %TRUE if the fold should continue, %FALSE if it should stop. */ typedef gboolean (*GstIteratorFoldFunction) (const GValue * item, GValue * ret, gpointer user_data); @@ -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,37 +240,53 @@ 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); +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstIterator, gst_iterator_free) +#endif + G_END_DECLS #endif /* __GST_ITERATOR_H__ */