{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstVideo.Structs.VideoVBIEncoder
(
VideoVBIEncoder(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveVideoVBIEncoderMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
VideoVBIEncoderAddAncillaryMethodInfo ,
#endif
videoVBIEncoderAddAncillary ,
#if defined(ENABLE_OVERLOADING)
VideoVBIEncoderCopyMethodInfo ,
#endif
videoVBIEncoderCopy ,
#if defined(ENABLE_OVERLOADING)
VideoVBIEncoderFreeMethodInfo ,
#endif
videoVBIEncoderFree ,
videoVBIEncoderNew ,
#if defined(ENABLE_OVERLOADING)
VideoVBIEncoderWriteLineMethodInfo ,
#endif
videoVBIEncoderWriteLine ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R
import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums
newtype VideoVBIEncoder = VideoVBIEncoder (SP.ManagedPtr VideoVBIEncoder)
deriving (VideoVBIEncoder -> VideoVBIEncoder -> Bool
(VideoVBIEncoder -> VideoVBIEncoder -> Bool)
-> (VideoVBIEncoder -> VideoVBIEncoder -> Bool)
-> Eq VideoVBIEncoder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
== :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
$c/= :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
/= :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
Eq)
instance SP.ManagedPtrNewtype VideoVBIEncoder where
toManagedPtr :: VideoVBIEncoder -> ManagedPtr VideoVBIEncoder
toManagedPtr (VideoVBIEncoder ManagedPtr VideoVBIEncoder
p) = ManagedPtr VideoVBIEncoder
p
foreign import ccall "gst_video_vbi_encoder_get_type" c_gst_video_vbi_encoder_get_type ::
IO GType
type instance O.ParentTypes VideoVBIEncoder = '[]
instance O.HasParentTypes VideoVBIEncoder
instance B.Types.TypedObject VideoVBIEncoder where
glibType :: IO GType
glibType = IO GType
c_gst_video_vbi_encoder_get_type
instance B.Types.GBoxed VideoVBIEncoder
instance B.GValue.IsGValue (Maybe VideoVBIEncoder) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gst_video_vbi_encoder_get_type
gvalueSet_ :: Ptr GValue -> Maybe VideoVBIEncoder -> IO ()
gvalueSet_ Ptr GValue
gv Maybe VideoVBIEncoder
P.Nothing = Ptr GValue -> Ptr VideoVBIEncoder -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr VideoVBIEncoder
forall a. Ptr a
FP.nullPtr :: FP.Ptr VideoVBIEncoder)
gvalueSet_ Ptr GValue
gv (P.Just VideoVBIEncoder
obj) = VideoVBIEncoder -> (Ptr VideoVBIEncoder -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr VideoVBIEncoder
obj (Ptr GValue -> Ptr VideoVBIEncoder -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe VideoVBIEncoder)
gvalueGet_ Ptr GValue
gv = do
Ptr VideoVBIEncoder
ptr <- Ptr GValue -> IO (Ptr VideoVBIEncoder)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr VideoVBIEncoder)
if Ptr VideoVBIEncoder
ptr Ptr VideoVBIEncoder -> Ptr VideoVBIEncoder -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr VideoVBIEncoder
forall a. Ptr a
FP.nullPtr
then VideoVBIEncoder -> Maybe VideoVBIEncoder
forall a. a -> Maybe a
P.Just (VideoVBIEncoder -> Maybe VideoVBIEncoder)
-> IO VideoVBIEncoder -> IO (Maybe VideoVBIEncoder)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr VideoVBIEncoder -> VideoVBIEncoder)
-> Ptr VideoVBIEncoder -> IO VideoVBIEncoder
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr VideoVBIEncoder -> VideoVBIEncoder
VideoVBIEncoder Ptr VideoVBIEncoder
ptr
else Maybe VideoVBIEncoder -> IO (Maybe VideoVBIEncoder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe VideoVBIEncoder
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoVBIEncoder
type instance O.AttributeList VideoVBIEncoder = VideoVBIEncoderAttributeList
type VideoVBIEncoderAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "gst_video_vbi_encoder_new" gst_video_vbi_encoder_new ::
CUInt ->
Word32 ->
IO (Ptr VideoVBIEncoder)
videoVBIEncoderNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
GstVideo.Enums.VideoFormat
-> Word32
-> m (Maybe VideoVBIEncoder)
videoVBIEncoderNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
VideoFormat -> Word32 -> m (Maybe VideoVBIEncoder)
videoVBIEncoderNew VideoFormat
format Word32
pixelWidth = IO (Maybe VideoVBIEncoder) -> m (Maybe VideoVBIEncoder)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe VideoVBIEncoder) -> m (Maybe VideoVBIEncoder))
-> IO (Maybe VideoVBIEncoder) -> m (Maybe VideoVBIEncoder)
forall a b. (a -> b) -> a -> b
$ do
let format' :: CUInt
format' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (VideoFormat -> Int) -> VideoFormat -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VideoFormat -> Int
forall a. Enum a => a -> Int
fromEnum) VideoFormat
format
Ptr VideoVBIEncoder
result <- CUInt -> Word32 -> IO (Ptr VideoVBIEncoder)
gst_video_vbi_encoder_new CUInt
format' Word32
pixelWidth
Maybe VideoVBIEncoder
maybeResult <- Ptr VideoVBIEncoder
-> (Ptr VideoVBIEncoder -> IO VideoVBIEncoder)
-> IO (Maybe VideoVBIEncoder)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr VideoVBIEncoder
result ((Ptr VideoVBIEncoder -> IO VideoVBIEncoder)
-> IO (Maybe VideoVBIEncoder))
-> (Ptr VideoVBIEncoder -> IO VideoVBIEncoder)
-> IO (Maybe VideoVBIEncoder)
forall a b. (a -> b) -> a -> b
$ \Ptr VideoVBIEncoder
result' -> do
VideoVBIEncoder
result'' <- ((ManagedPtr VideoVBIEncoder -> VideoVBIEncoder)
-> Ptr VideoVBIEncoder -> IO VideoVBIEncoder
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr VideoVBIEncoder -> VideoVBIEncoder
VideoVBIEncoder) Ptr VideoVBIEncoder
result'
VideoVBIEncoder -> IO VideoVBIEncoder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoVBIEncoder
result''
Maybe VideoVBIEncoder -> IO (Maybe VideoVBIEncoder)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe VideoVBIEncoder
maybeResult
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_video_vbi_encoder_add_ancillary" gst_video_vbi_encoder_add_ancillary ::
Ptr VideoVBIEncoder ->
CInt ->
Word8 ->
Word8 ->
Ptr Word8 ->
Word32 ->
IO CInt
videoVBIEncoderAddAncillary ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoVBIEncoder
-> Bool
-> Word8
-> Word8
-> ByteString
-> m Bool
videoVBIEncoderAddAncillary :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
VideoVBIEncoder -> Bool -> Word8 -> Word8 -> ByteString -> m Bool
videoVBIEncoderAddAncillary VideoVBIEncoder
encoder Bool
composite Word8
dID Word8
sDIDBlockNumber ByteString
data_ = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
let dataCount :: Word32
dataCount = Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word32) -> Int -> Word32
forall a b. (a -> b) -> a -> b
$ ByteString -> Int
B.length ByteString
data_
Ptr VideoVBIEncoder
encoder' <- VideoVBIEncoder -> IO (Ptr VideoVBIEncoder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoVBIEncoder
encoder
let composite' :: CInt
composite' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
composite
Ptr Word8
data_' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
data_
CInt
result <- Ptr VideoVBIEncoder
-> CInt -> Word8 -> Word8 -> Ptr Word8 -> Word32 -> IO CInt
gst_video_vbi_encoder_add_ancillary Ptr VideoVBIEncoder
encoder' CInt
composite' Word8
dID Word8
sDIDBlockNumber Ptr Word8
data_' Word32
dataCount
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
VideoVBIEncoder -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoVBIEncoder
encoder
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
data_'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderAddAncillaryMethodInfo
instance (signature ~ (Bool -> Word8 -> Word8 -> ByteString -> m Bool), MonadIO m) => O.OverloadedMethod VideoVBIEncoderAddAncillaryMethodInfo VideoVBIEncoder signature where
overloadedMethod = videoVBIEncoderAddAncillary
instance O.OverloadedMethodInfo VideoVBIEncoderAddAncillaryMethodInfo VideoVBIEncoder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstVideo.Structs.VideoVBIEncoder.videoVBIEncoderAddAncillary",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Structs-VideoVBIEncoder.html#v:videoVBIEncoderAddAncillary"
})
#endif
foreign import ccall "gst_video_vbi_encoder_copy" gst_video_vbi_encoder_copy ::
Ptr VideoVBIEncoder ->
IO (Ptr VideoVBIEncoder)
videoVBIEncoderCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoVBIEncoder
-> m VideoVBIEncoder
videoVBIEncoderCopy :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
VideoVBIEncoder -> m VideoVBIEncoder
videoVBIEncoderCopy VideoVBIEncoder
encoder = IO VideoVBIEncoder -> m VideoVBIEncoder
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoVBIEncoder -> m VideoVBIEncoder)
-> IO VideoVBIEncoder -> m VideoVBIEncoder
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoVBIEncoder
encoder' <- VideoVBIEncoder -> IO (Ptr VideoVBIEncoder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoVBIEncoder
encoder
Ptr VideoVBIEncoder
result <- Ptr VideoVBIEncoder -> IO (Ptr VideoVBIEncoder)
gst_video_vbi_encoder_copy Ptr VideoVBIEncoder
encoder'
Text -> Ptr VideoVBIEncoder -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"videoVBIEncoderCopy" Ptr VideoVBIEncoder
result
VideoVBIEncoder
result' <- ((ManagedPtr VideoVBIEncoder -> VideoVBIEncoder)
-> Ptr VideoVBIEncoder -> IO VideoVBIEncoder
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr VideoVBIEncoder -> VideoVBIEncoder
VideoVBIEncoder) Ptr VideoVBIEncoder
result
VideoVBIEncoder -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoVBIEncoder
encoder
VideoVBIEncoder -> IO VideoVBIEncoder
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoVBIEncoder
result'
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderCopyMethodInfo
instance (signature ~ (m VideoVBIEncoder), MonadIO m) => O.OverloadedMethod VideoVBIEncoderCopyMethodInfo VideoVBIEncoder signature where
overloadedMethod = videoVBIEncoderCopy
instance O.OverloadedMethodInfo VideoVBIEncoderCopyMethodInfo VideoVBIEncoder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstVideo.Structs.VideoVBIEncoder.videoVBIEncoderCopy",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Structs-VideoVBIEncoder.html#v:videoVBIEncoderCopy"
})
#endif
foreign import ccall "gst_video_vbi_encoder_free" gst_video_vbi_encoder_free ::
Ptr VideoVBIEncoder ->
IO ()
videoVBIEncoderFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoVBIEncoder
-> m ()
videoVBIEncoderFree :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
VideoVBIEncoder -> m ()
videoVBIEncoderFree VideoVBIEncoder
encoder = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoVBIEncoder
encoder' <- VideoVBIEncoder -> IO (Ptr VideoVBIEncoder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoVBIEncoder
encoder
Ptr VideoVBIEncoder -> IO ()
gst_video_vbi_encoder_free Ptr VideoVBIEncoder
encoder'
VideoVBIEncoder -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoVBIEncoder
encoder
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod VideoVBIEncoderFreeMethodInfo VideoVBIEncoder signature where
overloadedMethod = videoVBIEncoderFree
instance O.OverloadedMethodInfo VideoVBIEncoderFreeMethodInfo VideoVBIEncoder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstVideo.Structs.VideoVBIEncoder.videoVBIEncoderFree",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Structs-VideoVBIEncoder.html#v:videoVBIEncoderFree"
})
#endif
foreign import ccall "gst_video_vbi_encoder_write_line" gst_video_vbi_encoder_write_line ::
Ptr VideoVBIEncoder ->
Word8 ->
IO ()
videoVBIEncoderWriteLine ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoVBIEncoder
-> Word8
-> m ()
videoVBIEncoderWriteLine :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
VideoVBIEncoder -> Word8 -> m ()
videoVBIEncoderWriteLine VideoVBIEncoder
encoder Word8
data_ = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoVBIEncoder
encoder' <- VideoVBIEncoder -> IO (Ptr VideoVBIEncoder)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoVBIEncoder
encoder
Ptr VideoVBIEncoder -> Word8 -> IO ()
gst_video_vbi_encoder_write_line Ptr VideoVBIEncoder
encoder' Word8
data_
VideoVBIEncoder -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoVBIEncoder
encoder
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderWriteLineMethodInfo
instance (signature ~ (Word8 -> m ()), MonadIO m) => O.OverloadedMethod VideoVBIEncoderWriteLineMethodInfo VideoVBIEncoder signature where
overloadedMethod = videoVBIEncoderWriteLine
instance O.OverloadedMethodInfo VideoVBIEncoderWriteLineMethodInfo VideoVBIEncoder where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstVideo.Structs.VideoVBIEncoder.videoVBIEncoderWriteLine",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Structs-VideoVBIEncoder.html#v:videoVBIEncoderWriteLine"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveVideoVBIEncoderMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveVideoVBIEncoderMethod "addAncillary" o = VideoVBIEncoderAddAncillaryMethodInfo
ResolveVideoVBIEncoderMethod "copy" o = VideoVBIEncoderCopyMethodInfo
ResolveVideoVBIEncoderMethod "free" o = VideoVBIEncoderFreeMethodInfo
ResolveVideoVBIEncoderMethod "writeLine" o = VideoVBIEncoderWriteLineMethodInfo
ResolveVideoVBIEncoderMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveVideoVBIEncoderMethod t VideoVBIEncoder, O.OverloadedMethod info VideoVBIEncoder p) => OL.IsLabel t (VideoVBIEncoder -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveVideoVBIEncoderMethod t VideoVBIEncoder, O.OverloadedMethod info VideoVBIEncoder p, R.HasField t VideoVBIEncoder p) => R.HasField t VideoVBIEncoder p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveVideoVBIEncoderMethod t VideoVBIEncoder, O.OverloadedMethodInfo info VideoVBIEncoder) => OL.IsLabel t (O.MethodProxy info VideoVBIEncoder) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif