#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Structs.Iterator
(
Iterator(..) ,
newZeroIterator ,
noIterator ,
#if ENABLE_OVERLOADING
IteratorCopyMethodInfo ,
#endif
iteratorCopy ,
#if ENABLE_OVERLOADING
IteratorFilterMethodInfo ,
#endif
iteratorFilter ,
#if ENABLE_OVERLOADING
IteratorFindCustomMethodInfo ,
#endif
iteratorFindCustom ,
#if ENABLE_OVERLOADING
IteratorFoldMethodInfo ,
#endif
iteratorFold ,
#if ENABLE_OVERLOADING
IteratorForeachMethodInfo ,
#endif
iteratorForeach ,
#if ENABLE_OVERLOADING
IteratorFreeMethodInfo ,
#endif
iteratorFree ,
iteratorNewSingle ,
#if ENABLE_OVERLOADING
IteratorNextMethodInfo ,
#endif
iteratorNext ,
#if ENABLE_OVERLOADING
IteratorPushMethodInfo ,
#endif
iteratorPush ,
#if ENABLE_OVERLOADING
IteratorResyncMethodInfo ,
#endif
iteratorResync ,
getIteratorCookie ,
#if ENABLE_OVERLOADING
iterator_cookie ,
#endif
setIteratorCookie ,
clearIteratorCopy ,
getIteratorCopy ,
#if ENABLE_OVERLOADING
iterator_copy ,
#endif
setIteratorCopy ,
clearIteratorFree ,
getIteratorFree ,
#if ENABLE_OVERLOADING
iterator_free ,
#endif
setIteratorFree ,
clearIteratorItem ,
getIteratorItem ,
#if ENABLE_OVERLOADING
iterator_item ,
#endif
setIteratorItem ,
clearIteratorLock ,
getIteratorLock ,
#if ENABLE_OVERLOADING
iterator_lock ,
#endif
setIteratorLock ,
getIteratorMasterCookie ,
#if ENABLE_OVERLOADING
iterator_masterCookie ,
#endif
setIteratorMasterCookie ,
clearIteratorNext ,
getIteratorNext ,
#if ENABLE_OVERLOADING
iterator_next ,
#endif
setIteratorNext ,
clearIteratorPushed ,
getIteratorPushed ,
#if ENABLE_OVERLOADING
iterator_pushed ,
#endif
setIteratorPushed ,
clearIteratorResync ,
getIteratorResync ,
#if ENABLE_OVERLOADING
iterator_resync ,
#endif
setIteratorResync ,
getIteratorSize ,
#if ENABLE_OVERLOADING
iterator_size ,
#endif
setIteratorSize ,
getIteratorType ,
#if ENABLE_OVERLOADING
iterator_type ,
#endif
setIteratorType ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.GLib.Unions.Mutex as GLib.Mutex
import qualified GI.Gst.Callbacks as Gst.Callbacks
import {-# SOURCE #-} qualified GI.Gst.Enums as Gst.Enums
newtype Iterator = Iterator (ManagedPtr Iterator)
foreign import ccall "gst_iterator_get_type" c_gst_iterator_get_type ::
IO GType
instance BoxedObject Iterator where
boxedType _ = c_gst_iterator_get_type
newZeroIterator :: MonadIO m => m Iterator
newZeroIterator = liftIO $ callocBoxedBytes 120 >>= wrapBoxed Iterator
instance tag ~ 'AttrSet => Constructible Iterator tag where
new _ attrs = do
o <- newZeroIterator
GI.Attributes.set o attrs
return o
noIterator :: Maybe Iterator
noIterator = Nothing
getIteratorCopy :: MonadIO m => Iterator -> m (Maybe Gst.Callbacks.IteratorCopyFunction)
getIteratorCopy s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (FunPtr Gst.Callbacks.C_IteratorCopyFunction)
result <- SP.convertFunPtrIfNonNull val $ \val' -> do
let val'' = Gst.Callbacks.dynamic_IteratorCopyFunction val'
return val''
return result
setIteratorCopy :: MonadIO m => Iterator -> FunPtr Gst.Callbacks.C_IteratorCopyFunction -> m ()
setIteratorCopy s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: FunPtr Gst.Callbacks.C_IteratorCopyFunction)
clearIteratorCopy :: MonadIO m => Iterator -> m ()
clearIteratorCopy s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (FP.nullFunPtr :: FunPtr Gst.Callbacks.C_IteratorCopyFunction)
#if ENABLE_OVERLOADING
data IteratorCopyFieldInfo
instance AttrInfo IteratorCopyFieldInfo where
type AttrAllowedOps IteratorCopyFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorCopyFieldInfo = (~) (FunPtr Gst.Callbacks.C_IteratorCopyFunction)
type AttrBaseTypeConstraint IteratorCopyFieldInfo = (~) Iterator
type AttrGetType IteratorCopyFieldInfo = Maybe Gst.Callbacks.IteratorCopyFunction
type AttrLabel IteratorCopyFieldInfo = "copy"
type AttrOrigin IteratorCopyFieldInfo = Iterator
attrGet _ = getIteratorCopy
attrSet _ = setIteratorCopy
attrConstruct = undefined
attrClear _ = clearIteratorCopy
iterator_copy :: AttrLabelProxy "copy"
iterator_copy = AttrLabelProxy
#endif
getIteratorNext :: MonadIO m => Iterator -> m (Maybe Gst.Callbacks.IteratorNextFunction)
getIteratorNext s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (FunPtr Gst.Callbacks.C_IteratorNextFunction)
result <- SP.convertFunPtrIfNonNull val $ \val' -> do
let val'' = Gst.Callbacks.dynamic_IteratorNextFunction val'
return val''
return result
setIteratorNext :: MonadIO m => Iterator -> FunPtr Gst.Callbacks.C_IteratorNextFunction -> m ()
setIteratorNext s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: FunPtr Gst.Callbacks.C_IteratorNextFunction)
clearIteratorNext :: MonadIO m => Iterator -> m ()
clearIteratorNext s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (FP.nullFunPtr :: FunPtr Gst.Callbacks.C_IteratorNextFunction)
#if ENABLE_OVERLOADING
data IteratorNextFieldInfo
instance AttrInfo IteratorNextFieldInfo where
type AttrAllowedOps IteratorNextFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorNextFieldInfo = (~) (FunPtr Gst.Callbacks.C_IteratorNextFunction)
type AttrBaseTypeConstraint IteratorNextFieldInfo = (~) Iterator
type AttrGetType IteratorNextFieldInfo = Maybe Gst.Callbacks.IteratorNextFunction
type AttrLabel IteratorNextFieldInfo = "next"
type AttrOrigin IteratorNextFieldInfo = Iterator
attrGet _ = getIteratorNext
attrSet _ = setIteratorNext
attrConstruct = undefined
attrClear _ = clearIteratorNext
iterator_next :: AttrLabelProxy "next"
iterator_next = AttrLabelProxy
#endif
getIteratorItem :: MonadIO m => Iterator -> m (Maybe Gst.Callbacks.IteratorItemFunction)
getIteratorItem s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO (FunPtr Gst.Callbacks.C_IteratorItemFunction)
result <- SP.convertFunPtrIfNonNull val $ \val' -> do
let val'' = Gst.Callbacks.dynamic_IteratorItemFunction val'
return val''
return result
setIteratorItem :: MonadIO m => Iterator -> FunPtr Gst.Callbacks.C_IteratorItemFunction -> m ()
setIteratorItem s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: FunPtr Gst.Callbacks.C_IteratorItemFunction)
clearIteratorItem :: MonadIO m => Iterator -> m ()
clearIteratorItem s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (FP.nullFunPtr :: FunPtr Gst.Callbacks.C_IteratorItemFunction)
#if ENABLE_OVERLOADING
data IteratorItemFieldInfo
instance AttrInfo IteratorItemFieldInfo where
type AttrAllowedOps IteratorItemFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorItemFieldInfo = (~) (FunPtr Gst.Callbacks.C_IteratorItemFunction)
type AttrBaseTypeConstraint IteratorItemFieldInfo = (~) Iterator
type AttrGetType IteratorItemFieldInfo = Maybe Gst.Callbacks.IteratorItemFunction
type AttrLabel IteratorItemFieldInfo = "item"
type AttrOrigin IteratorItemFieldInfo = Iterator
attrGet _ = getIteratorItem
attrSet _ = setIteratorItem
attrConstruct = undefined
attrClear _ = clearIteratorItem
iterator_item :: AttrLabelProxy "item"
iterator_item = AttrLabelProxy
#endif
getIteratorResync :: MonadIO m => Iterator -> m (Maybe Gst.Callbacks.IteratorResyncFunction)
getIteratorResync s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO (FunPtr Gst.Callbacks.C_IteratorResyncFunction)
result <- SP.convertFunPtrIfNonNull val $ \val' -> do
let val'' = Gst.Callbacks.dynamic_IteratorResyncFunction val'
return val''
return result
setIteratorResync :: MonadIO m => Iterator -> FunPtr Gst.Callbacks.C_IteratorResyncFunction -> m ()
setIteratorResync s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: FunPtr Gst.Callbacks.C_IteratorResyncFunction)
clearIteratorResync :: MonadIO m => Iterator -> m ()
clearIteratorResync s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (FP.nullFunPtr :: FunPtr Gst.Callbacks.C_IteratorResyncFunction)
#if ENABLE_OVERLOADING
data IteratorResyncFieldInfo
instance AttrInfo IteratorResyncFieldInfo where
type AttrAllowedOps IteratorResyncFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorResyncFieldInfo = (~) (FunPtr Gst.Callbacks.C_IteratorResyncFunction)
type AttrBaseTypeConstraint IteratorResyncFieldInfo = (~) Iterator
type AttrGetType IteratorResyncFieldInfo = Maybe Gst.Callbacks.IteratorResyncFunction
type AttrLabel IteratorResyncFieldInfo = "resync"
type AttrOrigin IteratorResyncFieldInfo = Iterator
attrGet _ = getIteratorResync
attrSet _ = setIteratorResync
attrConstruct = undefined
attrClear _ = clearIteratorResync
iterator_resync :: AttrLabelProxy "resync"
iterator_resync = AttrLabelProxy
#endif
getIteratorFree :: MonadIO m => Iterator -> m (Maybe Gst.Callbacks.IteratorFreeFunction)
getIteratorFree s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO (FunPtr Gst.Callbacks.C_IteratorFreeFunction)
result <- SP.convertFunPtrIfNonNull val $ \val' -> do
let val'' = Gst.Callbacks.dynamic_IteratorFreeFunction val'
return val''
return result
setIteratorFree :: MonadIO m => Iterator -> FunPtr Gst.Callbacks.C_IteratorFreeFunction -> m ()
setIteratorFree s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (val :: FunPtr Gst.Callbacks.C_IteratorFreeFunction)
clearIteratorFree :: MonadIO m => Iterator -> m ()
clearIteratorFree s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 32) (FP.nullFunPtr :: FunPtr Gst.Callbacks.C_IteratorFreeFunction)
#if ENABLE_OVERLOADING
data IteratorFreeFieldInfo
instance AttrInfo IteratorFreeFieldInfo where
type AttrAllowedOps IteratorFreeFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorFreeFieldInfo = (~) (FunPtr Gst.Callbacks.C_IteratorFreeFunction)
type AttrBaseTypeConstraint IteratorFreeFieldInfo = (~) Iterator
type AttrGetType IteratorFreeFieldInfo = Maybe Gst.Callbacks.IteratorFreeFunction
type AttrLabel IteratorFreeFieldInfo = "free"
type AttrOrigin IteratorFreeFieldInfo = Iterator
attrGet _ = getIteratorFree
attrSet _ = setIteratorFree
attrConstruct = undefined
attrClear _ = clearIteratorFree
iterator_free :: AttrLabelProxy "free"
iterator_free = AttrLabelProxy
#endif
getIteratorPushed :: MonadIO m => Iterator -> m (Maybe Iterator)
getIteratorPushed s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO (Ptr Iterator)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newBoxed Iterator) val'
return val''
return result
setIteratorPushed :: MonadIO m => Iterator -> Ptr Iterator -> m ()
setIteratorPushed s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 40) (val :: Ptr Iterator)
clearIteratorPushed :: MonadIO m => Iterator -> m ()
clearIteratorPushed s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 40) (FP.nullPtr :: Ptr Iterator)
#if ENABLE_OVERLOADING
data IteratorPushedFieldInfo
instance AttrInfo IteratorPushedFieldInfo where
type AttrAllowedOps IteratorPushedFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorPushedFieldInfo = (~) (Ptr Iterator)
type AttrBaseTypeConstraint IteratorPushedFieldInfo = (~) Iterator
type AttrGetType IteratorPushedFieldInfo = Maybe Iterator
type AttrLabel IteratorPushedFieldInfo = "pushed"
type AttrOrigin IteratorPushedFieldInfo = Iterator
attrGet _ = getIteratorPushed
attrSet _ = setIteratorPushed
attrConstruct = undefined
attrClear _ = clearIteratorPushed
iterator_pushed :: AttrLabelProxy "pushed"
iterator_pushed = AttrLabelProxy
#endif
getIteratorType :: MonadIO m => Iterator -> m GType
getIteratorType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO CGType
let val' = GType val
return val'
setIteratorType :: MonadIO m => Iterator -> GType -> m ()
setIteratorType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = gtypeToCGType val
poke (ptr `plusPtr` 48) (val' :: CGType)
#if ENABLE_OVERLOADING
data IteratorTypeFieldInfo
instance AttrInfo IteratorTypeFieldInfo where
type AttrAllowedOps IteratorTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint IteratorTypeFieldInfo = (~) GType
type AttrBaseTypeConstraint IteratorTypeFieldInfo = (~) Iterator
type AttrGetType IteratorTypeFieldInfo = GType
type AttrLabel IteratorTypeFieldInfo = "type"
type AttrOrigin IteratorTypeFieldInfo = Iterator
attrGet _ = getIteratorType
attrSet _ = setIteratorType
attrConstruct = undefined
attrClear _ = undefined
iterator_type :: AttrLabelProxy "type"
iterator_type = AttrLabelProxy
#endif
getIteratorLock :: MonadIO m => Iterator -> m (Maybe GLib.Mutex.Mutex)
getIteratorLock s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 56) :: IO (Ptr GLib.Mutex.Mutex)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newPtr GLib.Mutex.Mutex) val'
return val''
return result
setIteratorLock :: MonadIO m => Iterator -> Ptr GLib.Mutex.Mutex -> m ()
setIteratorLock s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 56) (val :: Ptr GLib.Mutex.Mutex)
clearIteratorLock :: MonadIO m => Iterator -> m ()
clearIteratorLock s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 56) (FP.nullPtr :: Ptr GLib.Mutex.Mutex)
#if ENABLE_OVERLOADING
data IteratorLockFieldInfo
instance AttrInfo IteratorLockFieldInfo where
type AttrAllowedOps IteratorLockFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint IteratorLockFieldInfo = (~) (Ptr GLib.Mutex.Mutex)
type AttrBaseTypeConstraint IteratorLockFieldInfo = (~) Iterator
type AttrGetType IteratorLockFieldInfo = Maybe GLib.Mutex.Mutex
type AttrLabel IteratorLockFieldInfo = "lock"
type AttrOrigin IteratorLockFieldInfo = Iterator
attrGet _ = getIteratorLock
attrSet _ = setIteratorLock
attrConstruct = undefined
attrClear _ = clearIteratorLock
iterator_lock :: AttrLabelProxy "lock"
iterator_lock = AttrLabelProxy
#endif
getIteratorCookie :: MonadIO m => Iterator -> m Word32
getIteratorCookie s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 64) :: IO Word32
return val
setIteratorCookie :: MonadIO m => Iterator -> Word32 -> m ()
setIteratorCookie s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 64) (val :: Word32)
#if ENABLE_OVERLOADING
data IteratorCookieFieldInfo
instance AttrInfo IteratorCookieFieldInfo where
type AttrAllowedOps IteratorCookieFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint IteratorCookieFieldInfo = (~) Word32
type AttrBaseTypeConstraint IteratorCookieFieldInfo = (~) Iterator
type AttrGetType IteratorCookieFieldInfo = Word32
type AttrLabel IteratorCookieFieldInfo = "cookie"
type AttrOrigin IteratorCookieFieldInfo = Iterator
attrGet _ = getIteratorCookie
attrSet _ = setIteratorCookie
attrConstruct = undefined
attrClear _ = undefined
iterator_cookie :: AttrLabelProxy "cookie"
iterator_cookie = AttrLabelProxy
#endif
getIteratorMasterCookie :: MonadIO m => Iterator -> m Word32
getIteratorMasterCookie s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 72) :: IO Word32
return val
setIteratorMasterCookie :: MonadIO m => Iterator -> Word32 -> m ()
setIteratorMasterCookie s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 72) (val :: Word32)
#if ENABLE_OVERLOADING
data IteratorMasterCookieFieldInfo
instance AttrInfo IteratorMasterCookieFieldInfo where
type AttrAllowedOps IteratorMasterCookieFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint IteratorMasterCookieFieldInfo = (~) Word32
type AttrBaseTypeConstraint IteratorMasterCookieFieldInfo = (~) Iterator
type AttrGetType IteratorMasterCookieFieldInfo = Word32
type AttrLabel IteratorMasterCookieFieldInfo = "master_cookie"
type AttrOrigin IteratorMasterCookieFieldInfo = Iterator
attrGet _ = getIteratorMasterCookie
attrSet _ = setIteratorMasterCookie
attrConstruct = undefined
attrClear _ = undefined
iterator_masterCookie :: AttrLabelProxy "masterCookie"
iterator_masterCookie = AttrLabelProxy
#endif
getIteratorSize :: MonadIO m => Iterator -> m Word32
getIteratorSize s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 80) :: IO Word32
return val
setIteratorSize :: MonadIO m => Iterator -> Word32 -> m ()
setIteratorSize s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 80) (val :: Word32)
#if ENABLE_OVERLOADING
data IteratorSizeFieldInfo
instance AttrInfo IteratorSizeFieldInfo where
type AttrAllowedOps IteratorSizeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint IteratorSizeFieldInfo = (~) Word32
type AttrBaseTypeConstraint IteratorSizeFieldInfo = (~) Iterator
type AttrGetType IteratorSizeFieldInfo = Word32
type AttrLabel IteratorSizeFieldInfo = "size"
type AttrOrigin IteratorSizeFieldInfo = Iterator
attrGet _ = getIteratorSize
attrSet _ = setIteratorSize
attrConstruct = undefined
attrClear _ = undefined
iterator_size :: AttrLabelProxy "size"
iterator_size = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Iterator
type instance O.AttributeList Iterator = IteratorAttributeList
type IteratorAttributeList = ('[ '("copy", IteratorCopyFieldInfo), '("next", IteratorNextFieldInfo), '("item", IteratorItemFieldInfo), '("resync", IteratorResyncFieldInfo), '("free", IteratorFreeFieldInfo), '("pushed", IteratorPushedFieldInfo), '("type", IteratorTypeFieldInfo), '("lock", IteratorLockFieldInfo), '("cookie", IteratorCookieFieldInfo), '("masterCookie", IteratorMasterCookieFieldInfo), '("size", IteratorSizeFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_iterator_new_single" gst_iterator_new_single ::
CGType ->
Ptr GValue ->
IO (Ptr Iterator)
iteratorNewSingle ::
(B.CallStack.HasCallStack, MonadIO m) =>
GType
-> GValue
-> m Iterator
iteratorNewSingle type_ object = liftIO $ do
let type_' = gtypeToCGType type_
object' <- unsafeManagedPtrGetPtr object
result <- gst_iterator_new_single type_' object'
checkUnexpectedReturnNULL "iteratorNewSingle" result
result' <- (wrapBoxed Iterator) result
touchManagedPtr object
return result'
#if ENABLE_OVERLOADING
#endif
foreign import ccall "gst_iterator_copy" gst_iterator_copy ::
Ptr Iterator ->
IO (Ptr Iterator)
iteratorCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> m Iterator
iteratorCopy it = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
result <- gst_iterator_copy it'
checkUnexpectedReturnNULL "iteratorCopy" result
result' <- (wrapBoxed Iterator) result
touchManagedPtr it
return result'
#if ENABLE_OVERLOADING
data IteratorCopyMethodInfo
instance (signature ~ (m Iterator), MonadIO m) => O.MethodInfo IteratorCopyMethodInfo Iterator signature where
overloadedMethod _ = iteratorCopy
#endif
foreign import ccall "gst_iterator_filter" gst_iterator_filter ::
Ptr Iterator ->
FunPtr GLib.Callbacks.C_CompareFunc ->
Ptr GValue ->
IO (Ptr Iterator)
iteratorFilter ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> GLib.Callbacks.CompareFunc
-> GValue
-> m Iterator
iteratorFilter it func userData = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
func' <- GLib.Callbacks.mk_CompareFunc (GLib.Callbacks.wrap_CompareFunc Nothing func)
userData' <- unsafeManagedPtrGetPtr userData
result <- gst_iterator_filter it' func' userData'
checkUnexpectedReturnNULL "iteratorFilter" result
result' <- (wrapBoxed Iterator) result
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr it
touchManagedPtr userData
return result'
#if ENABLE_OVERLOADING
data IteratorFilterMethodInfo
instance (signature ~ (GLib.Callbacks.CompareFunc -> GValue -> m Iterator), MonadIO m) => O.MethodInfo IteratorFilterMethodInfo Iterator signature where
overloadedMethod _ = iteratorFilter
#endif
foreign import ccall "gst_iterator_find_custom" gst_iterator_find_custom ::
Ptr Iterator ->
FunPtr GLib.Callbacks.C_CompareFunc ->
Ptr GValue ->
Ptr () ->
IO CInt
iteratorFindCustom ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> GLib.Callbacks.CompareFunc
-> m ((Bool, GValue))
iteratorFindCustom it func = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
func' <- GLib.Callbacks.mk_CompareFunc (GLib.Callbacks.wrap_CompareFunc Nothing func)
elem <- callocBoxedBytes 24 :: IO (Ptr GValue)
let userData = nullPtr
result <- gst_iterator_find_custom it' func' elem userData
let result' = (/= 0) result
elem' <- (wrapBoxed GValue) elem
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr it
return (result', elem')
#if ENABLE_OVERLOADING
data IteratorFindCustomMethodInfo
instance (signature ~ (GLib.Callbacks.CompareFunc -> m ((Bool, GValue))), MonadIO m) => O.MethodInfo IteratorFindCustomMethodInfo Iterator signature where
overloadedMethod _ = iteratorFindCustom
#endif
foreign import ccall "gst_iterator_fold" gst_iterator_fold ::
Ptr Iterator ->
FunPtr Gst.Callbacks.C_IteratorFoldFunction ->
Ptr GValue ->
Ptr () ->
IO CUInt
iteratorFold ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> Gst.Callbacks.IteratorFoldFunction
-> GValue
-> m Gst.Enums.IteratorResult
iteratorFold it func ret = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
func' <- Gst.Callbacks.mk_IteratorFoldFunction (Gst.Callbacks.wrap_IteratorFoldFunction Nothing (Gst.Callbacks.drop_closures_IteratorFoldFunction func))
ret' <- unsafeManagedPtrGetPtr ret
let userData = nullPtr
result <- gst_iterator_fold it' func' ret' userData
let result' = (toEnum . fromIntegral) result
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr it
touchManagedPtr ret
return result'
#if ENABLE_OVERLOADING
data IteratorFoldMethodInfo
instance (signature ~ (Gst.Callbacks.IteratorFoldFunction -> GValue -> m Gst.Enums.IteratorResult), MonadIO m) => O.MethodInfo IteratorFoldMethodInfo Iterator signature where
overloadedMethod _ = iteratorFold
#endif
foreign import ccall "gst_iterator_foreach" gst_iterator_foreach ::
Ptr Iterator ->
FunPtr Gst.Callbacks.C_IteratorForeachFunction ->
Ptr () ->
IO CUInt
iteratorForeach ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> Gst.Callbacks.IteratorForeachFunction
-> m Gst.Enums.IteratorResult
iteratorForeach it func = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
func' <- Gst.Callbacks.mk_IteratorForeachFunction (Gst.Callbacks.wrap_IteratorForeachFunction Nothing (Gst.Callbacks.drop_closures_IteratorForeachFunction func))
let userData = nullPtr
result <- gst_iterator_foreach it' func' userData
let result' = (toEnum . fromIntegral) result
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr it
return result'
#if ENABLE_OVERLOADING
data IteratorForeachMethodInfo
instance (signature ~ (Gst.Callbacks.IteratorForeachFunction -> m Gst.Enums.IteratorResult), MonadIO m) => O.MethodInfo IteratorForeachMethodInfo Iterator signature where
overloadedMethod _ = iteratorForeach
#endif
foreign import ccall "gst_iterator_free" gst_iterator_free ::
Ptr Iterator ->
IO ()
iteratorFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> m ()
iteratorFree it = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
gst_iterator_free it'
touchManagedPtr it
return ()
#if ENABLE_OVERLOADING
data IteratorFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo IteratorFreeMethodInfo Iterator signature where
overloadedMethod _ = iteratorFree
#endif
foreign import ccall "gst_iterator_next" gst_iterator_next ::
Ptr Iterator ->
Ptr GValue ->
IO CUInt
iteratorNext ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> m ((Gst.Enums.IteratorResult, GValue))
iteratorNext it = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
elem <- callocBoxedBytes 24 :: IO (Ptr GValue)
result <- gst_iterator_next it' elem
let result' = (toEnum . fromIntegral) result
elem' <- (wrapBoxed GValue) elem
touchManagedPtr it
return (result', elem')
#if ENABLE_OVERLOADING
data IteratorNextMethodInfo
instance (signature ~ (m ((Gst.Enums.IteratorResult, GValue))), MonadIO m) => O.MethodInfo IteratorNextMethodInfo Iterator signature where
overloadedMethod _ = iteratorNext
#endif
foreign import ccall "gst_iterator_push" gst_iterator_push ::
Ptr Iterator ->
Ptr Iterator ->
IO ()
iteratorPush ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> Iterator
-> m ()
iteratorPush it other = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
other' <- unsafeManagedPtrGetPtr other
gst_iterator_push it' other'
touchManagedPtr it
touchManagedPtr other
return ()
#if ENABLE_OVERLOADING
data IteratorPushMethodInfo
instance (signature ~ (Iterator -> m ()), MonadIO m) => O.MethodInfo IteratorPushMethodInfo Iterator signature where
overloadedMethod _ = iteratorPush
#endif
foreign import ccall "gst_iterator_resync" gst_iterator_resync ::
Ptr Iterator ->
IO ()
iteratorResync ::
(B.CallStack.HasCallStack, MonadIO m) =>
Iterator
-> m ()
iteratorResync it = liftIO $ do
it' <- unsafeManagedPtrGetPtr it
gst_iterator_resync it'
touchManagedPtr it
return ()
#if ENABLE_OVERLOADING
data IteratorResyncMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo IteratorResyncMethodInfo Iterator signature where
overloadedMethod _ = iteratorResync
#endif
#if ENABLE_OVERLOADING
type family ResolveIteratorMethod (t :: Symbol) (o :: *) :: * where
ResolveIteratorMethod "copy" o = IteratorCopyMethodInfo
ResolveIteratorMethod "filter" o = IteratorFilterMethodInfo
ResolveIteratorMethod "findCustom" o = IteratorFindCustomMethodInfo
ResolveIteratorMethod "fold" o = IteratorFoldMethodInfo
ResolveIteratorMethod "foreach" o = IteratorForeachMethodInfo
ResolveIteratorMethod "free" o = IteratorFreeMethodInfo
ResolveIteratorMethod "next" o = IteratorNextMethodInfo
ResolveIteratorMethod "push" o = IteratorPushMethodInfo
ResolveIteratorMethod "resync" o = IteratorResyncMethodInfo
ResolveIteratorMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveIteratorMethod t Iterator, O.MethodInfo info Iterator p) => OL.IsLabel t (Iterator -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif