{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) #GstBitReader provides a bit reader that can read any number of bits from a memory buffer. It provides functions for reading any number of bits into 8, 16, 32 and 64 bit variables. -} module GI.GstBase.Structs.BitReader ( -- * Exported types BitReader(..) , newZeroBitReader , noBitReader , -- * Methods -- ** bitReaderFree BitReaderFreeMethodInfo , bitReaderFree , -- ** bitReaderGetBitsUint16 BitReaderGetBitsUint16MethodInfo , bitReaderGetBitsUint16 , -- ** bitReaderGetBitsUint32 BitReaderGetBitsUint32MethodInfo , bitReaderGetBitsUint32 , -- ** bitReaderGetBitsUint64 BitReaderGetBitsUint64MethodInfo , bitReaderGetBitsUint64 , -- ** bitReaderGetBitsUint8 BitReaderGetBitsUint8MethodInfo , bitReaderGetBitsUint8 , -- ** bitReaderGetPos BitReaderGetPosMethodInfo , bitReaderGetPos , -- ** bitReaderGetRemaining BitReaderGetRemainingMethodInfo , bitReaderGetRemaining , -- ** bitReaderGetSize BitReaderGetSizeMethodInfo , bitReaderGetSize , -- ** bitReaderInit BitReaderInitMethodInfo , bitReaderInit , -- ** bitReaderPeekBitsUint16 BitReaderPeekBitsUint16MethodInfo , bitReaderPeekBitsUint16 , -- ** bitReaderPeekBitsUint32 BitReaderPeekBitsUint32MethodInfo , bitReaderPeekBitsUint32 , -- ** bitReaderPeekBitsUint64 BitReaderPeekBitsUint64MethodInfo , bitReaderPeekBitsUint64 , -- ** bitReaderPeekBitsUint8 BitReaderPeekBitsUint8MethodInfo , bitReaderPeekBitsUint8 , -- ** bitReaderSetPos BitReaderSetPosMethodInfo , bitReaderSetPos , -- ** bitReaderSkip BitReaderSkipMethodInfo , bitReaderSkip , -- ** bitReaderSkipToByte BitReaderSkipToByteMethodInfo , bitReaderSkipToByte , -- * Properties -- ** Bit bitReaderReadBit , -- ** Byte bitReaderReadByte , -- ** Size bitReaderReadSize , ) 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.GstBase.Types import GI.GstBase.Callbacks newtype BitReader = BitReader (ForeignPtr BitReader) -- | Construct a `BitReader` struct initialized to zero. newZeroBitReader :: MonadIO m => m BitReader newZeroBitReader = liftIO $ callocBytes 56 >>= wrapPtr BitReader noBitReader :: Maybe BitReader noBitReader = Nothing -- XXX Skipped getter for "BitReader:data" :: Not implemented: "Don't know how to unpack C array of type TCArray False (-1) 1 (TBasicType TUInt8)" bitReaderReadSize :: BitReader -> IO Word32 bitReaderReadSize s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO Word32 return val bitReaderReadByte :: BitReader -> IO Word32 bitReaderReadByte s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 12) :: IO Word32 return val bitReaderReadBit :: BitReader -> IO Word32 bitReaderReadBit s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO Word32 return val -- method BitReader::free -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_free" gst_bit_reader_free :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" IO () bitReaderFree :: (MonadIO m) => BitReader -- _obj -> m () -- result bitReaderFree _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj gst_bit_reader_free _obj' touchManagedPtr _obj return () data BitReaderFreeMethodInfo instance (signature ~ (m ()), MonadIO m) => MethodInfo BitReaderFreeMethodInfo BitReader signature where overloadedMethod _ = bitReaderFree -- method BitReader::get_bits_uint16 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_bits_uint16" gst_bit_reader_get_bits_uint16 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word16 -> -- val : TBasicType TUInt16 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderGetBitsUint16 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word16) -- result bitReaderGetBitsUint16 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word16) result <- gst_bit_reader_get_bits_uint16 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderGetBitsUint16MethodInfo instance (signature ~ (Word32 -> m (Bool,Word16)), MonadIO m) => MethodInfo BitReaderGetBitsUint16MethodInfo BitReader signature where overloadedMethod _ = bitReaderGetBitsUint16 -- method BitReader::get_bits_uint32 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_bits_uint32" gst_bit_reader_get_bits_uint32 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word32 -> -- val : TBasicType TUInt32 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderGetBitsUint32 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word32) -- result bitReaderGetBitsUint32 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word32) result <- gst_bit_reader_get_bits_uint32 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderGetBitsUint32MethodInfo instance (signature ~ (Word32 -> m (Bool,Word32)), MonadIO m) => MethodInfo BitReaderGetBitsUint32MethodInfo BitReader signature where overloadedMethod _ = bitReaderGetBitsUint32 -- method BitReader::get_bits_uint64 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_bits_uint64" gst_bit_reader_get_bits_uint64 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word64 -> -- val : TBasicType TUInt64 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderGetBitsUint64 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word64) -- result bitReaderGetBitsUint64 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word64) result <- gst_bit_reader_get_bits_uint64 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderGetBitsUint64MethodInfo instance (signature ~ (Word32 -> m (Bool,Word64)), MonadIO m) => MethodInfo BitReaderGetBitsUint64MethodInfo BitReader signature where overloadedMethod _ = bitReaderGetBitsUint64 -- method BitReader::get_bits_uint8 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_bits_uint8" gst_bit_reader_get_bits_uint8 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word8 -> -- val : TBasicType TUInt8 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderGetBitsUint8 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word8) -- result bitReaderGetBitsUint8 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word8) result <- gst_bit_reader_get_bits_uint8 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderGetBitsUint8MethodInfo instance (signature ~ (Word32 -> m (Bool,Word8)), MonadIO m) => MethodInfo BitReaderGetBitsUint8MethodInfo BitReader signature where overloadedMethod _ = bitReaderGetBitsUint8 -- method BitReader::get_pos -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TUInt32 -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_pos" gst_bit_reader_get_pos :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" IO Word32 bitReaderGetPos :: (MonadIO m) => BitReader -- _obj -> m Word32 -- result bitReaderGetPos _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_bit_reader_get_pos _obj' touchManagedPtr _obj return result data BitReaderGetPosMethodInfo instance (signature ~ (m Word32), MonadIO m) => MethodInfo BitReaderGetPosMethodInfo BitReader signature where overloadedMethod _ = bitReaderGetPos -- method BitReader::get_remaining -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TUInt32 -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_remaining" gst_bit_reader_get_remaining :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" IO Word32 bitReaderGetRemaining :: (MonadIO m) => BitReader -- _obj -> m Word32 -- result bitReaderGetRemaining _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_bit_reader_get_remaining _obj' touchManagedPtr _obj return result data BitReaderGetRemainingMethodInfo instance (signature ~ (m Word32), MonadIO m) => MethodInfo BitReaderGetRemainingMethodInfo BitReader signature where overloadedMethod _ = bitReaderGetRemaining -- method BitReader::get_size -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TUInt32 -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_get_size" gst_bit_reader_get_size :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" IO Word32 bitReaderGetSize :: (MonadIO m) => BitReader -- _obj -> m Word32 -- result bitReaderGetSize _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_bit_reader_get_size _obj' touchManagedPtr _obj return result data BitReaderGetSizeMethodInfo instance (signature ~ (m Word32), MonadIO m) => MethodInfo BitReaderGetSizeMethodInfo BitReader signature where overloadedMethod _ = bitReaderGetSize -- method BitReader::init -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_init" gst_bit_reader_init :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word8 -> -- data : TCArray False (-1) 2 (TBasicType TUInt8) Word32 -> -- size : TBasicType TUInt32 IO () bitReaderInit :: (MonadIO m) => BitReader -- _obj -> ByteString -- data_ -> m () -- result bitReaderInit _obj data_ = liftIO $ do let size = fromIntegral $ B.length data_ let _obj' = unsafeManagedPtrGetPtr _obj data_' <- packByteString data_ gst_bit_reader_init _obj' data_' size touchManagedPtr _obj freeMem data_' return () data BitReaderInitMethodInfo instance (signature ~ (ByteString -> m ()), MonadIO m) => MethodInfo BitReaderInitMethodInfo BitReader signature where overloadedMethod _ = bitReaderInit -- method BitReader::peek_bits_uint16 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_peek_bits_uint16" gst_bit_reader_peek_bits_uint16 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word16 -> -- val : TBasicType TUInt16 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderPeekBitsUint16 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word16) -- result bitReaderPeekBitsUint16 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word16) result <- gst_bit_reader_peek_bits_uint16 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderPeekBitsUint16MethodInfo instance (signature ~ (Word32 -> m (Bool,Word16)), MonadIO m) => MethodInfo BitReaderPeekBitsUint16MethodInfo BitReader signature where overloadedMethod _ = bitReaderPeekBitsUint16 -- method BitReader::peek_bits_uint32 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_peek_bits_uint32" gst_bit_reader_peek_bits_uint32 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word32 -> -- val : TBasicType TUInt32 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderPeekBitsUint32 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word32) -- result bitReaderPeekBitsUint32 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word32) result <- gst_bit_reader_peek_bits_uint32 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderPeekBitsUint32MethodInfo instance (signature ~ (Word32 -> m (Bool,Word32)), MonadIO m) => MethodInfo BitReaderPeekBitsUint32MethodInfo BitReader signature where overloadedMethod _ = bitReaderPeekBitsUint32 -- method BitReader::peek_bits_uint64 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_peek_bits_uint64" gst_bit_reader_peek_bits_uint64 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word64 -> -- val : TBasicType TUInt64 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderPeekBitsUint64 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word64) -- result bitReaderPeekBitsUint64 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word64) result <- gst_bit_reader_peek_bits_uint64 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderPeekBitsUint64MethodInfo instance (signature ~ (Word32 -> m (Bool,Word64)), MonadIO m) => MethodInfo BitReaderPeekBitsUint64MethodInfo BitReader signature where overloadedMethod _ = bitReaderPeekBitsUint64 -- method BitReader::peek_bits_uint8 -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_peek_bits_uint8" gst_bit_reader_peek_bits_uint8 :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Ptr Word8 -> -- val : TBasicType TUInt8 Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderPeekBitsUint8 :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m (Bool,Word8) -- result bitReaderPeekBitsUint8 _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj val <- allocMem :: IO (Ptr Word8) result <- gst_bit_reader_peek_bits_uint8 _obj' val nbits let result' = (/= 0) result val' <- peek val touchManagedPtr _obj freeMem val return (result', val') data BitReaderPeekBitsUint8MethodInfo instance (signature ~ (Word32 -> m (Bool,Word8)), MonadIO m) => MethodInfo BitReaderPeekBitsUint8MethodInfo BitReader signature where overloadedMethod _ = bitReaderPeekBitsUint8 -- method BitReader::set_pos -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_set_pos" gst_bit_reader_set_pos :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Word32 -> -- pos : TBasicType TUInt32 IO CInt bitReaderSetPos :: (MonadIO m) => BitReader -- _obj -> Word32 -- pos -> m Bool -- result bitReaderSetPos _obj pos = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_bit_reader_set_pos _obj' pos let result' = (/= 0) result touchManagedPtr _obj return result' data BitReaderSetPosMethodInfo instance (signature ~ (Word32 -> m Bool), MonadIO m) => MethodInfo BitReaderSetPosMethodInfo BitReader signature where overloadedMethod _ = bitReaderSetPos -- method BitReader::skip -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nbits", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_skip" gst_bit_reader_skip :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" Word32 -> -- nbits : TBasicType TUInt32 IO CInt bitReaderSkip :: (MonadIO m) => BitReader -- _obj -> Word32 -- nbits -> m Bool -- result bitReaderSkip _obj nbits = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_bit_reader_skip _obj' nbits let result' = (/= 0) result touchManagedPtr _obj return result' data BitReaderSkipMethodInfo instance (signature ~ (Word32 -> m Bool), MonadIO m) => MethodInfo BitReaderSkipMethodInfo BitReader signature where overloadedMethod _ = bitReaderSkip -- method BitReader::skip_to_byte -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstBase" "BitReader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_bit_reader_skip_to_byte" gst_bit_reader_skip_to_byte :: Ptr BitReader -> -- _obj : TInterface "GstBase" "BitReader" IO CInt bitReaderSkipToByte :: (MonadIO m) => BitReader -- _obj -> m Bool -- result bitReaderSkipToByte _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- gst_bit_reader_skip_to_byte _obj' let result' = (/= 0) result touchManagedPtr _obj return result' data BitReaderSkipToByteMethodInfo instance (signature ~ (m Bool), MonadIO m) => MethodInfo BitReaderSkipToByteMethodInfo BitReader signature where overloadedMethod _ = bitReaderSkipToByte type family ResolveBitReaderMethod (t :: Symbol) (o :: *) :: * where ResolveBitReaderMethod "free" o = BitReaderFreeMethodInfo ResolveBitReaderMethod "init" o = BitReaderInitMethodInfo ResolveBitReaderMethod "peekBitsUint16" o = BitReaderPeekBitsUint16MethodInfo ResolveBitReaderMethod "peekBitsUint32" o = BitReaderPeekBitsUint32MethodInfo ResolveBitReaderMethod "peekBitsUint64" o = BitReaderPeekBitsUint64MethodInfo ResolveBitReaderMethod "peekBitsUint8" o = BitReaderPeekBitsUint8MethodInfo ResolveBitReaderMethod "skip" o = BitReaderSkipMethodInfo ResolveBitReaderMethod "skipToByte" o = BitReaderSkipToByteMethodInfo ResolveBitReaderMethod "getBitsUint16" o = BitReaderGetBitsUint16MethodInfo ResolveBitReaderMethod "getBitsUint32" o = BitReaderGetBitsUint32MethodInfo ResolveBitReaderMethod "getBitsUint64" o = BitReaderGetBitsUint64MethodInfo ResolveBitReaderMethod "getBitsUint8" o = BitReaderGetBitsUint8MethodInfo ResolveBitReaderMethod "getPos" o = BitReaderGetPosMethodInfo ResolveBitReaderMethod "getRemaining" o = BitReaderGetRemainingMethodInfo ResolveBitReaderMethod "getSize" o = BitReaderGetSizeMethodInfo ResolveBitReaderMethod "setPos" o = BitReaderSetPosMethodInfo ResolveBitReaderMethod l o = MethodResolutionFailed l o instance (info ~ ResolveBitReaderMethod t BitReader, MethodInfo info BitReader p) => IsLabelProxy t (BitReader -> p) where fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info) #if MIN_VERSION_base(4,9,0) instance (info ~ ResolveBitReaderMethod t BitReader, MethodInfo info BitReader p) => IsLabel t (BitReader -> p) where fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info) #endif