{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Extra buffer metadata describing the GstVideoTimeCode of the frame. Each frame is assumed to have its own timecode, i.e. they are not automatically incremented\/interpolated. /Since: 1.10/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GstVideo.Structs.VideoTimeCodeMeta ( -- * Exported types VideoTimeCodeMeta(..) , newZeroVideoTimeCodeMeta , noVideoTimeCodeMeta , -- * Methods -- ** getInfo #method:getInfo# videoTimeCodeMetaGetInfo , -- * Properties -- ** meta #attr:meta# {- | parent 'GI.Gst.Structs.Meta.Meta' -} getVideoTimeCodeMetaMeta , #if ENABLE_OVERLOADING videoTimeCodeMeta_meta , #endif -- ** tc #attr:tc# {- | the GstVideoTimeCode to attach -} getVideoTimeCodeMetaTc , #if ENABLE_OVERLOADING videoTimeCodeMeta_tc , #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.Gst.Structs.Meta as Gst.Meta import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoTimeCode as GstVideo.VideoTimeCode -- | Memory-managed wrapper type. newtype VideoTimeCodeMeta = VideoTimeCodeMeta (ManagedPtr VideoTimeCodeMeta) instance WrappedPtr VideoTimeCodeMeta where wrappedPtrCalloc = callocBytes 64 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 64 >=> wrapPtr VideoTimeCodeMeta) wrappedPtrFree = Just ptr_to_g_free -- | Construct a `VideoTimeCodeMeta` struct initialized to zero. newZeroVideoTimeCodeMeta :: MonadIO m => m VideoTimeCodeMeta newZeroVideoTimeCodeMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoTimeCodeMeta instance tag ~ 'AttrSet => Constructible VideoTimeCodeMeta tag where new _ attrs = do o <- newZeroVideoTimeCodeMeta GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `VideoTimeCodeMeta`. noVideoTimeCodeMeta :: Maybe VideoTimeCodeMeta noVideoTimeCodeMeta = Nothing {- | Get the value of the “@meta@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' videoTimeCodeMeta #meta @ -} getVideoTimeCodeMetaMeta :: MonadIO m => VideoTimeCodeMeta -> m Gst.Meta.Meta getVideoTimeCodeMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta) val' <- (newPtr Gst.Meta.Meta) val return val' #if ENABLE_OVERLOADING data VideoTimeCodeMetaMetaFieldInfo instance AttrInfo VideoTimeCodeMetaMetaFieldInfo where type AttrAllowedOps VideoTimeCodeMetaMetaFieldInfo = '[ 'AttrGet] type AttrSetTypeConstraint VideoTimeCodeMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta) type AttrBaseTypeConstraint VideoTimeCodeMetaMetaFieldInfo = (~) VideoTimeCodeMeta type AttrGetType VideoTimeCodeMetaMetaFieldInfo = Gst.Meta.Meta type AttrLabel VideoTimeCodeMetaMetaFieldInfo = "meta" type AttrOrigin VideoTimeCodeMetaMetaFieldInfo = VideoTimeCodeMeta attrGet _ = getVideoTimeCodeMetaMeta attrSet _ = undefined attrConstruct = undefined attrClear _ = undefined videoTimeCodeMeta_meta :: AttrLabelProxy "meta" videoTimeCodeMeta_meta = AttrLabelProxy #endif {- | Get the value of the “@tc@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' videoTimeCodeMeta #tc @ -} getVideoTimeCodeMetaTc :: MonadIO m => VideoTimeCodeMeta -> m GstVideo.VideoTimeCode.VideoTimeCode getVideoTimeCodeMetaTc s = liftIO $ withManagedPtr s $ \ptr -> do let val = ptr `plusPtr` 16 :: (Ptr GstVideo.VideoTimeCode.VideoTimeCode) val' <- (newBoxed GstVideo.VideoTimeCode.VideoTimeCode) val return val' #if ENABLE_OVERLOADING data VideoTimeCodeMetaTcFieldInfo instance AttrInfo VideoTimeCodeMetaTcFieldInfo where type AttrAllowedOps VideoTimeCodeMetaTcFieldInfo = '[ 'AttrGet] type AttrSetTypeConstraint VideoTimeCodeMetaTcFieldInfo = (~) (Ptr GstVideo.VideoTimeCode.VideoTimeCode) type AttrBaseTypeConstraint VideoTimeCodeMetaTcFieldInfo = (~) VideoTimeCodeMeta type AttrGetType VideoTimeCodeMetaTcFieldInfo = GstVideo.VideoTimeCode.VideoTimeCode type AttrLabel VideoTimeCodeMetaTcFieldInfo = "tc" type AttrOrigin VideoTimeCodeMetaTcFieldInfo = VideoTimeCodeMeta attrGet _ = getVideoTimeCodeMetaTc attrSet _ = undefined attrConstruct = undefined attrClear _ = undefined videoTimeCodeMeta_tc :: AttrLabelProxy "tc" videoTimeCodeMeta_tc = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList VideoTimeCodeMeta type instance O.AttributeList VideoTimeCodeMeta = VideoTimeCodeMetaAttributeList type VideoTimeCodeMetaAttributeList = ('[ '("meta", VideoTimeCodeMetaMetaFieldInfo), '("tc", VideoTimeCodeMetaTcFieldInfo)] :: [(Symbol, *)]) #endif -- method VideoTimeCodeMeta::get_info -- method type : MemberFunction -- Args : [] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"})) -- throws : False -- Skip return : False foreign import ccall "gst_video_time_code_meta_get_info" gst_video_time_code_meta_get_info :: IO (Ptr Gst.MetaInfo.MetaInfo) {- | /No description available in the introspection data./ -} videoTimeCodeMetaGetInfo :: (B.CallStack.HasCallStack, MonadIO m) => m Gst.MetaInfo.MetaInfo videoTimeCodeMetaGetInfo = liftIO $ do result <- gst_video_time_code_meta_get_info checkUnexpectedReturnNULL "videoTimeCodeMetaGetInfo" result result' <- (newPtr Gst.MetaInfo.MetaInfo) result return result' #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type family ResolveVideoTimeCodeMetaMethod (t :: Symbol) (o :: *) :: * where ResolveVideoTimeCodeMetaMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveVideoTimeCodeMetaMethod t VideoTimeCodeMeta, O.MethodInfo info VideoTimeCodeMeta p) => OL.IsLabel t (VideoTimeCodeMeta -> 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