gi-gst-0.1.6.13: Gst 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

Instances

((~) * 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 
((~) (TYPE Lifted) signature ([LockFlags] -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) MiniObjectUnlockMethodInfo MiniObject signature Source 
((~) (TYPE Lifted) signature (Word32 -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) MiniObjectStealQdataMethodInfo MiniObject signature Source 
((~) (TYPE Lifted) signature (Word32 -> Ptr () -> DestroyNotify -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) MiniObjectSetQdataMethodInfo MiniObject signature Source 
((~) (TYPE Lifted) signature ([LockFlags] -> m Bool), MonadIO m) => MethodInfo (TYPE Lifted) MiniObjectLockMethodInfo MiniObject signature Source 
((~) (TYPE Lifted) signature (m Bool), MonadIO m) => MethodInfo (TYPE Lifted) MiniObjectIsWritableMethodInfo MiniObject signature Source 
((~) (TYPE Lifted) signature (Word32 -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) MiniObjectGetQdataMethodInfo MiniObject signature Source 

newZeroMiniObject :: MonadIO m => m MiniObject Source

Construct a MiniObject struct initialized to zero.

Methods

miniObjectGetQdata

miniObjectIsWritable

miniObjectLock

miniObjectSetQdata

data MiniObjectSetQdataMethodInfo Source

Instances

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

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

miniObjectStealQdata

miniObjectTake

miniObjectUnlock

Properties

Flags

Lockstate

Refcount

Type