#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Structs.Sample
(
Sample(..) ,
noSample ,
#if ENABLE_OVERLOADING
SampleGetBufferMethodInfo ,
#endif
sampleGetBuffer ,
#if ENABLE_OVERLOADING
SampleGetBufferListMethodInfo ,
#endif
sampleGetBufferList ,
#if ENABLE_OVERLOADING
SampleGetCapsMethodInfo ,
#endif
sampleGetCaps ,
#if ENABLE_OVERLOADING
SampleGetInfoMethodInfo ,
#endif
sampleGetInfo ,
#if ENABLE_OVERLOADING
SampleGetSegmentMethodInfo ,
#endif
sampleGetSegment ,
sampleNew ,
#if ENABLE_OVERLOADING
SampleSetBufferListMethodInfo ,
#endif
sampleSetBufferList ,
) 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.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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import {-# SOURCE #-} qualified GI.Gst.Structs.Buffer as Gst.Buffer
import {-# SOURCE #-} qualified GI.Gst.Structs.BufferList as Gst.BufferList
import {-# SOURCE #-} qualified GI.Gst.Structs.Caps as Gst.Caps
import {-# SOURCE #-} qualified GI.Gst.Structs.Segment as Gst.Segment
import {-# SOURCE #-} qualified GI.Gst.Structs.Structure as Gst.Structure
newtype Sample = Sample (ManagedPtr Sample)
foreign import ccall "gst_sample_get_type" c_gst_sample_get_type ::
IO GType
instance BoxedObject Sample where
boxedType _ = c_gst_sample_get_type
noSample :: Maybe Sample
noSample = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList Sample
type instance O.AttributeList Sample = SampleAttributeList
type SampleAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "gst_sample_new" gst_sample_new ::
Ptr Gst.Buffer.Buffer ->
Ptr Gst.Caps.Caps ->
Ptr Gst.Segment.Segment ->
Ptr Gst.Structure.Structure ->
IO (Ptr Sample)
sampleNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Gst.Buffer.Buffer)
-> Maybe (Gst.Caps.Caps)
-> Maybe (Gst.Segment.Segment)
-> Maybe (Gst.Structure.Structure)
-> m Sample
sampleNew buffer caps segment info = liftIO $ do
maybeBuffer <- case buffer of
Nothing -> return nullPtr
Just jBuffer -> do
jBuffer' <- unsafeManagedPtrGetPtr jBuffer
return jBuffer'
maybeCaps <- case caps of
Nothing -> return nullPtr
Just jCaps -> do
jCaps' <- unsafeManagedPtrGetPtr jCaps
return jCaps'
maybeSegment <- case segment of
Nothing -> return nullPtr
Just jSegment -> do
jSegment' <- unsafeManagedPtrGetPtr jSegment
return jSegment'
maybeInfo <- case info of
Nothing -> return nullPtr
Just jInfo -> do
jInfo' <- B.ManagedPtr.disownBoxed jInfo
return jInfo'
result <- gst_sample_new maybeBuffer maybeCaps maybeSegment maybeInfo
checkUnexpectedReturnNULL "sampleNew" result
result' <- (wrapBoxed Sample) result
whenJust buffer touchManagedPtr
whenJust caps touchManagedPtr
whenJust segment touchManagedPtr
whenJust info touchManagedPtr
return result'
#if ENABLE_OVERLOADING
#endif
foreign import ccall "gst_sample_get_buffer" gst_sample_get_buffer ::
Ptr Sample ->
IO (Ptr Gst.Buffer.Buffer)
sampleGetBuffer ::
(B.CallStack.HasCallStack, MonadIO m) =>
Sample
-> m (Maybe Gst.Buffer.Buffer)
sampleGetBuffer sample = liftIO $ do
sample' <- unsafeManagedPtrGetPtr sample
result <- gst_sample_get_buffer sample'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newBoxed Gst.Buffer.Buffer) result'
return result''
touchManagedPtr sample
return maybeResult
#if ENABLE_OVERLOADING
data SampleGetBufferMethodInfo
instance (signature ~ (m (Maybe Gst.Buffer.Buffer)), MonadIO m) => O.MethodInfo SampleGetBufferMethodInfo Sample signature where
overloadedMethod _ = sampleGetBuffer
#endif
foreign import ccall "gst_sample_get_buffer_list" gst_sample_get_buffer_list ::
Ptr Sample ->
IO (Ptr Gst.BufferList.BufferList)
sampleGetBufferList ::
(B.CallStack.HasCallStack, MonadIO m) =>
Sample
-> m (Maybe Gst.BufferList.BufferList)
sampleGetBufferList sample = liftIO $ do
sample' <- unsafeManagedPtrGetPtr sample
result <- gst_sample_get_buffer_list sample'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newBoxed Gst.BufferList.BufferList) result'
return result''
touchManagedPtr sample
return maybeResult
#if ENABLE_OVERLOADING
data SampleGetBufferListMethodInfo
instance (signature ~ (m (Maybe Gst.BufferList.BufferList)), MonadIO m) => O.MethodInfo SampleGetBufferListMethodInfo Sample signature where
overloadedMethod _ = sampleGetBufferList
#endif
foreign import ccall "gst_sample_get_caps" gst_sample_get_caps ::
Ptr Sample ->
IO (Ptr Gst.Caps.Caps)
sampleGetCaps ::
(B.CallStack.HasCallStack, MonadIO m) =>
Sample
-> m (Maybe Gst.Caps.Caps)
sampleGetCaps sample = liftIO $ do
sample' <- unsafeManagedPtrGetPtr sample
result <- gst_sample_get_caps sample'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newBoxed Gst.Caps.Caps) result'
return result''
touchManagedPtr sample
return maybeResult
#if ENABLE_OVERLOADING
data SampleGetCapsMethodInfo
instance (signature ~ (m (Maybe Gst.Caps.Caps)), MonadIO m) => O.MethodInfo SampleGetCapsMethodInfo Sample signature where
overloadedMethod _ = sampleGetCaps
#endif
foreign import ccall "gst_sample_get_info" gst_sample_get_info ::
Ptr Sample ->
IO (Ptr Gst.Structure.Structure)
sampleGetInfo ::
(B.CallStack.HasCallStack, MonadIO m) =>
Sample
-> m (Maybe Gst.Structure.Structure)
sampleGetInfo sample = liftIO $ do
sample' <- unsafeManagedPtrGetPtr sample
result <- gst_sample_get_info sample'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newBoxed Gst.Structure.Structure) result'
return result''
touchManagedPtr sample
return maybeResult
#if ENABLE_OVERLOADING
data SampleGetInfoMethodInfo
instance (signature ~ (m (Maybe Gst.Structure.Structure)), MonadIO m) => O.MethodInfo SampleGetInfoMethodInfo Sample signature where
overloadedMethod _ = sampleGetInfo
#endif
foreign import ccall "gst_sample_get_segment" gst_sample_get_segment ::
Ptr Sample ->
IO (Ptr Gst.Segment.Segment)
sampleGetSegment ::
(B.CallStack.HasCallStack, MonadIO m) =>
Sample
-> m Gst.Segment.Segment
sampleGetSegment sample = liftIO $ do
sample' <- unsafeManagedPtrGetPtr sample
result <- gst_sample_get_segment sample'
checkUnexpectedReturnNULL "sampleGetSegment" result
result' <- (newBoxed Gst.Segment.Segment) result
touchManagedPtr sample
return result'
#if ENABLE_OVERLOADING
data SampleGetSegmentMethodInfo
instance (signature ~ (m Gst.Segment.Segment), MonadIO m) => O.MethodInfo SampleGetSegmentMethodInfo Sample signature where
overloadedMethod _ = sampleGetSegment
#endif
foreign import ccall "gst_sample_set_buffer_list" gst_sample_set_buffer_list ::
Ptr Sample ->
Ptr Gst.BufferList.BufferList ->
IO ()
sampleSetBufferList ::
(B.CallStack.HasCallStack, MonadIO m) =>
Sample
-> Gst.BufferList.BufferList
-> m ()
sampleSetBufferList sample bufferList = liftIO $ do
sample' <- unsafeManagedPtrGetPtr sample
bufferList' <- unsafeManagedPtrGetPtr bufferList
gst_sample_set_buffer_list sample' bufferList'
touchManagedPtr sample
touchManagedPtr bufferList
return ()
#if ENABLE_OVERLOADING
data SampleSetBufferListMethodInfo
instance (signature ~ (Gst.BufferList.BufferList -> m ()), MonadIO m) => O.MethodInfo SampleSetBufferListMethodInfo Sample signature where
overloadedMethod _ = sampleSetBufferList
#endif
#if ENABLE_OVERLOADING
type family ResolveSampleMethod (t :: Symbol) (o :: *) :: * where
ResolveSampleMethod "getBuffer" o = SampleGetBufferMethodInfo
ResolveSampleMethod "getBufferList" o = SampleGetBufferListMethodInfo
ResolveSampleMethod "getCaps" o = SampleGetCapsMethodInfo
ResolveSampleMethod "getInfo" o = SampleGetInfoMethodInfo
ResolveSampleMethod "getSegment" o = SampleGetSegmentMethodInfo
ResolveSampleMethod "setBufferList" o = SampleSetBufferListMethodInfo
ResolveSampleMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveSampleMethod t Sample, O.MethodInfo info Sample p) => O.IsLabelProxy t (Sample -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveSampleMethod t Sample, O.MethodInfo info Sample p) => O.IsLabel t (Sample -> 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
#endif