#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GstVideo.Structs.VideoConverter
(
VideoConverter(..) ,
noVideoConverter ,
#if ENABLE_OVERLOADING
VideoConverterFrameMethodInfo ,
#endif
videoConverterFrame ,
#if ENABLE_OVERLOADING
VideoConverterFreeMethodInfo ,
#endif
videoConverterFree ,
#if ENABLE_OVERLOADING
VideoConverterGetConfigMethodInfo ,
#endif
videoConverterGetConfig ,
#if ENABLE_OVERLOADING
VideoConverterSetConfigMethodInfo ,
#endif
videoConverterSetConfig ,
) 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.Structure as Gst.Structure
import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame
newtype VideoConverter = VideoConverter (ManagedPtr VideoConverter)
instance WrappedPtr VideoConverter where
wrappedPtrCalloc = return nullPtr
wrappedPtrCopy = return
wrappedPtrFree = Nothing
noVideoConverter :: Maybe VideoConverter
noVideoConverter = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList VideoConverter
type instance O.AttributeList VideoConverter = VideoConverterAttributeList
type VideoConverterAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "gst_video_converter_frame" gst_video_converter_frame ::
Ptr VideoConverter ->
Ptr GstVideo.VideoFrame.VideoFrame ->
Ptr GstVideo.VideoFrame.VideoFrame ->
IO ()
videoConverterFrame ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> GstVideo.VideoFrame.VideoFrame
-> GstVideo.VideoFrame.VideoFrame
-> m ()
videoConverterFrame convert src dest = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
src' <- unsafeManagedPtrGetPtr src
dest' <- unsafeManagedPtrGetPtr dest
gst_video_converter_frame convert' src' dest'
touchManagedPtr convert
touchManagedPtr src
touchManagedPtr dest
return ()
#if ENABLE_OVERLOADING
data VideoConverterFrameMethodInfo
instance (signature ~ (GstVideo.VideoFrame.VideoFrame -> GstVideo.VideoFrame.VideoFrame -> m ()), MonadIO m) => O.MethodInfo VideoConverterFrameMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterFrame
#endif
foreign import ccall "gst_video_converter_free" gst_video_converter_free ::
Ptr VideoConverter ->
IO ()
videoConverterFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> m ()
videoConverterFree convert = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
gst_video_converter_free convert'
touchManagedPtr convert
return ()
#if ENABLE_OVERLOADING
data VideoConverterFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoConverterFreeMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterFree
#endif
foreign import ccall "gst_video_converter_get_config" gst_video_converter_get_config ::
Ptr VideoConverter ->
IO (Ptr Gst.Structure.Structure)
videoConverterGetConfig ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> m Gst.Structure.Structure
videoConverterGetConfig convert = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
result <- gst_video_converter_get_config convert'
checkUnexpectedReturnNULL "videoConverterGetConfig" result
result' <- (newBoxed Gst.Structure.Structure) result
touchManagedPtr convert
return result'
#if ENABLE_OVERLOADING
data VideoConverterGetConfigMethodInfo
instance (signature ~ (m Gst.Structure.Structure), MonadIO m) => O.MethodInfo VideoConverterGetConfigMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterGetConfig
#endif
foreign import ccall "gst_video_converter_set_config" gst_video_converter_set_config ::
Ptr VideoConverter ->
Ptr Gst.Structure.Structure ->
IO CInt
videoConverterSetConfig ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> Gst.Structure.Structure
-> m Bool
videoConverterSetConfig convert config = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
config' <- B.ManagedPtr.disownBoxed config
result <- gst_video_converter_set_config convert' config'
let result' = (/= 0) result
touchManagedPtr convert
touchManagedPtr config
return result'
#if ENABLE_OVERLOADING
data VideoConverterSetConfigMethodInfo
instance (signature ~ (Gst.Structure.Structure -> m Bool), MonadIO m) => O.MethodInfo VideoConverterSetConfigMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterSetConfig
#endif
#if ENABLE_OVERLOADING
type family ResolveVideoConverterMethod (t :: Symbol) (o :: *) :: * where
ResolveVideoConverterMethod "frame" o = VideoConverterFrameMethodInfo
ResolveVideoConverterMethod "free" o = VideoConverterFreeMethodInfo
ResolveVideoConverterMethod "getConfig" o = VideoConverterGetConfigMethodInfo
ResolveVideoConverterMethod "setConfig" o = VideoConverterSetConfigMethodInfo
ResolveVideoConverterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveVideoConverterMethod t VideoConverter, O.MethodInfo info VideoConverter p) => OL.IsLabel t (VideoConverter -> 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