{- | 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 image overlay data. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GstVideo.Structs.VideoOverlayCompositionMeta ( -- * Exported types VideoOverlayCompositionMeta(..) , newZeroVideoOverlayCompositionMeta , noVideoOverlayCompositionMeta , -- * Methods -- ** getInfo #method:getInfo# videoOverlayCompositionMetaGetInfo , -- * Properties -- ** meta #attr:meta# {- | parent 'GI.Gst.Structs.Meta.Meta' -} getVideoOverlayCompositionMetaMeta , #if ENABLE_OVERLOADING videoOverlayCompositionMeta_meta , #endif -- ** overlay #attr:overlay# {- | the attached 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -} clearVideoOverlayCompositionMetaOverlay , getVideoOverlayCompositionMetaOverlay , setVideoOverlayCompositionMetaOverlay , #if ENABLE_OVERLOADING videoOverlayCompositionMeta_overlay , #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.VideoOverlayComposition as GstVideo.VideoOverlayComposition -- | Memory-managed wrapper type. newtype VideoOverlayCompositionMeta = VideoOverlayCompositionMeta (ManagedPtr VideoOverlayCompositionMeta) instance WrappedPtr VideoOverlayCompositionMeta where wrappedPtrCalloc = callocBytes 24 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 24 >=> wrapPtr VideoOverlayCompositionMeta) wrappedPtrFree = Just ptr_to_g_free -- | Construct a `VideoOverlayCompositionMeta` struct initialized to zero. newZeroVideoOverlayCompositionMeta :: MonadIO m => m VideoOverlayCompositionMeta newZeroVideoOverlayCompositionMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoOverlayCompositionMeta instance tag ~ 'AttrSet => Constructible VideoOverlayCompositionMeta tag where new _ attrs = do o <- newZeroVideoOverlayCompositionMeta GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `VideoOverlayCompositionMeta`. noVideoOverlayCompositionMeta :: Maybe VideoOverlayCompositionMeta noVideoOverlayCompositionMeta = Nothing {- | Get the value of the “@meta@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' videoOverlayCompositionMeta #meta @ -} getVideoOverlayCompositionMetaMeta :: MonadIO m => VideoOverlayCompositionMeta -> m Gst.Meta.Meta getVideoOverlayCompositionMetaMeta 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 VideoOverlayCompositionMetaMetaFieldInfo instance AttrInfo VideoOverlayCompositionMetaMetaFieldInfo where type AttrAllowedOps VideoOverlayCompositionMetaMetaFieldInfo = '[ 'AttrGet] type AttrSetTypeConstraint VideoOverlayCompositionMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta) type AttrBaseTypeConstraint VideoOverlayCompositionMetaMetaFieldInfo = (~) VideoOverlayCompositionMeta type AttrGetType VideoOverlayCompositionMetaMetaFieldInfo = Gst.Meta.Meta type AttrLabel VideoOverlayCompositionMetaMetaFieldInfo = "meta" type AttrOrigin VideoOverlayCompositionMetaMetaFieldInfo = VideoOverlayCompositionMeta attrGet _ = getVideoOverlayCompositionMetaMeta attrSet _ = undefined attrConstruct = undefined attrClear _ = undefined videoOverlayCompositionMeta_meta :: AttrLabelProxy "meta" videoOverlayCompositionMeta_meta = AttrLabelProxy #endif {- | Get the value of the “@overlay@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' videoOverlayCompositionMeta #overlay @ -} getVideoOverlayCompositionMetaOverlay :: MonadIO m => VideoOverlayCompositionMeta -> m (Maybe GstVideo.VideoOverlayComposition.VideoOverlayComposition) getVideoOverlayCompositionMetaOverlay s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO (Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition) result <- SP.convertIfNonNull val $ \val' -> do val'' <- (newBoxed GstVideo.VideoOverlayComposition.VideoOverlayComposition) val' return val'' return result {- | Set the value of the “@overlay@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' videoOverlayCompositionMeta [ #overlay 'Data.GI.Base.Attributes.:=' value ] @ -} setVideoOverlayCompositionMetaOverlay :: MonadIO m => VideoOverlayCompositionMeta -> Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition -> m () setVideoOverlayCompositionMetaOverlay s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (val :: Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition) {- | Set the value of the “@overlay@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #overlay @ -} clearVideoOverlayCompositionMetaOverlay :: MonadIO m => VideoOverlayCompositionMeta -> m () clearVideoOverlayCompositionMetaOverlay s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (FP.nullPtr :: Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition) #if ENABLE_OVERLOADING data VideoOverlayCompositionMetaOverlayFieldInfo instance AttrInfo VideoOverlayCompositionMetaOverlayFieldInfo where type AttrAllowedOps VideoOverlayCompositionMetaOverlayFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint VideoOverlayCompositionMetaOverlayFieldInfo = (~) (Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition) type AttrBaseTypeConstraint VideoOverlayCompositionMetaOverlayFieldInfo = (~) VideoOverlayCompositionMeta type AttrGetType VideoOverlayCompositionMetaOverlayFieldInfo = Maybe GstVideo.VideoOverlayComposition.VideoOverlayComposition type AttrLabel VideoOverlayCompositionMetaOverlayFieldInfo = "overlay" type AttrOrigin VideoOverlayCompositionMetaOverlayFieldInfo = VideoOverlayCompositionMeta attrGet _ = getVideoOverlayCompositionMetaOverlay attrSet _ = setVideoOverlayCompositionMetaOverlay attrConstruct = undefined attrClear _ = clearVideoOverlayCompositionMetaOverlay videoOverlayCompositionMeta_overlay :: AttrLabelProxy "overlay" videoOverlayCompositionMeta_overlay = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList VideoOverlayCompositionMeta type instance O.AttributeList VideoOverlayCompositionMeta = VideoOverlayCompositionMetaAttributeList type VideoOverlayCompositionMetaAttributeList = ('[ '("meta", VideoOverlayCompositionMetaMetaFieldInfo), '("overlay", VideoOverlayCompositionMetaOverlayFieldInfo)] :: [(Symbol, *)]) #endif -- method VideoOverlayCompositionMeta::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_overlay_composition_meta_get_info" gst_video_overlay_composition_meta_get_info :: IO (Ptr Gst.MetaInfo.MetaInfo) {- | /No description available in the introspection data./ -} videoOverlayCompositionMetaGetInfo :: (B.CallStack.HasCallStack, MonadIO m) => m Gst.MetaInfo.MetaInfo videoOverlayCompositionMetaGetInfo = liftIO $ do result <- gst_video_overlay_composition_meta_get_info checkUnexpectedReturnNULL "videoOverlayCompositionMetaGetInfo" result result' <- (newPtr Gst.MetaInfo.MetaInfo) result return result' #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type family ResolveVideoOverlayCompositionMetaMethod (t :: Symbol) (o :: *) :: * where ResolveVideoOverlayCompositionMetaMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveVideoOverlayCompositionMetaMethod t VideoOverlayCompositionMeta, O.MethodInfo info VideoOverlayCompositionMeta p) => OL.IsLabel t (VideoOverlayCompositionMeta -> 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