#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Structs.StaticCaps
(
StaticCaps(..) ,
newZeroStaticCaps ,
noStaticCaps ,
#if ENABLE_OVERLOADING
StaticCapsCleanupMethodInfo ,
#endif
staticCapsCleanup ,
#if ENABLE_OVERLOADING
StaticCapsGetMethodInfo ,
#endif
staticCapsGet ,
clearStaticCapsCaps ,
getStaticCapsCaps ,
setStaticCapsCaps ,
#if ENABLE_OVERLOADING
staticCaps_caps ,
#endif
clearStaticCapsString ,
getStaticCapsString ,
setStaticCapsString ,
#if ENABLE_OVERLOADING
staticCaps_string ,
#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 {-# SOURCE #-} qualified GI.Gst.Structs.Caps as Gst.Caps
newtype StaticCaps = StaticCaps (ManagedPtr StaticCaps)
instance WrappedPtr StaticCaps where
wrappedPtrCalloc = callocBytes 48
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 48 >=> wrapPtr StaticCaps)
wrappedPtrFree = Just ptr_to_g_free
newZeroStaticCaps :: MonadIO m => m StaticCaps
newZeroStaticCaps = liftIO $ wrappedPtrCalloc >>= wrapPtr StaticCaps
instance tag ~ 'AttrSet => Constructible StaticCaps tag where
new _ attrs = do
o <- newZeroStaticCaps
GI.Attributes.set o attrs
return o
noStaticCaps :: Maybe StaticCaps
noStaticCaps = Nothing
getStaticCapsCaps :: MonadIO m => StaticCaps -> m (Maybe Gst.Caps.Caps)
getStaticCapsCaps s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr Gst.Caps.Caps)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newBoxed Gst.Caps.Caps) val'
return val''
return result
setStaticCapsCaps :: MonadIO m => StaticCaps -> Ptr Gst.Caps.Caps -> m ()
setStaticCapsCaps s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Ptr Gst.Caps.Caps)
clearStaticCapsCaps :: MonadIO m => StaticCaps -> m ()
clearStaticCapsCaps s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (FP.nullPtr :: Ptr Gst.Caps.Caps)
#if ENABLE_OVERLOADING
data StaticCapsCapsFieldInfo
instance AttrInfo StaticCapsCapsFieldInfo where
type AttrAllowedOps StaticCapsCapsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint StaticCapsCapsFieldInfo = (~) (Ptr Gst.Caps.Caps)
type AttrBaseTypeConstraint StaticCapsCapsFieldInfo = (~) StaticCaps
type AttrGetType StaticCapsCapsFieldInfo = Maybe Gst.Caps.Caps
type AttrLabel StaticCapsCapsFieldInfo = "caps"
type AttrOrigin StaticCapsCapsFieldInfo = StaticCaps
attrGet _ = getStaticCapsCaps
attrSet _ = setStaticCapsCaps
attrConstruct = undefined
attrClear _ = clearStaticCapsCaps
staticCaps_caps :: AttrLabelProxy "caps"
staticCaps_caps = AttrLabelProxy
#endif
getStaticCapsString :: MonadIO m => StaticCaps -> m (Maybe T.Text)
getStaticCapsString s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO CString
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- cstringToText val'
return val''
return result
setStaticCapsString :: MonadIO m => StaticCaps -> CString -> m ()
setStaticCapsString s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: CString)
clearStaticCapsString :: MonadIO m => StaticCaps -> m ()
clearStaticCapsString s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (FP.nullPtr :: CString)
#if ENABLE_OVERLOADING
data StaticCapsStringFieldInfo
instance AttrInfo StaticCapsStringFieldInfo where
type AttrAllowedOps StaticCapsStringFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint StaticCapsStringFieldInfo = (~) CString
type AttrBaseTypeConstraint StaticCapsStringFieldInfo = (~) StaticCaps
type AttrGetType StaticCapsStringFieldInfo = Maybe T.Text
type AttrLabel StaticCapsStringFieldInfo = "string"
type AttrOrigin StaticCapsStringFieldInfo = StaticCaps
attrGet _ = getStaticCapsString
attrSet _ = setStaticCapsString
attrConstruct = undefined
attrClear _ = clearStaticCapsString
staticCaps_string :: AttrLabelProxy "string"
staticCaps_string = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList StaticCaps
type instance O.AttributeList StaticCaps = StaticCapsAttributeList
type StaticCapsAttributeList = ('[ '("caps", StaticCapsCapsFieldInfo), '("string", StaticCapsStringFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_static_caps_cleanup" gst_static_caps_cleanup ::
Ptr StaticCaps ->
IO ()
staticCapsCleanup ::
(B.CallStack.HasCallStack, MonadIO m) =>
StaticCaps
-> m ()
staticCapsCleanup staticCaps = liftIO $ do
staticCaps' <- unsafeManagedPtrGetPtr staticCaps
gst_static_caps_cleanup staticCaps'
touchManagedPtr staticCaps
return ()
#if ENABLE_OVERLOADING
data StaticCapsCleanupMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo StaticCapsCleanupMethodInfo StaticCaps signature where
overloadedMethod _ = staticCapsCleanup
#endif
foreign import ccall "gst_static_caps_get" gst_static_caps_get ::
Ptr StaticCaps ->
IO (Ptr Gst.Caps.Caps)
staticCapsGet ::
(B.CallStack.HasCallStack, MonadIO m) =>
StaticCaps
-> m (Maybe Gst.Caps.Caps)
staticCapsGet staticCaps = liftIO $ do
staticCaps' <- unsafeManagedPtrGetPtr staticCaps
result <- gst_static_caps_get staticCaps'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Gst.Caps.Caps) result'
return result''
touchManagedPtr staticCaps
return maybeResult
#if ENABLE_OVERLOADING
data StaticCapsGetMethodInfo
instance (signature ~ (m (Maybe Gst.Caps.Caps)), MonadIO m) => O.MethodInfo StaticCapsGetMethodInfo StaticCaps signature where
overloadedMethod _ = staticCapsGet
#endif
#if ENABLE_OVERLOADING
type family ResolveStaticCapsMethod (t :: Symbol) (o :: *) :: * where
ResolveStaticCapsMethod "cleanup" o = StaticCapsCleanupMethodInfo
ResolveStaticCapsMethod "get" o = StaticCapsGetMethodInfo
ResolveStaticCapsMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveStaticCapsMethod t StaticCaps, O.MethodInfo info StaticCaps p) => OL.IsLabel t (StaticCaps -> 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