{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) List of tags and values used to describe media metadata. Strings in structures must be ASCII or UTF-8 encoded. Other encodings are not allowed. Strings must not be empty or 'Nothing'. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gst.Structs.TagList ( -- * Exported types TagList(..) , newZeroTagList , noTagList , -- * Methods -- ** addValue #method:addValue# #if ENABLE_OVERLOADING TagListAddValueMethodInfo , #endif tagListAddValue , -- ** copyValue #method:copyValue# tagListCopyValue , -- ** foreach #method:foreach# #if ENABLE_OVERLOADING TagListForeachMethodInfo , #endif tagListForeach , -- ** getBoolean #method:getBoolean# #if ENABLE_OVERLOADING TagListGetBooleanMethodInfo , #endif tagListGetBoolean , -- ** getBooleanIndex #method:getBooleanIndex# #if ENABLE_OVERLOADING TagListGetBooleanIndexMethodInfo , #endif tagListGetBooleanIndex , -- ** getDate #method:getDate# #if ENABLE_OVERLOADING TagListGetDateMethodInfo , #endif tagListGetDate , -- ** getDateIndex #method:getDateIndex# #if ENABLE_OVERLOADING TagListGetDateIndexMethodInfo , #endif tagListGetDateIndex , -- ** getDateTime #method:getDateTime# #if ENABLE_OVERLOADING TagListGetDateTimeMethodInfo , #endif tagListGetDateTime , -- ** getDateTimeIndex #method:getDateTimeIndex# #if ENABLE_OVERLOADING TagListGetDateTimeIndexMethodInfo , #endif tagListGetDateTimeIndex , -- ** getDouble #method:getDouble# #if ENABLE_OVERLOADING TagListGetDoubleMethodInfo , #endif tagListGetDouble , -- ** getDoubleIndex #method:getDoubleIndex# #if ENABLE_OVERLOADING TagListGetDoubleIndexMethodInfo , #endif tagListGetDoubleIndex , -- ** getFloat #method:getFloat# #if ENABLE_OVERLOADING TagListGetFloatMethodInfo , #endif tagListGetFloat , -- ** getFloatIndex #method:getFloatIndex# #if ENABLE_OVERLOADING TagListGetFloatIndexMethodInfo , #endif tagListGetFloatIndex , -- ** getInt #method:getInt# #if ENABLE_OVERLOADING TagListGetIntMethodInfo , #endif tagListGetInt , -- ** getInt64 #method:getInt64# #if ENABLE_OVERLOADING TagListGetInt64MethodInfo , #endif tagListGetInt64 , -- ** getInt64Index #method:getInt64Index# #if ENABLE_OVERLOADING TagListGetInt64IndexMethodInfo , #endif tagListGetInt64Index , -- ** getIntIndex #method:getIntIndex# #if ENABLE_OVERLOADING TagListGetIntIndexMethodInfo , #endif tagListGetIntIndex , -- ** getPointer #method:getPointer# #if ENABLE_OVERLOADING TagListGetPointerMethodInfo , #endif tagListGetPointer , -- ** getPointerIndex #method:getPointerIndex# #if ENABLE_OVERLOADING TagListGetPointerIndexMethodInfo , #endif tagListGetPointerIndex , -- ** getSample #method:getSample# #if ENABLE_OVERLOADING TagListGetSampleMethodInfo , #endif tagListGetSample , -- ** getSampleIndex #method:getSampleIndex# #if ENABLE_OVERLOADING TagListGetSampleIndexMethodInfo , #endif tagListGetSampleIndex , -- ** getScope #method:getScope# #if ENABLE_OVERLOADING TagListGetScopeMethodInfo , #endif tagListGetScope , -- ** getString #method:getString# #if ENABLE_OVERLOADING TagListGetStringMethodInfo , #endif tagListGetString , -- ** getStringIndex #method:getStringIndex# #if ENABLE_OVERLOADING TagListGetStringIndexMethodInfo , #endif tagListGetStringIndex , -- ** getTagSize #method:getTagSize# #if ENABLE_OVERLOADING TagListGetTagSizeMethodInfo , #endif tagListGetTagSize , -- ** getUint #method:getUint# #if ENABLE_OVERLOADING TagListGetUintMethodInfo , #endif tagListGetUint , -- ** getUint64 #method:getUint64# #if ENABLE_OVERLOADING TagListGetUint64MethodInfo , #endif tagListGetUint64 , -- ** getUint64Index #method:getUint64Index# #if ENABLE_OVERLOADING TagListGetUint64IndexMethodInfo , #endif tagListGetUint64Index , -- ** getUintIndex #method:getUintIndex# #if ENABLE_OVERLOADING TagListGetUintIndexMethodInfo , #endif tagListGetUintIndex , -- ** getValueIndex #method:getValueIndex# #if ENABLE_OVERLOADING TagListGetValueIndexMethodInfo , #endif tagListGetValueIndex , -- ** insert #method:insert# #if ENABLE_OVERLOADING TagListInsertMethodInfo , #endif tagListInsert , -- ** isEmpty #method:isEmpty# #if ENABLE_OVERLOADING TagListIsEmptyMethodInfo , #endif tagListIsEmpty , -- ** isEqual #method:isEqual# #if ENABLE_OVERLOADING TagListIsEqualMethodInfo , #endif tagListIsEqual , -- ** merge #method:merge# #if ENABLE_OVERLOADING TagListMergeMethodInfo , #endif tagListMerge , -- ** nTags #method:nTags# #if ENABLE_OVERLOADING TagListNTagsMethodInfo , #endif tagListNTags , -- ** newEmpty #method:newEmpty# tagListNewEmpty , -- ** newFromString #method:newFromString# tagListNewFromString , -- ** nthTagName #method:nthTagName# #if ENABLE_OVERLOADING TagListNthTagNameMethodInfo , #endif tagListNthTagName , -- ** peekStringIndex #method:peekStringIndex# #if ENABLE_OVERLOADING TagListPeekStringIndexMethodInfo , #endif tagListPeekStringIndex , -- ** removeTag #method:removeTag# #if ENABLE_OVERLOADING TagListRemoveTagMethodInfo , #endif tagListRemoveTag , -- ** setScope #method:setScope# #if ENABLE_OVERLOADING TagListSetScopeMethodInfo , #endif tagListSetScope , -- ** toString #method:toString# #if ENABLE_OVERLOADING TagListToStringMethodInfo , #endif tagListToString , -- * Properties -- ** miniObject #attr:miniObject# {- | the parent type -} getTagListMiniObject , #if ENABLE_OVERLOADING tagList_miniObject , #endif ) 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.Structs.Date as GLib.Date import qualified GI.Gst.Callbacks as Gst.Callbacks import {-# SOURCE #-} qualified GI.Gst.Enums as Gst.Enums import {-# SOURCE #-} qualified GI.Gst.Structs.DateTime as Gst.DateTime import {-# SOURCE #-} qualified GI.Gst.Structs.MiniObject as Gst.MiniObject import {-# SOURCE #-} qualified GI.Gst.Structs.Sample as Gst.Sample -- | Memory-managed wrapper type. newtype TagList = TagList (ManagedPtr TagList) foreign import ccall "gst_tag_list_get_type" c_gst_tag_list_get_type :: IO GType instance BoxedObject TagList where boxedType _ = c_gst_tag_list_get_type -- | Construct a `TagList` struct initialized to zero. newZeroTagList :: MonadIO m => m TagList newZeroTagList = liftIO $ callocBoxedBytes 64 >>= wrapBoxed TagList instance tag ~ 'AttrSet => Constructible TagList tag where new _ attrs = do o <- newZeroTagList GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `TagList`. noTagList :: Maybe TagList noTagList = Nothing {- | Get the value of the “@mini_object@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' tagList #miniObject @ -} getTagListMiniObject :: MonadIO m => TagList -> m Gst.MiniObject.MiniObject getTagListMiniObject s = liftIO $ withManagedPtr s $ \ptr -> do let val = ptr `plusPtr` 0 :: (Ptr Gst.MiniObject.MiniObject) val' <- (newPtr Gst.MiniObject.MiniObject) val return val' #if ENABLE_OVERLOADING data TagListMiniObjectFieldInfo instance AttrInfo TagListMiniObjectFieldInfo where type AttrAllowedOps TagListMiniObjectFieldInfo = '[ 'AttrGet] type AttrSetTypeConstraint TagListMiniObjectFieldInfo = (~) (Ptr Gst.MiniObject.MiniObject) type AttrBaseTypeConstraint TagListMiniObjectFieldInfo = (~) TagList type AttrGetType TagListMiniObjectFieldInfo = Gst.MiniObject.MiniObject type AttrLabel TagListMiniObjectFieldInfo = "mini_object" type AttrOrigin TagListMiniObjectFieldInfo = TagList attrGet _ = getTagListMiniObject attrSet _ = undefined attrConstruct = undefined attrClear _ = undefined tagList_miniObject :: AttrLabelProxy "miniObject" tagList_miniObject = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList TagList type instance O.AttributeList TagList = TagListAttributeList type TagListAttributeList = ('[ '("miniObject", TagListMiniObjectFieldInfo)] :: [(Symbol, *)]) #endif -- method TagList::new_empty -- method type : Constructor -- Args : [] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "TagList"})) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_new_empty" gst_tag_list_new_empty :: IO (Ptr TagList) {- | Creates a new empty GstTagList. Free-function: gst_tag_list_unref -} tagListNewEmpty :: (B.CallStack.HasCallStack, MonadIO m) => m TagList {- ^ __Returns:__ An empty tag list -} tagListNewEmpty = liftIO $ do result <- gst_tag_list_new_empty checkUnexpectedReturnNULL "tagListNewEmpty" result result' <- (wrapBoxed TagList) result return result' #if ENABLE_OVERLOADING #endif -- method TagList::new_from_string -- method type : Constructor -- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a string created with gst_tag_list_to_string()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "TagList"})) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_new_from_string" gst_tag_list_new_from_string :: CString -> -- str : TBasicType TUTF8 IO (Ptr TagList) {- | Deserializes a tag list. -} tagListNewFromString :: (B.CallStack.HasCallStack, MonadIO m) => T.Text {- ^ /@str@/: a string created with 'GI.Gst.Structs.TagList.tagListToString' -} -> m (Maybe TagList) {- ^ __Returns:__ a new 'GI.Gst.Structs.TagList.TagList', or 'Nothing' in case of an error. -} tagListNewFromString str = liftIO $ do str' <- textToCString str result <- gst_tag_list_new_from_string str' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (wrapBoxed TagList) result' return result'' freeMem str' return maybeResult #if ENABLE_OVERLOADING #endif -- method TagList::add_value -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "list to set tags in", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "Gst", name = "TagMergeMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the mode to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "GValue for this tag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_add_value" gst_tag_list_add_value :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CUInt -> -- mode : TInterface (Name {namespace = "Gst", name = "TagMergeMode"}) CString -> -- tag : TBasicType TUTF8 Ptr GValue -> -- value : TInterface (Name {namespace = "GObject", name = "Value"}) IO () {- | Sets the GValue for a given tag using the specified mode. -} tagListAddValue :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: list to set tags in -} -> Gst.Enums.TagMergeMode {- ^ /@mode@/: the mode to use -} -> T.Text {- ^ /@tag@/: tag -} -> GValue {- ^ /@value@/: GValue for this tag -} -> m () tagListAddValue list mode tag value = liftIO $ do list' <- unsafeManagedPtrGetPtr list let mode' = (fromIntegral . fromEnum) mode tag' <- textToCString tag value' <- unsafeManagedPtrGetPtr value gst_tag_list_add_value list' mode' tag' value' touchManagedPtr list touchManagedPtr value freeMem tag' return () #if ENABLE_OVERLOADING data TagListAddValueMethodInfo instance (signature ~ (Gst.Enums.TagMergeMode -> T.Text -> GValue -> m ()), MonadIO m) => O.MethodInfo TagListAddValueMethodInfo TagList signature where overloadedMethod _ = tagListAddValue #endif -- method TagList::foreach -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "list to iterate over", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface (Name {namespace = "Gst", name = "TagForeachFunc"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "function to be called for each tag", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user specified data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_foreach" gst_tag_list_foreach :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) FunPtr Gst.Callbacks.C_TagForeachFunc -> -- func : TInterface (Name {namespace = "Gst", name = "TagForeachFunc"}) Ptr () -> -- user_data : TBasicType TPtr IO () {- | Calls the given function for each tag inside the tag list. Note that if there is no tag, the function won\'t be called at all. -} tagListForeach :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: list to iterate over -} -> Gst.Callbacks.TagForeachFunc {- ^ /@func@/: function to be called for each tag -} -> m () tagListForeach list func = liftIO $ do list' <- unsafeManagedPtrGetPtr list func' <- Gst.Callbacks.mk_TagForeachFunc (Gst.Callbacks.wrap_TagForeachFunc Nothing (Gst.Callbacks.drop_closures_TagForeachFunc func)) let userData = nullPtr gst_tag_list_foreach list' func' userData safeFreeFunPtr $ castFunPtrToPtr func' touchManagedPtr list return () #if ENABLE_OVERLOADING data TagListForeachMethodInfo instance (signature ~ (Gst.Callbacks.TagForeachFunc -> m ()), MonadIO m) => O.MethodInfo TagListForeachMethodInfo TagList signature where overloadedMethod _ = tagListForeach #endif -- method TagList::get_boolean -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_boolean" gst_tag_list_get_boolean :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr CInt -> -- value : TBasicType TBoolean IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetBoolean :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Bool)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetBoolean list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CInt) result <- gst_tag_list_get_boolean list' tag' value let result' = (/= 0) result value' <- peek value let value'' = (/= 0) value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetBooleanMethodInfo instance (signature ~ (T.Text -> m ((Bool, Bool))), MonadIO m) => O.MethodInfo TagListGetBooleanMethodInfo TagList signature where overloadedMethod _ = tagListGetBoolean #endif -- method TagList::get_boolean_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_boolean_index" gst_tag_list_get_boolean_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr CInt -> -- value : TBasicType TBoolean IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetBooleanIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Bool)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetBooleanIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CInt) result <- gst_tag_list_get_boolean_index list' tag' index value let result' = (/= 0) result value' <- peek value let value'' = (/= 0) value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetBooleanIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Bool))), MonadIO m) => O.MethodInfo TagListGetBooleanIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetBooleanIndex #endif -- method TagList::get_date -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GLib", name = "Date"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of a GDate pointer\n variable to store the result into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_date" gst_tag_list_get_date :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr (Ptr GLib.Date.Date) -> -- value : TInterface (Name {namespace = "GLib", name = "Date"}) IO CInt {- | Copies the first date for the given tag in the taglist into the variable pointed to by /@value@/. Free the date with 'GI.GLib.Structs.Date.dateFree' when it is no longer needed. Free-function: g_date_free -} tagListGetDate :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, GLib.Date.Date)) {- ^ __Returns:__ 'True', if a date was copied, 'False' if the tag didn\'t exist in the given list or if it was 'Nothing'. -} tagListGetDate list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr (Ptr GLib.Date.Date)) result <- gst_tag_list_get_date list' tag' value let result' = (/= 0) result value' <- peek value value'' <- (wrapBoxed GLib.Date.Date) value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetDateMethodInfo instance (signature ~ (T.Text -> m ((Bool, GLib.Date.Date))), MonadIO m) => O.MethodInfo TagListGetDateMethodInfo TagList signature where overloadedMethod _ = tagListGetDate #endif -- method TagList::get_date_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GLib", name = "Date"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_date_index" gst_tag_list_get_date_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr (Ptr GLib.Date.Date) -> -- value : TInterface (Name {namespace = "GLib", name = "Date"}) IO CInt {- | Gets the date that is at the given index for the given tag in the given list and copies it into the variable pointed to by /@value@/. Free the date with 'GI.GLib.Structs.Date.dateFree' when it is no longer needed. Free-function: g_date_free -} tagListGetDateIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, GLib.Date.Date)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list or if it was 'Nothing'. -} tagListGetDateIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr (Ptr GLib.Date.Date)) result <- gst_tag_list_get_date_index list' tag' index value let result' = (/= 0) result value' <- peek value value'' <- (wrapBoxed GLib.Date.Date) value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetDateIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, GLib.Date.Date))), MonadIO m) => O.MethodInfo TagListGetDateIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetDateIndex #endif -- method TagList::get_date_time -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "Gst", name = "DateTime"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of a #GstDateTime\n pointer variable to store the result into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_date_time" gst_tag_list_get_date_time :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr (Ptr Gst.DateTime.DateTime) -> -- value : TInterface (Name {namespace = "Gst", name = "DateTime"}) IO CInt {- | Copies the first datetime for the given tag in the taglist into the variable pointed to by /@value@/. Unref the date with 'GI.Gst.Structs.DateTime.dateTimeUnref' when it is no longer needed. Free-function: gst_date_time_unref -} tagListGetDateTime :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Gst.DateTime.DateTime)) {- ^ __Returns:__ 'True', if a datetime was copied, 'False' if the tag didn\'t exist in the given list or if it was 'Nothing'. -} tagListGetDateTime list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr (Ptr Gst.DateTime.DateTime)) result <- gst_tag_list_get_date_time list' tag' value let result' = (/= 0) result value' <- peek value value'' <- (wrapBoxed Gst.DateTime.DateTime) value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetDateTimeMethodInfo instance (signature ~ (T.Text -> m ((Bool, Gst.DateTime.DateTime))), MonadIO m) => O.MethodInfo TagListGetDateTimeMethodInfo TagList signature where overloadedMethod _ = tagListGetDateTime #endif -- method TagList::get_date_time_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "Gst", name = "DateTime"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_date_time_index" gst_tag_list_get_date_time_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr (Ptr Gst.DateTime.DateTime) -> -- value : TInterface (Name {namespace = "Gst", name = "DateTime"}) IO CInt {- | Gets the datetime that is at the given index for the given tag in the given list and copies it into the variable pointed to by /@value@/. Unref the datetime with 'GI.Gst.Structs.DateTime.dateTimeUnref' when it is no longer needed. Free-function: gst_date_time_unref -} tagListGetDateTimeIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Gst.DateTime.DateTime)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list or if it was 'Nothing'. -} tagListGetDateTimeIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr (Ptr Gst.DateTime.DateTime)) result <- gst_tag_list_get_date_time_index list' tag' index value let result' = (/= 0) result value' <- peek value value'' <- (wrapBoxed Gst.DateTime.DateTime) value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetDateTimeIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Gst.DateTime.DateTime))), MonadIO m) => O.MethodInfo TagListGetDateTimeIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetDateTimeIndex #endif -- method TagList::get_double -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_double" gst_tag_list_get_double :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr CDouble -> -- value : TBasicType TDouble IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetDouble :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Double)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetDouble list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CDouble) result <- gst_tag_list_get_double list' tag' value let result' = (/= 0) result value' <- peek value let value'' = realToFrac value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetDoubleMethodInfo instance (signature ~ (T.Text -> m ((Bool, Double))), MonadIO m) => O.MethodInfo TagListGetDoubleMethodInfo TagList signature where overloadedMethod _ = tagListGetDouble #endif -- method TagList::get_double_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_double_index" gst_tag_list_get_double_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr CDouble -> -- value : TBasicType TDouble IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetDoubleIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Double)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetDoubleIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CDouble) result <- gst_tag_list_get_double_index list' tag' index value let result' = (/= 0) result value' <- peek value let value'' = realToFrac value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetDoubleIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Double))), MonadIO m) => O.MethodInfo TagListGetDoubleIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetDoubleIndex #endif -- method TagList::get_float -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TFloat, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_float" gst_tag_list_get_float :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr CFloat -> -- value : TBasicType TFloat IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetFloat :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Float)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetFloat list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CFloat) result <- gst_tag_list_get_float list' tag' value let result' = (/= 0) result value' <- peek value let value'' = realToFrac value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetFloatMethodInfo instance (signature ~ (T.Text -> m ((Bool, Float))), MonadIO m) => O.MethodInfo TagListGetFloatMethodInfo TagList signature where overloadedMethod _ = tagListGetFloat #endif -- method TagList::get_float_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TFloat, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_float_index" gst_tag_list_get_float_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr CFloat -> -- value : TBasicType TFloat IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetFloatIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Float)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetFloatIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CFloat) result <- gst_tag_list_get_float_index list' tag' index value let result' = (/= 0) result value' <- peek value let value'' = realToFrac value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetFloatIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Float))), MonadIO m) => O.MethodInfo TagListGetFloatIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetFloatIndex #endif -- method TagList::get_int -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_int" gst_tag_list_get_int :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr Int32 -> -- value : TBasicType TInt IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetInt :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Int32)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetInt list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Int32) result <- gst_tag_list_get_int list' tag' value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetIntMethodInfo instance (signature ~ (T.Text -> m ((Bool, Int32))), MonadIO m) => O.MethodInfo TagListGetIntMethodInfo TagList signature where overloadedMethod _ = tagListGetInt #endif -- method TagList::get_int64 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_int64" gst_tag_list_get_int64 :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr Int64 -> -- value : TBasicType TInt64 IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetInt64 :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Int64)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetInt64 list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Int64) result <- gst_tag_list_get_int64 list' tag' value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetInt64MethodInfo instance (signature ~ (T.Text -> m ((Bool, Int64))), MonadIO m) => O.MethodInfo TagListGetInt64MethodInfo TagList signature where overloadedMethod _ = tagListGetInt64 #endif -- method TagList::get_int64_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_int64_index" gst_tag_list_get_int64_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr Int64 -> -- value : TBasicType TInt64 IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetInt64Index :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Int64)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetInt64Index list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Int64) result <- gst_tag_list_get_int64_index list' tag' index value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetInt64IndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Int64))), MonadIO m) => O.MethodInfo TagListGetInt64IndexMethodInfo TagList signature where overloadedMethod _ = tagListGetInt64Index #endif -- method TagList::get_int_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_int_index" gst_tag_list_get_int_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr Int32 -> -- value : TBasicType TInt IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetIntIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Int32)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetIntIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Int32) result <- gst_tag_list_get_int_index list' tag' index value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetIntIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Int32))), MonadIO m) => O.MethodInfo TagListGetIntIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetIntIndex #endif -- method TagList::get_pointer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TPtr, direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_pointer" gst_tag_list_get_pointer :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr (Ptr ()) -> -- value : TBasicType TPtr IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetPointer :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Ptr ())) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetPointer list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr (Ptr ())) result <- gst_tag_list_get_pointer list' tag' value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetPointerMethodInfo instance (signature ~ (T.Text -> m ((Bool, Ptr ()))), MonadIO m) => O.MethodInfo TagListGetPointerMethodInfo TagList signature where overloadedMethod _ = tagListGetPointer #endif -- method TagList::get_pointer_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TPtr, direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_pointer_index" gst_tag_list_get_pointer_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr (Ptr ()) -> -- value : TBasicType TPtr IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetPointerIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Ptr ())) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetPointerIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr (Ptr ())) result <- gst_tag_list_get_pointer_index list' tag' index value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetPointerIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Ptr ()))), MonadIO m) => O.MethodInfo TagListGetPointerIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetPointerIndex #endif -- method TagList::get_sample -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sample", argType = TInterface (Name {namespace = "Gst", name = "Sample"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of a GstSample\n pointer variable to store the result into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_sample" gst_tag_list_get_sample :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr (Ptr Gst.Sample.Sample) -> -- sample : TInterface (Name {namespace = "Gst", name = "Sample"}) IO CInt {- | Copies the first sample for the given tag in the taglist into the variable pointed to by /@sample@/. Free the sample with @/gst_sample_unref()/@ when it is no longer needed. You can retrieve the buffer from the sample using 'GI.Gst.Structs.Sample.sampleGetBuffer' and the associated caps (if any) with 'GI.Gst.Structs.Sample.sampleGetCaps'. Free-function: gst_sample_unref -} tagListGetSample :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Gst.Sample.Sample)) {- ^ __Returns:__ 'True', if a sample was returned, 'False' if the tag didn\'t exist in the given list or if it was 'Nothing'. -} tagListGetSample list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag sample <- allocMem :: IO (Ptr (Ptr Gst.Sample.Sample)) result <- gst_tag_list_get_sample list' tag' sample let result' = (/= 0) result sample' <- peek sample sample'' <- (wrapBoxed Gst.Sample.Sample) sample' touchManagedPtr list freeMem tag' freeMem sample return (result', sample'') #if ENABLE_OVERLOADING data TagListGetSampleMethodInfo instance (signature ~ (T.Text -> m ((Bool, Gst.Sample.Sample))), MonadIO m) => O.MethodInfo TagListGetSampleMethodInfo TagList signature where overloadedMethod _ = tagListGetSample #endif -- method TagList::get_sample_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sample", argType = TInterface (Name {namespace = "Gst", name = "Sample"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of a GstSample\n pointer variable to store the result into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_sample_index" gst_tag_list_get_sample_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr (Ptr Gst.Sample.Sample) -> -- sample : TInterface (Name {namespace = "Gst", name = "Sample"}) IO CInt {- | Gets the sample that is at the given index for the given tag in the given list and copies it into the variable pointed to by /@sample@/. Free the sample with @/gst_sample_unref()/@ when it is no longer needed. You can retrieve the buffer from the sample using 'GI.Gst.Structs.Sample.sampleGetBuffer' and the associated caps (if any) with 'GI.Gst.Structs.Sample.sampleGetCaps'. Free-function: gst_sample_unref -} tagListGetSampleIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Gst.Sample.Sample)) {- ^ __Returns:__ 'True', if a sample was copied, 'False' if the tag didn\'t exist in the given list or if it was 'Nothing'. -} tagListGetSampleIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag sample <- allocMem :: IO (Ptr (Ptr Gst.Sample.Sample)) result <- gst_tag_list_get_sample_index list' tag' index sample let result' = (/= 0) result sample' <- peek sample sample'' <- (wrapBoxed Gst.Sample.Sample) sample' touchManagedPtr list freeMem tag' freeMem sample return (result', sample'') #if ENABLE_OVERLOADING data TagListGetSampleIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Gst.Sample.Sample))), MonadIO m) => O.MethodInfo TagListGetSampleIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetSampleIndex #endif -- method TagList::get_scope -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "TagScope"})) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_scope" gst_tag_list_get_scope :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) IO CUInt {- | Gets the scope of /@list@/. -} tagListGetScope :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' -} -> m Gst.Enums.TagScope {- ^ __Returns:__ The scope of /@list@/ -} tagListGetScope list = liftIO $ do list' <- unsafeManagedPtrGetPtr list result <- gst_tag_list_get_scope list' let result' = (toEnum . fromIntegral) result touchManagedPtr list return result' #if ENABLE_OVERLOADING data TagListGetScopeMethodInfo instance (signature ~ (m Gst.Enums.TagScope), MonadIO m) => O.MethodInfo TagListGetScopeMethodInfo TagList signature where overloadedMethod _ = tagListGetScope #endif -- method TagList::get_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_string" gst_tag_list_get_string :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr CString -> -- value : TBasicType TUTF8 IO CInt {- | Copies the contents for the given tag into the value, possibly merging multiple values into one if multiple values are associated with the tag. Use gst_tag_list_get_string_index (list, tag, 0, value) if you want to retrieve the first string associated with this tag unmodified. The resulting string in /@value@/ will be in UTF-8 encoding and should be freed by the caller using g_free when no longer needed. The returned string is also guaranteed to be non-'Nothing' and non-empty. Free-function: g_free -} tagListGetString :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, T.Text)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetString list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CString) result <- gst_tag_list_get_string list' tag' value let result' = (/= 0) result value' <- peek value value'' <- cstringToText value' freeMem value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetStringMethodInfo instance (signature ~ (T.Text -> m ((Bool, T.Text))), MonadIO m) => O.MethodInfo TagListGetStringMethodInfo TagList signature where overloadedMethod _ = tagListGetString #endif -- method TagList::get_string_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_string_index" gst_tag_list_get_string_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr CString -> -- value : TBasicType TUTF8 IO CInt {- | Gets the value that is at the given index for the given tag in the given list. The resulting string in /@value@/ will be in UTF-8 encoding and should be freed by the caller using g_free when no longer needed. The returned string is also guaranteed to be non-'Nothing' and non-empty. Free-function: g_free -} tagListGetStringIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, T.Text)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetStringIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CString) result <- gst_tag_list_get_string_index list' tag' index value let result' = (/= 0) result value' <- peek value value'' <- cstringToText value' freeMem value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListGetStringIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, T.Text))), MonadIO m) => O.MethodInfo TagListGetStringIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetStringIndex #endif -- method TagList::get_tag_size -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a taglist", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the tag to query", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUInt) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_tag_size" gst_tag_list_get_tag_size :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 IO Word32 {- | Checks how many value are stored in this tag list for the given tag. -} tagListGetTagSize :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a taglist -} -> T.Text {- ^ /@tag@/: the tag to query -} -> m Word32 {- ^ __Returns:__ The number of tags stored -} tagListGetTagSize list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag result <- gst_tag_list_get_tag_size list' tag' touchManagedPtr list freeMem tag' return result #if ENABLE_OVERLOADING data TagListGetTagSizeMethodInfo instance (signature ~ (T.Text -> m Word32), MonadIO m) => O.MethodInfo TagListGetTagSizeMethodInfo TagList signature where overloadedMethod _ = tagListGetTagSize #endif -- method TagList::get_uint -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_uint" gst_tag_list_get_uint :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr Word32 -> -- value : TBasicType TUInt IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetUint :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Word32)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetUint list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Word32) result <- gst_tag_list_get_uint list' tag' value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetUintMethodInfo instance (signature ~ (T.Text -> m ((Bool, Word32))), MonadIO m) => O.MethodInfo TagListGetUintMethodInfo TagList signature where overloadedMethod _ = tagListGetUint #endif -- method TagList::get_uint64 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_uint64" gst_tag_list_get_uint64 :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Ptr Word64 -> -- value : TBasicType TUInt64 IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. -} tagListGetUint64 :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, Word64)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetUint64 list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Word64) result <- gst_tag_list_get_uint64 list' tag' value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetUint64MethodInfo instance (signature ~ (T.Text -> m ((Bool, Word64))), MonadIO m) => O.MethodInfo TagListGetUint64MethodInfo TagList signature where overloadedMethod _ = tagListGetUint64 #endif -- method TagList::get_uint64_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_uint64_index" gst_tag_list_get_uint64_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr Word64 -> -- value : TBasicType TUInt64 IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetUint64Index :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Word64)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetUint64Index list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Word64) result <- gst_tag_list_get_uint64_index list' tag' index value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetUint64IndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Word64))), MonadIO m) => O.MethodInfo TagListGetUint64IndexMethodInfo TagList signature where overloadedMethod _ = tagListGetUint64Index #endif -- method TagList::get_uint_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_uint_index" gst_tag_list_get_uint_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr Word32 -> -- value : TBasicType TUInt IO CInt {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetUintIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, Word32)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListGetUintIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr Word32) result <- gst_tag_list_get_uint_index list' tag' index value let result' = (/= 0) result value' <- peek value touchManagedPtr list freeMem tag' freeMem value return (result', value') #if ENABLE_OVERLOADING data TagListGetUintIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, Word32))), MonadIO m) => O.MethodInfo TagListGetUintIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetUintIndex #endif -- method TagList::get_value_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "GObject", name = "Value"})) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_get_value_index" gst_tag_list_get_value_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt IO (Ptr GValue) {- | Gets the value that is at the given index for the given tag in the given list. -} tagListGetValueIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m (Maybe GValue) {- ^ __Returns:__ The GValue for the specified entry or 'Nothing' if the tag wasn\'t available or the tag doesn\'t have as many entries -} tagListGetValueIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag result <- gst_tag_list_get_value_index list' tag' index maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (newBoxed GValue) result' return result'' touchManagedPtr list freeMem tag' return maybeResult #if ENABLE_OVERLOADING data TagListGetValueIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m (Maybe GValue)), MonadIO m) => O.MethodInfo TagListGetValueIndexMethodInfo TagList signature where overloadedMethod _ = tagListGetValueIndex #endif -- method TagList::insert -- method type : OrdinaryMethod -- Args : [Arg {argCName = "into", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "list to merge into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "list to merge from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "Gst", name = "TagMergeMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the mode to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_insert" gst_tag_list_insert :: Ptr TagList -> -- into : TInterface (Name {namespace = "Gst", name = "TagList"}) Ptr TagList -> -- from : TInterface (Name {namespace = "Gst", name = "TagList"}) CUInt -> -- mode : TInterface (Name {namespace = "Gst", name = "TagMergeMode"}) IO () {- | Inserts the tags of the /@from@/ list into the first list using the given mode. -} tagListInsert :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@into@/: list to merge into -} -> TagList {- ^ /@from@/: list to merge from -} -> Gst.Enums.TagMergeMode {- ^ /@mode@/: the mode to use -} -> m () tagListInsert into from mode = liftIO $ do into' <- unsafeManagedPtrGetPtr into from' <- unsafeManagedPtrGetPtr from let mode' = (fromIntegral . fromEnum) mode gst_tag_list_insert into' from' mode' touchManagedPtr into touchManagedPtr from return () #if ENABLE_OVERLOADING data TagListInsertMethodInfo instance (signature ~ (TagList -> Gst.Enums.TagMergeMode -> m ()), MonadIO m) => O.MethodInfo TagListInsertMethodInfo TagList signature where overloadedMethod _ = tagListInsert #endif -- method TagList::is_empty -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstTagList.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_is_empty" gst_tag_list_is_empty :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) IO CInt {- | Checks if the given taglist is empty. -} tagListIsEmpty :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: A 'GI.Gst.Structs.TagList.TagList'. -} -> m Bool {- ^ __Returns:__ 'True' if the taglist is empty, otherwise 'False'. -} tagListIsEmpty list = liftIO $ do list' <- unsafeManagedPtrGetPtr list result <- gst_tag_list_is_empty list' let result' = (/= 0) result touchManagedPtr list return result' #if ENABLE_OVERLOADING data TagListIsEmptyMethodInfo instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo TagListIsEmptyMethodInfo TagList signature where overloadedMethod _ = tagListIsEmpty #endif -- method TagList::is_equal -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list1", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list2", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_is_equal" gst_tag_list_is_equal :: Ptr TagList -> -- list1 : TInterface (Name {namespace = "Gst", name = "TagList"}) Ptr TagList -> -- list2 : TInterface (Name {namespace = "Gst", name = "TagList"}) IO CInt {- | Checks if the two given taglists are equal. -} tagListIsEqual :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list1@/: a 'GI.Gst.Structs.TagList.TagList'. -} -> TagList {- ^ /@list2@/: a 'GI.Gst.Structs.TagList.TagList'. -} -> m Bool {- ^ __Returns:__ 'True' if the taglists are equal, otherwise 'False' -} tagListIsEqual list1 list2 = liftIO $ do list1' <- unsafeManagedPtrGetPtr list1 list2' <- unsafeManagedPtrGetPtr list2 result <- gst_tag_list_is_equal list1' list2' let result' = (/= 0) result touchManagedPtr list1 touchManagedPtr list2 return result' #if ENABLE_OVERLOADING data TagListIsEqualMethodInfo instance (signature ~ (TagList -> m Bool), MonadIO m) => O.MethodInfo TagListIsEqualMethodInfo TagList signature where overloadedMethod _ = tagListIsEqual #endif -- method TagList::merge -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list1", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "first list to merge", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list2", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "second list to merge", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "Gst", name = "TagMergeMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the mode to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "TagList"})) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_merge" gst_tag_list_merge :: Ptr TagList -> -- list1 : TInterface (Name {namespace = "Gst", name = "TagList"}) Ptr TagList -> -- list2 : TInterface (Name {namespace = "Gst", name = "TagList"}) CUInt -> -- mode : TInterface (Name {namespace = "Gst", name = "TagMergeMode"}) IO (Ptr TagList) {- | Merges the two given lists into a new list. If one of the lists is 'Nothing', a copy of the other is returned. If both lists are 'Nothing', 'Nothing' is returned. Free-function: gst_tag_list_unref -} tagListMerge :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list1@/: first list to merge -} -> Maybe (TagList) {- ^ /@list2@/: second list to merge -} -> Gst.Enums.TagMergeMode {- ^ /@mode@/: the mode to use -} -> m (Maybe TagList) {- ^ __Returns:__ the new list -} tagListMerge list1 list2 mode = liftIO $ do list1' <- unsafeManagedPtrGetPtr list1 maybeList2 <- case list2 of Nothing -> return nullPtr Just jList2 -> do jList2' <- unsafeManagedPtrGetPtr jList2 return jList2' let mode' = (fromIntegral . fromEnum) mode result <- gst_tag_list_merge list1' maybeList2 mode' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (wrapBoxed TagList) result' return result'' touchManagedPtr list1 whenJust list2 touchManagedPtr return maybeResult #if ENABLE_OVERLOADING data TagListMergeMethodInfo instance (signature ~ (Maybe (TagList) -> Gst.Enums.TagMergeMode -> m (Maybe TagList)), MonadIO m) => O.MethodInfo TagListMergeMethodInfo TagList signature where overloadedMethod _ = tagListMerge #endif -- method TagList::n_tags -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstTagList.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TInt) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_n_tags" gst_tag_list_n_tags :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) IO Int32 {- | Get the number of tags in /@list@/. -} tagListNTags :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: A 'GI.Gst.Structs.TagList.TagList'. -} -> m Int32 {- ^ __Returns:__ The number of tags in /@list@/. -} tagListNTags list = liftIO $ do list' <- unsafeManagedPtrGetPtr list result <- gst_tag_list_n_tags list' touchManagedPtr list return result #if ENABLE_OVERLOADING data TagListNTagsMethodInfo instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo TagListNTagsMethodInfo TagList signature where overloadedMethod _ = tagListNTags #endif -- method TagList::nth_tag_name -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstTagList.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the index", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_nth_tag_name" gst_tag_list_nth_tag_name :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) Word32 -> -- index : TBasicType TUInt IO CString {- | Get the name of the tag in /@list@/ at /@index@/. -} tagListNthTagName :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: A 'GI.Gst.Structs.TagList.TagList'. -} -> Word32 {- ^ /@index@/: the index -} -> m T.Text {- ^ __Returns:__ The name of the tag at /@index@/. -} tagListNthTagName list index = liftIO $ do list' <- unsafeManagedPtrGetPtr list result <- gst_tag_list_nth_tag_name list' index checkUnexpectedReturnNULL "tagListNthTagName" result result' <- cstringToText result touchManagedPtr list return result' #if ENABLE_OVERLOADING data TagListNthTagNameMethodInfo instance (signature ~ (Word32 -> m T.Text), MonadIO m) => O.MethodInfo TagListNthTagNameMethodInfo TagList signature where overloadedMethod _ = tagListNthTagName #endif -- method TagList::peek_string_index -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of entry to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_peek_string_index" gst_tag_list_peek_string_index :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 Word32 -> -- index : TBasicType TUInt Ptr CString -> -- value : TBasicType TUTF8 IO CInt {- | Peeks at the value that is at the given index for the given tag in the given list. The resulting string in /@value@/ will be in UTF-8 encoding and doesn\'t need to be freed by the caller. The returned string is also guaranteed to be non-'Nothing' and non-empty. -} tagListPeekStringIndex :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> Word32 {- ^ /@index@/: number of entry to read out -} -> m ((Bool, T.Text)) {- ^ __Returns:__ 'True', if a value was set, 'False' if the tag didn\'t exist in the given list. -} tagListPeekStringIndex list tag index = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag value <- allocMem :: IO (Ptr CString) result <- gst_tag_list_peek_string_index list' tag' index value let result' = (/= 0) result value' <- peek value value'' <- cstringToText value' touchManagedPtr list freeMem tag' freeMem value return (result', value'') #if ENABLE_OVERLOADING data TagListPeekStringIndexMethodInfo instance (signature ~ (T.Text -> Word32 -> m ((Bool, T.Text))), MonadIO m) => O.MethodInfo TagListPeekStringIndexMethodInfo TagList signature where overloadedMethod _ = tagListPeekStringIndex #endif -- method TagList::remove_tag -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "list to remove tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to remove", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_remove_tag" gst_tag_list_remove_tag :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 IO () {- | Removes the given tag from the taglist. -} tagListRemoveTag :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: list to remove tag from -} -> T.Text {- ^ /@tag@/: tag to remove -} -> m () tagListRemoveTag list tag = liftIO $ do list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag gst_tag_list_remove_tag list' tag' touchManagedPtr list freeMem tag' return () #if ENABLE_OVERLOADING data TagListRemoveTagMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m) => O.MethodInfo TagListRemoveTagMethodInfo TagList signature where overloadedMethod _ = tagListRemoveTag #endif -- method TagList::set_scope -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope", argType = TInterface (Name {namespace = "Gst", name = "TagScope"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "new scope for @list", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_set_scope" gst_tag_list_set_scope :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CUInt -> -- scope : TInterface (Name {namespace = "Gst", name = "TagScope"}) IO () {- | Sets the scope of /@list@/ to /@scope@/. By default the scope of a taglist is stream scope. -} tagListSetScope :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' -} -> Gst.Enums.TagScope {- ^ /@scope@/: new scope for /@list@/ -} -> m () tagListSetScope list scope = liftIO $ do list' <- unsafeManagedPtrGetPtr list let scope' = (fromIntegral . fromEnum) scope gst_tag_list_set_scope list' scope' touchManagedPtr list return () #if ENABLE_OVERLOADING data TagListSetScopeMethodInfo instance (signature ~ (Gst.Enums.TagScope -> m ()), MonadIO m) => O.MethodInfo TagListSetScopeMethodInfo TagList signature where overloadedMethod _ = tagListSetScope #endif -- method TagList::to_string -- method type : OrdinaryMethod -- Args : [Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstTagList", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_to_string" gst_tag_list_to_string :: Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) IO CString {- | Serializes a tag list to a string. -} tagListToString :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: a 'GI.Gst.Structs.TagList.TagList' -} -> m (Maybe T.Text) {- ^ __Returns:__ a newly-allocated string, or 'Nothing' in case of an error. The string must be freed with 'GI.GLib.Functions.free' when no longer needed. -} tagListToString list = liftIO $ do list' <- unsafeManagedPtrGetPtr list result <- gst_tag_list_to_string list' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' freeMem result' return result'' touchManagedPtr list return maybeResult #if ENABLE_OVERLOADING data TagListToStringMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m) => O.MethodInfo TagListToStringMethodInfo TagList signature where overloadedMethod _ = tagListToString #endif -- method TagList::copy_value -- method type : MemberFunction -- Args : [Arg {argCName = "dest", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "uninitialized #GValue to copy into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "list", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "list to get the tag from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tag to read out", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gst_tag_list_copy_value" gst_tag_list_copy_value :: Ptr GValue -> -- dest : TInterface (Name {namespace = "GObject", name = "Value"}) Ptr TagList -> -- list : TInterface (Name {namespace = "Gst", name = "TagList"}) CString -> -- tag : TBasicType TUTF8 IO CInt {- | Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. You must 'GI.GObject.Structs.Value.valueUnset' the value after use. -} tagListCopyValue :: (B.CallStack.HasCallStack, MonadIO m) => TagList {- ^ /@list@/: list to get the tag from -} -> T.Text {- ^ /@tag@/: tag to read out -} -> m ((Bool, GValue)) {- ^ __Returns:__ 'True', if a value was copied, 'False' if the tag didn\'t exist in the given list. -} tagListCopyValue list tag = liftIO $ do dest <- callocBoxedBytes 24 :: IO (Ptr GValue) list' <- unsafeManagedPtrGetPtr list tag' <- textToCString tag result <- gst_tag_list_copy_value dest list' tag' let result' = (/= 0) result dest' <- (wrapBoxed GValue) dest touchManagedPtr list freeMem tag' return (result', dest') #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type family ResolveTagListMethod (t :: Symbol) (o :: *) :: * where ResolveTagListMethod "addValue" o = TagListAddValueMethodInfo ResolveTagListMethod "foreach" o = TagListForeachMethodInfo ResolveTagListMethod "insert" o = TagListInsertMethodInfo ResolveTagListMethod "isEmpty" o = TagListIsEmptyMethodInfo ResolveTagListMethod "isEqual" o = TagListIsEqualMethodInfo ResolveTagListMethod "merge" o = TagListMergeMethodInfo ResolveTagListMethod "nTags" o = TagListNTagsMethodInfo ResolveTagListMethod "nthTagName" o = TagListNthTagNameMethodInfo ResolveTagListMethod "peekStringIndex" o = TagListPeekStringIndexMethodInfo ResolveTagListMethod "removeTag" o = TagListRemoveTagMethodInfo ResolveTagListMethod "toString" o = TagListToStringMethodInfo ResolveTagListMethod "getBoolean" o = TagListGetBooleanMethodInfo ResolveTagListMethod "getBooleanIndex" o = TagListGetBooleanIndexMethodInfo ResolveTagListMethod "getDate" o = TagListGetDateMethodInfo ResolveTagListMethod "getDateIndex" o = TagListGetDateIndexMethodInfo ResolveTagListMethod "getDateTime" o = TagListGetDateTimeMethodInfo ResolveTagListMethod "getDateTimeIndex" o = TagListGetDateTimeIndexMethodInfo ResolveTagListMethod "getDouble" o = TagListGetDoubleMethodInfo ResolveTagListMethod "getDoubleIndex" o = TagListGetDoubleIndexMethodInfo ResolveTagListMethod "getFloat" o = TagListGetFloatMethodInfo ResolveTagListMethod "getFloatIndex" o = TagListGetFloatIndexMethodInfo ResolveTagListMethod "getInt" o = TagListGetIntMethodInfo ResolveTagListMethod "getInt64" o = TagListGetInt64MethodInfo ResolveTagListMethod "getInt64Index" o = TagListGetInt64IndexMethodInfo ResolveTagListMethod "getIntIndex" o = TagListGetIntIndexMethodInfo ResolveTagListMethod "getPointer" o = TagListGetPointerMethodInfo ResolveTagListMethod "getPointerIndex" o = TagListGetPointerIndexMethodInfo ResolveTagListMethod "getSample" o = TagListGetSampleMethodInfo ResolveTagListMethod "getSampleIndex" o = TagListGetSampleIndexMethodInfo ResolveTagListMethod "getScope" o = TagListGetScopeMethodInfo ResolveTagListMethod "getString" o = TagListGetStringMethodInfo ResolveTagListMethod "getStringIndex" o = TagListGetStringIndexMethodInfo ResolveTagListMethod "getTagSize" o = TagListGetTagSizeMethodInfo ResolveTagListMethod "getUint" o = TagListGetUintMethodInfo ResolveTagListMethod "getUint64" o = TagListGetUint64MethodInfo ResolveTagListMethod "getUint64Index" o = TagListGetUint64IndexMethodInfo ResolveTagListMethod "getUintIndex" o = TagListGetUintIndexMethodInfo ResolveTagListMethod "getValueIndex" o = TagListGetValueIndexMethodInfo ResolveTagListMethod "setScope" o = TagListSetScopeMethodInfo ResolveTagListMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveTagListMethod t TagList, O.MethodInfo info TagList p) => OL.IsLabel t (TagList -> 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