{-# 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.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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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.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
/= :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
$c/= :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
== :: VideoVBIEncoder -> VideoVBIEncoder -> Bool
$c== :: 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 VideoVBIEncoder where
toGValue :: VideoVBIEncoder -> IO GValue
toGValue VideoVBIEncoder
o = do
GType
gtype <- IO GType
c_gst_video_vbi_encoder_get_type
VideoVBIEncoder -> (Ptr VideoVBIEncoder -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr VideoVBIEncoder
o (GType
-> (GValue -> Ptr VideoVBIEncoder -> IO ())
-> Ptr VideoVBIEncoder
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr VideoVBIEncoder -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
fromGValue :: GValue -> IO VideoVBIEncoder
fromGValue GValue
gv = do
Ptr VideoVBIEncoder
ptr <- GValue -> IO (Ptr VideoVBIEncoder)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr VideoVBIEncoder)
(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
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoVBIEncoder
type instance O.AttributeList VideoVBIEncoder = VideoVBIEncoderAttributeList
type VideoVBIEncoderAttributeList = ('[ ] :: [(Symbol, *)])
#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 VideoVBIEncoder
videoVBIEncoderNew :: VideoFormat -> Word32 -> m VideoVBIEncoder
videoVBIEncoderNew VideoFormat
format Word32
pixelWidth = IO VideoVBIEncoder -> m VideoVBIEncoder
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
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
Text -> Ptr VideoVBIEncoder -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"videoVBIEncoderNew" 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 VideoVBIEncoder
forall (m :: * -> *) a. Monad m => a -> m a
return VideoVBIEncoder
result'
#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 :: VideoVBIEncoder -> Bool -> Word8 -> Word8 -> ByteString -> m Bool
videoVBIEncoderAddAncillary VideoVBIEncoder
encoder Bool
composite Word8
dID Word8
sDIDBlockNumber ByteString
data_ = IO Bool -> m Bool
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
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
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 (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.MethodInfo VideoVBIEncoderAddAncillaryMethodInfo VideoVBIEncoder signature where
overloadedMethod = 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 :: VideoVBIEncoder -> m VideoVBIEncoder
videoVBIEncoderCopy VideoVBIEncoder
encoder = IO VideoVBIEncoder -> m VideoVBIEncoder
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 (m :: * -> *) a. Monad m => a -> m a
return VideoVBIEncoder
result'
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderCopyMethodInfo
instance (signature ~ (m VideoVBIEncoder), MonadIO m) => O.MethodInfo VideoVBIEncoderCopyMethodInfo VideoVBIEncoder signature where
overloadedMethod = 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 :: VideoVBIEncoder -> m ()
videoVBIEncoderFree VideoVBIEncoder
encoder = IO () -> m ()
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 (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoVBIEncoderFreeMethodInfo VideoVBIEncoder signature where
overloadedMethod = 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 :: VideoVBIEncoder -> Word8 -> m ()
videoVBIEncoderWriteLine VideoVBIEncoder
encoder Word8
data_ = IO () -> m ()
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 (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data VideoVBIEncoderWriteLineMethodInfo
instance (signature ~ (Word8 -> m ()), MonadIO m) => O.MethodInfo VideoVBIEncoderWriteLineMethodInfo VideoVBIEncoder signature where
overloadedMethod = videoVBIEncoderWriteLine
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveVideoVBIEncoderMethod (t :: Symbol) (o :: *) :: * 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.MethodInfo 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
#endif