#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GdkPixbuf.Structs.Pixdata
(
Pixdata(..) ,
newZeroPixdata ,
noPixdata ,
#if ENABLE_OVERLOADING
PixdataDeserializeMethodInfo ,
#endif
pixdataDeserialize ,
#if ENABLE_OVERLOADING
PixdataSerializeMethodInfo ,
#endif
pixdataSerialize ,
#if ENABLE_OVERLOADING
PixdataToCsourceMethodInfo ,
#endif
pixdataToCsource ,
getPixdataHeight ,
#if ENABLE_OVERLOADING
pixdata_height ,
#endif
setPixdataHeight ,
getPixdataLength ,
#if ENABLE_OVERLOADING
pixdata_length ,
#endif
setPixdataLength ,
getPixdataMagic ,
#if ENABLE_OVERLOADING
pixdata_magic ,
#endif
setPixdataMagic ,
getPixdataPixdataType ,
#if ENABLE_OVERLOADING
pixdata_pixdataType ,
#endif
setPixdataPixdataType ,
getPixdataRowstride ,
#if ENABLE_OVERLOADING
pixdata_rowstride ,
#endif
setPixdataRowstride ,
getPixdataWidth ,
#if ENABLE_OVERLOADING
pixdata_width ,
#endif
setPixdataWidth ,
) 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 qualified GI.GLib.Structs.String as GLib.String
import {-# SOURCE #-} qualified GI.GdkPixbuf.Flags as GdkPixbuf.Flags
newtype Pixdata = Pixdata (ManagedPtr Pixdata)
instance WrappedPtr Pixdata where
wrappedPtrCalloc = callocBytes 32
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 32 >=> wrapPtr Pixdata)
wrappedPtrFree = Just ptr_to_g_free
newZeroPixdata :: MonadIO m => m Pixdata
newZeroPixdata = liftIO $ wrappedPtrCalloc >>= wrapPtr Pixdata
instance tag ~ 'AttrSet => Constructible Pixdata tag where
new _ attrs = do
o <- newZeroPixdata
GI.Attributes.set o attrs
return o
noPixdata :: Maybe Pixdata
noPixdata = Nothing
getPixdataMagic :: MonadIO m => Pixdata -> m Word32
getPixdataMagic s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO Word32
return val
setPixdataMagic :: MonadIO m => Pixdata -> Word32 -> m ()
setPixdataMagic s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Word32)
#if ENABLE_OVERLOADING
data PixdataMagicFieldInfo
instance AttrInfo PixdataMagicFieldInfo where
type AttrAllowedOps PixdataMagicFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PixdataMagicFieldInfo = (~) Word32
type AttrBaseTypeConstraint PixdataMagicFieldInfo = (~) Pixdata
type AttrGetType PixdataMagicFieldInfo = Word32
type AttrLabel PixdataMagicFieldInfo = "magic"
type AttrOrigin PixdataMagicFieldInfo = Pixdata
attrGet _ = getPixdataMagic
attrSet _ = setPixdataMagic
attrConstruct = undefined
attrClear _ = undefined
pixdata_magic :: AttrLabelProxy "magic"
pixdata_magic = AttrLabelProxy
#endif
getPixdataLength :: MonadIO m => Pixdata -> m Int32
getPixdataLength s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO Int32
return val
setPixdataLength :: MonadIO m => Pixdata -> Int32 -> m ()
setPixdataLength s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 4) (val :: Int32)
#if ENABLE_OVERLOADING
data PixdataLengthFieldInfo
instance AttrInfo PixdataLengthFieldInfo where
type AttrAllowedOps PixdataLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PixdataLengthFieldInfo = (~) Int32
type AttrBaseTypeConstraint PixdataLengthFieldInfo = (~) Pixdata
type AttrGetType PixdataLengthFieldInfo = Int32
type AttrLabel PixdataLengthFieldInfo = "length"
type AttrOrigin PixdataLengthFieldInfo = Pixdata
attrGet _ = getPixdataLength
attrSet _ = setPixdataLength
attrConstruct = undefined
attrClear _ = undefined
pixdata_length :: AttrLabelProxy "length"
pixdata_length = AttrLabelProxy
#endif
getPixdataPixdataType :: MonadIO m => Pixdata -> m Word32
getPixdataPixdataType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Word32
return val
setPixdataPixdataType :: MonadIO m => Pixdata -> Word32 -> m ()
setPixdataPixdataType s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Word32)
#if ENABLE_OVERLOADING
data PixdataPixdataTypeFieldInfo
instance AttrInfo PixdataPixdataTypeFieldInfo where
type AttrAllowedOps PixdataPixdataTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PixdataPixdataTypeFieldInfo = (~) Word32
type AttrBaseTypeConstraint PixdataPixdataTypeFieldInfo = (~) Pixdata
type AttrGetType PixdataPixdataTypeFieldInfo = Word32
type AttrLabel PixdataPixdataTypeFieldInfo = "pixdata_type"
type AttrOrigin PixdataPixdataTypeFieldInfo = Pixdata
attrGet _ = getPixdataPixdataType
attrSet _ = setPixdataPixdataType
attrConstruct = undefined
attrClear _ = undefined
pixdata_pixdataType :: AttrLabelProxy "pixdataType"
pixdata_pixdataType = AttrLabelProxy
#endif
getPixdataRowstride :: MonadIO m => Pixdata -> m Word32
getPixdataRowstride s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Word32
return val
setPixdataRowstride :: MonadIO m => Pixdata -> Word32 -> m ()
setPixdataRowstride s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 12) (val :: Word32)
#if ENABLE_OVERLOADING
data PixdataRowstrideFieldInfo
instance AttrInfo PixdataRowstrideFieldInfo where
type AttrAllowedOps PixdataRowstrideFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PixdataRowstrideFieldInfo = (~) Word32
type AttrBaseTypeConstraint PixdataRowstrideFieldInfo = (~) Pixdata
type AttrGetType PixdataRowstrideFieldInfo = Word32
type AttrLabel PixdataRowstrideFieldInfo = "rowstride"
type AttrOrigin PixdataRowstrideFieldInfo = Pixdata
attrGet _ = getPixdataRowstride
attrSet _ = setPixdataRowstride
attrConstruct = undefined
attrClear _ = undefined
pixdata_rowstride :: AttrLabelProxy "rowstride"
pixdata_rowstride = AttrLabelProxy
#endif
getPixdataWidth :: MonadIO m => Pixdata -> m Word32
getPixdataWidth s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word32
return val
setPixdataWidth :: MonadIO m => Pixdata -> Word32 -> m ()
setPixdataWidth s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Word32)
#if ENABLE_OVERLOADING
data PixdataWidthFieldInfo
instance AttrInfo PixdataWidthFieldInfo where
type AttrAllowedOps PixdataWidthFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PixdataWidthFieldInfo = (~) Word32
type AttrBaseTypeConstraint PixdataWidthFieldInfo = (~) Pixdata
type AttrGetType PixdataWidthFieldInfo = Word32
type AttrLabel PixdataWidthFieldInfo = "width"
type AttrOrigin PixdataWidthFieldInfo = Pixdata
attrGet _ = getPixdataWidth
attrSet _ = setPixdataWidth
attrConstruct = undefined
attrClear _ = undefined
pixdata_width :: AttrLabelProxy "width"
pixdata_width = AttrLabelProxy
#endif
getPixdataHeight :: MonadIO m => Pixdata -> m Word32
getPixdataHeight s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 20) :: IO Word32
return val
setPixdataHeight :: MonadIO m => Pixdata -> Word32 -> m ()
setPixdataHeight s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 20) (val :: Word32)
#if ENABLE_OVERLOADING
data PixdataHeightFieldInfo
instance AttrInfo PixdataHeightFieldInfo where
type AttrAllowedOps PixdataHeightFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PixdataHeightFieldInfo = (~) Word32
type AttrBaseTypeConstraint PixdataHeightFieldInfo = (~) Pixdata
type AttrGetType PixdataHeightFieldInfo = Word32
type AttrLabel PixdataHeightFieldInfo = "height"
type AttrOrigin PixdataHeightFieldInfo = Pixdata
attrGet _ = getPixdataHeight
attrSet _ = setPixdataHeight
attrConstruct = undefined
attrClear _ = undefined
pixdata_height :: AttrLabelProxy "height"
pixdata_height = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Pixdata
type instance O.AttributeList Pixdata = PixdataAttributeList
type PixdataAttributeList = ('[ '("magic", PixdataMagicFieldInfo), '("length", PixdataLengthFieldInfo), '("pixdataType", PixdataPixdataTypeFieldInfo), '("rowstride", PixdataRowstrideFieldInfo), '("width", PixdataWidthFieldInfo), '("height", PixdataHeightFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gdk_pixdata_deserialize" gdk_pixdata_deserialize ::
Ptr Pixdata ->
Word32 ->
Ptr Word8 ->
Ptr (Ptr GError) ->
IO CInt
{-# DEPRECATED pixdataDeserialize ["(Since version 2.32)","Use 'GI.Gio.Structs.Resource.Resource' instead."] #-}
pixdataDeserialize ::
(B.CallStack.HasCallStack, MonadIO m) =>
Pixdata
-> ByteString
-> m ()
pixdataDeserialize pixdata stream = liftIO $ do
let streamLength = fromIntegral $ B.length stream
pixdata' <- unsafeManagedPtrGetPtr pixdata
stream' <- packByteString stream
onException (do
_ <- propagateGError $ gdk_pixdata_deserialize pixdata' streamLength stream'
touchManagedPtr pixdata
freeMem stream'
return ()
) (do
freeMem stream'
)
#if ENABLE_OVERLOADING
data PixdataDeserializeMethodInfo
instance (signature ~ (ByteString -> m ()), MonadIO m) => O.MethodInfo PixdataDeserializeMethodInfo Pixdata signature where
overloadedMethod _ = pixdataDeserialize
#endif
foreign import ccall "gdk_pixdata_serialize" gdk_pixdata_serialize ::
Ptr Pixdata ->
Ptr Word32 ->
IO (Ptr Word8)
{-# DEPRECATED pixdataSerialize ["(Since version 2.32)","Use 'GI.Gio.Structs.Resource.Resource' instead."] #-}
pixdataSerialize ::
(B.CallStack.HasCallStack, MonadIO m) =>
Pixdata
-> m ByteString
pixdataSerialize pixdata = liftIO $ do
pixdata' <- unsafeManagedPtrGetPtr pixdata
streamLengthP <- allocMem :: IO (Ptr Word32)
result <- gdk_pixdata_serialize pixdata' streamLengthP
streamLengthP' <- peek streamLengthP
checkUnexpectedReturnNULL "pixdataSerialize" result
result' <- (unpackByteStringWithLength streamLengthP') result
freeMem result
touchManagedPtr pixdata
freeMem streamLengthP
return result'
#if ENABLE_OVERLOADING
data PixdataSerializeMethodInfo
instance (signature ~ (m ByteString), MonadIO m) => O.MethodInfo PixdataSerializeMethodInfo Pixdata signature where
overloadedMethod _ = pixdataSerialize
#endif
foreign import ccall "gdk_pixdata_to_csource" gdk_pixdata_to_csource ::
Ptr Pixdata ->
CString ->
CUInt ->
IO (Ptr GLib.String.String)
{-# DEPRECATED pixdataToCsource ["(Since version 2.32)","Use 'GI.Gio.Structs.Resource.Resource' instead."] #-}
pixdataToCsource ::
(B.CallStack.HasCallStack, MonadIO m) =>
Pixdata
-> T.Text
-> [GdkPixbuf.Flags.PixdataDumpType]
-> m GLib.String.String
pixdataToCsource pixdata name dumpType = liftIO $ do
pixdata' <- unsafeManagedPtrGetPtr pixdata
name' <- textToCString name
let dumpType' = gflagsToWord dumpType
result <- gdk_pixdata_to_csource pixdata' name' dumpType'
checkUnexpectedReturnNULL "pixdataToCsource" result
result' <- (wrapBoxed GLib.String.String) result
touchManagedPtr pixdata
freeMem name'
return result'
#if ENABLE_OVERLOADING
data PixdataToCsourceMethodInfo
instance (signature ~ (T.Text -> [GdkPixbuf.Flags.PixdataDumpType] -> m GLib.String.String), MonadIO m) => O.MethodInfo PixdataToCsourceMethodInfo Pixdata signature where
overloadedMethod _ = pixdataToCsource
#endif
#if ENABLE_OVERLOADING
type family ResolvePixdataMethod (t :: Symbol) (o :: *) :: * where
ResolvePixdataMethod "deserialize" o = PixdataDeserializeMethodInfo
ResolvePixdataMethod "serialize" o = PixdataSerializeMethodInfo
ResolvePixdataMethod "toCsource" o = PixdataToCsourceMethodInfo
ResolvePixdataMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolvePixdataMethod t Pixdata, O.MethodInfo info Pixdata p) => O.IsLabelProxy t (Pixdata -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolvePixdataMethod t Pixdata, O.MethodInfo info Pixdata p) => O.IsLabel t (Pixdata -> 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