gi-gst-1.0.7: GStreamer bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Gst.Structs.Iterator

Contents

Description

A GstIterator is used to retrieve multiple objects from another object in a threadsafe way.

Various GStreamer objects provide access to their internal structures using an iterator.

Note that if calling a GstIterator function results in your code receiving a refcounted object (with, say, g_value_get_object()), the refcount for that object will not be increased. Your code is responsible for taking a reference if it wants to continue using it later.

The basic use pattern of an iterator is as follows: |[language="C" -- GstIterator *it = _get_iterator(object); GValue item = G_VALUE_INIT; done = FALSE; while (!done) { switch (gst_iterator_next (it, &item)) { case GST_ITERATOR_OK: ...getusechange item here... g_value_reset (&item); break; case GST_ITERATOR_RESYNC: ...rollback changes to items... gst_iterator_resync (it); break; case GST_ITERATOR_ERROR: ...wrong parameters were given... done = TRUE; break; case GST_ITERATOR_DONE: done = TRUE; break; } } g_value_unset (&item); gst_iterator_free (it); ]|

Synopsis

Exported types

newtype Iterator Source #

Constructors

Iterator (ManagedPtr Iterator) 

Instances

BoxedObject Iterator Source # 

Methods

boxedType :: Iterator -> IO GType

(~) AttrOpTag tag AttrSet => Constructible Iterator tag Source # 

Methods

new :: MonadIO m => (ManagedPtr Iterator -> Iterator) -> [AttrOp Iterator tag] -> m Iterator

((~) * info (ResolveIteratorMethod t Iterator), MethodInfo * info Iterator p) => IsLabel t (Iterator -> p) Source # 

Methods

fromLabel :: Proxy# Symbol t -> Iterator -> p #

((~) * info (ResolveIteratorMethod t Iterator), MethodInfo * info Iterator p) => IsLabelProxy t (Iterator -> p) Source # 

Methods

fromLabelProxy :: Proxy Symbol t -> Iterator -> p

HasAttributeList * Iterator Source # 
((~) * signature (m ()), MonadIO m) => MethodInfo * IteratorResyncMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorResyncMethodInfo Iterator -> signature -> s

((~) * signature (Iterator -> m ()), MonadIO m) => MethodInfo * IteratorPushMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorPushMethodInfo Iterator -> signature -> s

((~) * signature (m (IteratorResult, GValue)), MonadIO m) => MethodInfo * IteratorNextMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorNextMethodInfo Iterator -> signature -> s

((~) * signature (m ()), MonadIO m) => MethodInfo * IteratorFreeMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFreeMethodInfo Iterator -> signature -> s

((~) * signature (IteratorForeachFunction -> m IteratorResult), MonadIO m) => MethodInfo * IteratorForeachMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorForeachMethodInfo Iterator -> signature -> s

((~) * signature (IteratorFoldFunction -> GValue -> m IteratorResult), MonadIO m) => MethodInfo * IteratorFoldMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFoldMethodInfo Iterator -> signature -> s

((~) * signature (CompareFunc -> m (Bool, GValue)), MonadIO m) => MethodInfo * IteratorFindCustomMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFindCustomMethodInfo Iterator -> signature -> s

((~) * signature (CompareFunc -> GValue -> m Iterator), MonadIO m) => MethodInfo * IteratorFilterMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFilterMethodInfo Iterator -> signature -> s

((~) * signature (m Iterator), MonadIO m) => MethodInfo * IteratorCopyMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorCopyMethodInfo Iterator -> signature -> s

type AttributeList Iterator Source # 
type AttributeList Iterator

newZeroIterator :: MonadIO m => m Iterator Source #

Construct a Iterator struct initialized to zero.

Methods

copy

data IteratorCopyMethodInfo Source #

Instances

((~) * signature (m Iterator), MonadIO m) => MethodInfo * IteratorCopyMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorCopyMethodInfo Iterator -> signature -> s

filter

data IteratorFilterMethodInfo Source #

Instances

((~) * signature (CompareFunc -> GValue -> m Iterator), MonadIO m) => MethodInfo * IteratorFilterMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFilterMethodInfo Iterator -> signature -> s

iteratorFilter :: MonadIO m => Iterator -> CompareFunc -> GValue -> m Iterator Source #

findCustom

data IteratorFindCustomMethodInfo Source #

Instances

((~) * signature (CompareFunc -> m (Bool, GValue)), MonadIO m) => MethodInfo * IteratorFindCustomMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFindCustomMethodInfo Iterator -> signature -> s

iteratorFindCustom :: MonadIO m => Iterator -> CompareFunc -> m (Bool, GValue) Source #

fold

data IteratorFoldMethodInfo Source #

Instances

((~) * signature (IteratorFoldFunction -> GValue -> m IteratorResult), MonadIO m) => MethodInfo * IteratorFoldMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFoldMethodInfo Iterator -> signature -> s

foreach

data IteratorForeachMethodInfo Source #

Instances

((~) * signature (IteratorForeachFunction -> m IteratorResult), MonadIO m) => MethodInfo * IteratorForeachMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorForeachMethodInfo Iterator -> signature -> s

free

data IteratorFreeMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * IteratorFreeMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorFreeMethodInfo Iterator -> signature -> s

newSingle

iteratorNewSingle :: MonadIO m => GType -> GValue -> m Iterator Source #

next

data IteratorNextMethodInfo Source #

Instances

((~) * signature (m (IteratorResult, GValue)), MonadIO m) => MethodInfo * IteratorNextMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorNextMethodInfo Iterator -> signature -> s

push

data IteratorPushMethodInfo Source #

Instances

((~) * signature (Iterator -> m ()), MonadIO m) => MethodInfo * IteratorPushMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorPushMethodInfo Iterator -> signature -> s

resync

data IteratorResyncMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * IteratorResyncMethodInfo Iterator signature Source # 

Methods

overloadedMethod :: MethodProxy IteratorResyncMethodInfo Iterator -> signature -> s

Properties

cookie

iterator_cookie :: AttrLabelProxy "cookie" Source #

copy

iterator_copy :: AttrLabelProxy "copy" Source #

free

iterator_free :: AttrLabelProxy "free" Source #

item

iterator_item :: AttrLabelProxy "item" Source #

lock

iterator_lock :: AttrLabelProxy "lock" Source #

setIteratorLock :: MonadIO m => Iterator -> Ptr Mutex -> m () Source #

masterCookie

iterator_masterCookie :: AttrLabelProxy "masterCookie" Source #

next

iterator_next :: AttrLabelProxy "next" Source #

pushed

iterator_pushed :: AttrLabelProxy "pushed" Source #

resync

iterator_resync :: AttrLabelProxy "resync" Source #

size

iterator_size :: AttrLabelProxy "size" Source #

type

iterator_type :: AttrLabelProxy "type" Source #

setIteratorType :: MonadIO m => Iterator -> GType -> m () Source #