{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) Info passed in the #GstPadProbeCallback. -} module GI.Gst.Structs.PadProbeInfo ( -- * Exported types PadProbeInfo(..) , newZeroPadProbeInfo , noPadProbeInfo , -- * Methods -- ** padProbeInfoGetBuffer PadProbeInfoGetBufferMethodInfo , padProbeInfoGetBuffer , -- ** padProbeInfoGetBufferList PadProbeInfoGetBufferListMethodInfo , padProbeInfoGetBufferList , -- ** padProbeInfoGetEvent PadProbeInfoGetEventMethodInfo , padProbeInfoGetEvent , -- ** padProbeInfoGetQuery PadProbeInfoGetQueryMethodInfo , padProbeInfoGetQuery , -- * Properties -- ** Data padProbeInfoReadData , -- ** Id padProbeInfoReadId , -- ** Offset padProbeInfoReadOffset , -- ** Size padProbeInfoReadSize , -- ** Type padProbeInfoReadType , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Gst.Types import GI.Gst.Callbacks newtype PadProbeInfo = PadProbeInfo (ForeignPtr PadProbeInfo) -- | Construct a `PadProbeInfo` struct initialized to zero. newZeroPadProbeInfo :: MonadIO m => m PadProbeInfo newZeroPadProbeInfo = liftIO $ callocBytes 40 >>= wrapPtr PadProbeInfo noPadProbeInfo :: Maybe PadProbeInfo noPadProbeInfo = Nothing padProbeInfoReadType :: PadProbeInfo -> IO [PadProbeType] padProbeInfoReadType s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CUInt let val' = wordToGFlags val return val' padProbeInfoReadId :: PadProbeInfo -> IO Word64 padProbeInfoReadId s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO Word64 return val padProbeInfoReadData :: PadProbeInfo -> IO (Ptr ()) padProbeInfoReadData s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO (Ptr ()) return val padProbeInfoReadOffset :: PadProbeInfo -> IO Word64 padProbeInfoReadOffset s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO Word64 return val padProbeInfoReadSize :: PadProbeInfo -> IO Word32 padProbeInfoReadSize s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO Word32 return val -- method PadProbeInfo::get_buffer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "PadProbeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "Buffer" -- throws : False -- Skip return : False foreign import ccall "gst_pad_probe_info_get_buffer" gst_pad_probe_info_get_buffer :: Ptr PadProbeInfo -> -- _obj : TInterface "Gst" "PadProbeInfo" IO (Ptr Buffer) padProbeInfoGetBuffer :: (MonadIO m) => PadProbeInfo -- _obj -> m Buffer -- result padProbeInfoGetBuffer _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_pad_probe_info_get_buffer _obj' checkUnexpectedReturnNULL "gst_pad_probe_info_get_buffer" result result' <- (newBoxed Buffer) result touchManagedPtr _obj return result' data PadProbeInfoGetBufferMethodInfo instance (signature ~ (m Buffer), MonadIO m) => MethodInfo PadProbeInfoGetBufferMethodInfo PadProbeInfo signature where overloadedMethod _ = padProbeInfoGetBuffer -- method PadProbeInfo::get_buffer_list -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "PadProbeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "BufferList" -- throws : False -- Skip return : False foreign import ccall "gst_pad_probe_info_get_buffer_list" gst_pad_probe_info_get_buffer_list :: Ptr PadProbeInfo -> -- _obj : TInterface "Gst" "PadProbeInfo" IO (Ptr BufferList) padProbeInfoGetBufferList :: (MonadIO m) => PadProbeInfo -- _obj -> m BufferList -- result padProbeInfoGetBufferList _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_pad_probe_info_get_buffer_list _obj' checkUnexpectedReturnNULL "gst_pad_probe_info_get_buffer_list" result result' <- (newBoxed BufferList) result touchManagedPtr _obj return result' data PadProbeInfoGetBufferListMethodInfo instance (signature ~ (m BufferList), MonadIO m) => MethodInfo PadProbeInfoGetBufferListMethodInfo PadProbeInfo signature where overloadedMethod _ = padProbeInfoGetBufferList -- method PadProbeInfo::get_event -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "PadProbeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "Event" -- throws : False -- Skip return : False foreign import ccall "gst_pad_probe_info_get_event" gst_pad_probe_info_get_event :: Ptr PadProbeInfo -> -- _obj : TInterface "Gst" "PadProbeInfo" IO (Ptr Event) padProbeInfoGetEvent :: (MonadIO m) => PadProbeInfo -- _obj -> m Event -- result padProbeInfoGetEvent _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_pad_probe_info_get_event _obj' checkUnexpectedReturnNULL "gst_pad_probe_info_get_event" result result' <- (newBoxed Event) result touchManagedPtr _obj return result' data PadProbeInfoGetEventMethodInfo instance (signature ~ (m Event), MonadIO m) => MethodInfo PadProbeInfoGetEventMethodInfo PadProbeInfo signature where overloadedMethod _ = padProbeInfoGetEvent -- method PadProbeInfo::get_query -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "PadProbeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "Query" -- throws : False -- Skip return : False foreign import ccall "gst_pad_probe_info_get_query" gst_pad_probe_info_get_query :: Ptr PadProbeInfo -> -- _obj : TInterface "Gst" "PadProbeInfo" IO (Ptr Query) padProbeInfoGetQuery :: (MonadIO m) => PadProbeInfo -- _obj -> m Query -- result padProbeInfoGetQuery _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_pad_probe_info_get_query _obj' checkUnexpectedReturnNULL "gst_pad_probe_info_get_query" result result' <- (newBoxed Query) result touchManagedPtr _obj return result' data PadProbeInfoGetQueryMethodInfo instance (signature ~ (m Query), MonadIO m) => MethodInfo PadProbeInfoGetQueryMethodInfo PadProbeInfo signature where overloadedMethod _ = padProbeInfoGetQuery type family ResolvePadProbeInfoMethod (t :: Symbol) (o :: *) :: * where ResolvePadProbeInfoMethod "getBuffer" o = PadProbeInfoGetBufferMethodInfo ResolvePadProbeInfoMethod "getBufferList" o = PadProbeInfoGetBufferListMethodInfo ResolvePadProbeInfoMethod "getEvent" o = PadProbeInfoGetEventMethodInfo ResolvePadProbeInfoMethod "getQuery" o = PadProbeInfoGetQueryMethodInfo ResolvePadProbeInfoMethod l o = MethodResolutionFailed l o instance (info ~ ResolvePadProbeInfoMethod t PadProbeInfo, MethodInfo info PadProbeInfo p) => IsLabelProxy t (PadProbeInfo -> p) where fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info) #if MIN_VERSION_base(4,9,0) instance (info ~ ResolvePadProbeInfoMethod t PadProbeInfo, MethodInfo info PadProbeInfo p) => IsLabel t (PadProbeInfo -> p) where fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info) #endif