gi-gstvideo-1.0.18: GI/GstVideo/Structs/VideoRectangle.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Helper structure representing a rectangular area.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GstVideo.Structs.VideoRectangle
(
-- * Exported types
VideoRectangle(..) ,
newZeroVideoRectangle ,
noVideoRectangle ,
-- * Properties
-- ** h #attr:h#
{- | height of the rectangle
-}
getVideoRectangleH ,
setVideoRectangleH ,
#if ENABLE_OVERLOADING
videoRectangle_h ,
#endif
-- ** w #attr:w#
{- | width of the rectangle
-}
getVideoRectangleW ,
setVideoRectangleW ,
#if ENABLE_OVERLOADING
videoRectangle_w ,
#endif
-- ** x #attr:x#
{- | X coordinate of rectangle\'s top-left point
-}
getVideoRectangleX ,
setVideoRectangleX ,
#if ENABLE_OVERLOADING
videoRectangle_x ,
#endif
-- ** y #attr:y#
{- | Y coordinate of rectangle\'s top-left point
-}
getVideoRectangleY ,
setVideoRectangleY ,
#if ENABLE_OVERLOADING
videoRectangle_y ,
#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
-- | Memory-managed wrapper type.
newtype VideoRectangle = VideoRectangle (ManagedPtr VideoRectangle)
instance WrappedPtr VideoRectangle where
wrappedPtrCalloc = callocBytes 16
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 16 >=> wrapPtr VideoRectangle)
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `VideoRectangle` struct initialized to zero.
newZeroVideoRectangle :: MonadIO m => m VideoRectangle
newZeroVideoRectangle = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoRectangle
instance tag ~ 'AttrSet => Constructible VideoRectangle tag where
new _ attrs = do
o <- newZeroVideoRectangle
GI.Attributes.set o attrs
return o
-- | A convenience alias for `Nothing` :: `Maybe` `VideoRectangle`.
noVideoRectangle :: Maybe VideoRectangle
noVideoRectangle = Nothing
{- |
Get the value of the “@x@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' videoRectangle #x
@
-}
getVideoRectangleX :: MonadIO m => VideoRectangle -> m Int32
getVideoRectangleX s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Int32
return val
{- |
Set the value of the “@x@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' videoRectangle [ #x 'Data.GI.Base.Attributes.:=' value ]
@
-}
setVideoRectangleX :: MonadIO m => VideoRectangle -> Int32 -> m ()
setVideoRectangleX s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Int32)
#if ENABLE_OVERLOADING
data VideoRectangleXFieldInfo
instance AttrInfo VideoRectangleXFieldInfo where
type AttrAllowedOps VideoRectangleXFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint VideoRectangleXFieldInfo = (~) Int32
type AttrBaseTypeConstraint VideoRectangleXFieldInfo = (~) VideoRectangle
type AttrGetType VideoRectangleXFieldInfo = Int32
type AttrLabel VideoRectangleXFieldInfo = "x"
type AttrOrigin VideoRectangleXFieldInfo = VideoRectangle
attrGet _ = getVideoRectangleX
attrSet _ = setVideoRectangleX
attrConstruct = undefined
attrClear _ = undefined
videoRectangle_x :: AttrLabelProxy "x"
videoRectangle_x = AttrLabelProxy
#endif
{- |
Get the value of the “@y@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' videoRectangle #y
@
-}
getVideoRectangleY :: MonadIO m => VideoRectangle -> m Int32
getVideoRectangleY s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO Int32
return val
{- |
Set the value of the “@y@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' videoRectangle [ #y 'Data.GI.Base.Attributes.:=' value ]
@
-}
setVideoRectangleY :: MonadIO m => VideoRectangle -> Int32 -> m ()
setVideoRectangleY s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 4) (val :: Int32)
#if ENABLE_OVERLOADING
data VideoRectangleYFieldInfo
instance AttrInfo VideoRectangleYFieldInfo where
type AttrAllowedOps VideoRectangleYFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint VideoRectangleYFieldInfo = (~) Int32
type AttrBaseTypeConstraint VideoRectangleYFieldInfo = (~) VideoRectangle
type AttrGetType VideoRectangleYFieldInfo = Int32
type AttrLabel VideoRectangleYFieldInfo = "y"
type AttrOrigin VideoRectangleYFieldInfo = VideoRectangle
attrGet _ = getVideoRectangleY
attrSet _ = setVideoRectangleY
attrConstruct = undefined
attrClear _ = undefined
videoRectangle_y :: AttrLabelProxy "y"
videoRectangle_y = AttrLabelProxy
#endif
{- |
Get the value of the “@w@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' videoRectangle #w
@
-}
getVideoRectangleW :: MonadIO m => VideoRectangle -> m Int32
getVideoRectangleW s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Int32
return val
{- |
Set the value of the “@w@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' videoRectangle [ #w 'Data.GI.Base.Attributes.:=' value ]
@
-}
setVideoRectangleW :: MonadIO m => VideoRectangle -> Int32 -> m ()
setVideoRectangleW s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Int32)
#if ENABLE_OVERLOADING
data VideoRectangleWFieldInfo
instance AttrInfo VideoRectangleWFieldInfo where
type AttrAllowedOps VideoRectangleWFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint VideoRectangleWFieldInfo = (~) Int32
type AttrBaseTypeConstraint VideoRectangleWFieldInfo = (~) VideoRectangle
type AttrGetType VideoRectangleWFieldInfo = Int32
type AttrLabel VideoRectangleWFieldInfo = "w"
type AttrOrigin VideoRectangleWFieldInfo = VideoRectangle
attrGet _ = getVideoRectangleW
attrSet _ = setVideoRectangleW
attrConstruct = undefined
attrClear _ = undefined
videoRectangle_w :: AttrLabelProxy "w"
videoRectangle_w = AttrLabelProxy
#endif
{- |
Get the value of the “@h@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' videoRectangle #h
@
-}
getVideoRectangleH :: MonadIO m => VideoRectangle -> m Int32
getVideoRectangleH s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Int32
return val
{- |
Set the value of the “@h@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' videoRectangle [ #h 'Data.GI.Base.Attributes.:=' value ]
@
-}
setVideoRectangleH :: MonadIO m => VideoRectangle -> Int32 -> m ()
setVideoRectangleH s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 12) (val :: Int32)
#if ENABLE_OVERLOADING
data VideoRectangleHFieldInfo
instance AttrInfo VideoRectangleHFieldInfo where
type AttrAllowedOps VideoRectangleHFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint VideoRectangleHFieldInfo = (~) Int32
type AttrBaseTypeConstraint VideoRectangleHFieldInfo = (~) VideoRectangle
type AttrGetType VideoRectangleHFieldInfo = Int32
type AttrLabel VideoRectangleHFieldInfo = "h"
type AttrOrigin VideoRectangleHFieldInfo = VideoRectangle
attrGet _ = getVideoRectangleH
attrSet _ = setVideoRectangleH
attrConstruct = undefined
attrClear _ = undefined
videoRectangle_h :: AttrLabelProxy "h"
videoRectangle_h = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList VideoRectangle
type instance O.AttributeList VideoRectangle = VideoRectangleAttributeList
type VideoRectangleAttributeList = ('[ '("x", VideoRectangleXFieldInfo), '("y", VideoRectangleYFieldInfo), '("w", VideoRectangleWFieldInfo), '("h", VideoRectangleHFieldInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
type family ResolveVideoRectangleMethod (t :: Symbol) (o :: *) :: * where
ResolveVideoRectangleMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveVideoRectangleMethod t VideoRectangle, O.MethodInfo info VideoRectangle p) => OL.IsLabel t (VideoRectangle -> 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