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.MiniObject

Contents

Description

#GstMiniObject is a simple structure that can be used to implement refcounted types.

Subclasses will include #GstMiniObject as the first member in their structure and then call gst_mini_object_init() to initialize the #GstMiniObject fields.

gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the refcount respectively. When the refcount of a mini-object reaches 0, the dispose function is called first and when this returns %TRUE, the free function of the miniobject is called.

A copy can be made with gst_mini_object_copy().

gst_mini_object_is_writable() will return %TRUE when the refcount of the object is exactly 1, meaning the current caller has the only reference to the object. gst_mini_object_make_writable() will return a writable version of the object, which might be a new copy when the refcount was not 1.

Opaque data can be associated with a #GstMiniObject with gst_mini_object_set_qdata() and gst_mini_object_get_qdata(). The data is meant to be specific to the particular object and is not automatically copied with gst_mini_object_copy() or similar methods.

A weak reference can be added and remove with gst_mini_object_weak_ref() and gst_mini_object_weak_unref() respectively.

Synopsis

Exported types

newtype MiniObject Source #

Constructors

MiniObject (ManagedPtr MiniObject) 

Instances

WrappedPtr MiniObject Source # 
(~) AttrOpTag tag AttrSet => Constructible MiniObject tag Source # 

Methods

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

((~) * info (ResolveMiniObjectMethod t MiniObject), MethodInfo * info MiniObject p) => IsLabel t (MiniObject -> p) Source # 

Methods

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

((~) * info (ResolveMiniObjectMethod t MiniObject), MethodInfo * info MiniObject p) => IsLabelProxy t (MiniObject -> p) Source # 
HasAttributeList * MiniObject Source # 
((~) * signature ([LockFlags] -> m ()), MonadIO m) => MethodInfo * MiniObjectUnlockMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectUnlockMethodInfo MiniObject -> signature -> s

((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectStealQdataMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectStealQdataMethodInfo MiniObject -> signature -> s

((~) * signature (Word32 -> Ptr () -> DestroyNotify -> m ()), MonadIO m) => MethodInfo * MiniObjectSetQdataMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectSetQdataMethodInfo MiniObject -> signature -> s

((~) * signature ([LockFlags] -> m Bool), MonadIO m) => MethodInfo * MiniObjectLockMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectLockMethodInfo MiniObject -> signature -> s

((~) * signature (m Bool), MonadIO m) => MethodInfo * MiniObjectIsWritableMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectIsWritableMethodInfo MiniObject -> signature -> s

((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectGetQdataMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectGetQdataMethodInfo MiniObject -> signature -> s

type AttributeList MiniObject Source # 
type AttributeList MiniObject

newZeroMiniObject :: MonadIO m => m MiniObject Source #

Construct a MiniObject struct initialized to zero.

Methods

getQdata

data MiniObjectGetQdataMethodInfo Source #

Instances

((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectGetQdataMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectGetQdataMethodInfo MiniObject -> signature -> s

isWritable

data MiniObjectIsWritableMethodInfo Source #

Instances

((~) * signature (m Bool), MonadIO m) => MethodInfo * MiniObjectIsWritableMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectIsWritableMethodInfo MiniObject -> signature -> s

lock

data MiniObjectLockMethodInfo Source #

Instances

((~) * signature ([LockFlags] -> m Bool), MonadIO m) => MethodInfo * MiniObjectLockMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectLockMethodInfo MiniObject -> signature -> s

setQdata

data MiniObjectSetQdataMethodInfo Source #

Instances

((~) * signature (Word32 -> Ptr () -> DestroyNotify -> m ()), MonadIO m) => MethodInfo * MiniObjectSetQdataMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectSetQdataMethodInfo MiniObject -> signature -> s

miniObjectSetQdata :: MonadIO m => MiniObject -> Word32 -> Ptr () -> DestroyNotify -> m () Source #

stealQdata

data MiniObjectStealQdataMethodInfo Source #

Instances

((~) * signature (Word32 -> m (Ptr ())), MonadIO m) => MethodInfo * MiniObjectStealQdataMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectStealQdataMethodInfo MiniObject -> signature -> s

unlock

data MiniObjectUnlockMethodInfo Source #

Instances

((~) * signature ([LockFlags] -> m ()), MonadIO m) => MethodInfo * MiniObjectUnlockMethodInfo MiniObject signature Source # 

Methods

overloadedMethod :: MethodProxy MiniObjectUnlockMethodInfo MiniObject -> signature -> s

Properties

dispose

miniObject_dispose :: AttrLabelProxy "dispose" Source #

flags

miniObject_flags :: AttrLabelProxy "flags" Source #

free

miniObject_free :: AttrLabelProxy "free" Source #

lockstate

miniObject_lockstate :: AttrLabelProxy "lockstate" Source #

refcount

miniObject_refcount :: AttrLabelProxy "refcount" Source #

type

miniObject_type :: AttrLabelProxy "type" Source #

setMiniObjectType :: MonadIO m => MiniObject -> GType -> m () Source #