module Bindings.DirectFB.IDirectFB where
import Prelude (IO,Num,return,(.),($),Eq,Show,take)
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.Posix.Sys.Select
import Bindings.DirectFB.Types
import Bindings.DirectFB.IDirectFBImageProvider
import Bindings.DirectFB.IDirectFBFont
import Bindings.DirectFB.IDirectFBEventBuffer
import Bindings.DirectFB.IDirectFBInputDevice
import Bindings.DirectFB.IDirectFBDisplayLayer
import Bindings.DirectFB.IDirectFBDataBuffer
import Bindings.DirectFB.IDirectFBPalette
import Bindings.DirectFB.IDirectFBVideoProvider
import Bindings.DirectFB.IDirectFBSurface
import Bindings.DirectFB.IDirectFBScreen
foreign import ccall "DirectFBCreate" c'DirectFBCreate
:: Ptr (Ptr C'IDirectFB) -> IO C'DFBResult
foreign import ccall "&DirectFBCreate" p'DirectFBCreate
:: FunPtr (Ptr (Ptr C'IDirectFB) -> IO C'DFBResult)
data C'IDirectFB = C'IDirectFB{
c'IDirectFB'SetCooperativeLevel :: FunPtr ( Ptr C'IDirectFB -> C'DFBCooperativeLevel -> IO C'DFBResult)
,
c'IDirectFB'SetVideoMode :: FunPtr ( Ptr C'IDirectFB -> CInt -> CInt -> CInt -> IO C'DFBResult)
,
c'IDirectFB'GetDeviceDescription :: FunPtr ( Ptr C'IDirectFB -> Ptr C'DFBGraphicsDeviceDescription -> IO C'DFBResult)
,
c'IDirectFB'EnumVideoModes :: FunPtr ( Ptr C'IDirectFB -> C'DFBVideoModeCallback -> Ptr () -> IO C'DFBResult)
,
c'IDirectFB'CreateSurface :: FunPtr ( Ptr C'IDirectFB -> Ptr C'DFBSurfaceDescription -> Ptr (Ptr C'IDirectFBSurface) -> IO C'DFBResult)
,
c'IDirectFB'CreatePalette :: FunPtr ( Ptr C'IDirectFB -> Ptr C'DFBPaletteDescription -> Ptr (Ptr C'IDirectFBPalette) -> IO C'DFBResult)
,
c'IDirectFB'GetScreen :: FunPtr ( Ptr C'IDirectFB -> C'DFBScreenID -> Ptr (Ptr C'IDirectFBScreen) -> IO C'DFBResult)
,
c'IDirectFB'GetDisplayLayer :: FunPtr ( Ptr C'IDirectFB -> C'DFBDisplayLayerID -> Ptr (Ptr C'IDirectFBDisplayLayer) -> IO C'DFBResult)
,
c'IDirectFB'GetInputDevice :: FunPtr ( Ptr C'IDirectFB -> C'DFBInputDeviceID -> Ptr (Ptr C'IDirectFBInputDevice) -> IO C'DFBResult)
,
c'IDirectFB'CreateEventBuffer :: FunPtr ( Ptr C'IDirectFB -> Ptr (Ptr C'IDirectFBEventBuffer) -> IO C'DFBResult)
,
c'IDirectFB'CreateInputEventBuffer :: FunPtr ( Ptr C'IDirectFB -> C'DFBInputDeviceCapabilities -> C'DFBBoolean -> Ptr (Ptr C'IDirectFBEventBuffer) -> IO C'DFBResult)
,
c'IDirectFB'CreateImageProvider :: FunPtr ( Ptr C'IDirectFB -> CString -> Ptr (Ptr C'IDirectFBImageProvider) -> IO C'DFBResult)
,
c'IDirectFB'CreateVideoProvider :: FunPtr ( Ptr C'IDirectFB -> CString -> Ptr (Ptr C'IDirectFBVideoProvider) -> IO C'DFBResult)
,
c'IDirectFB'CreateFont :: FunPtr ( Ptr C'IDirectFB -> CString -> Ptr C'DFBFontDescription -> Ptr (Ptr C'IDirectFBFont) -> IO C'DFBResult)
,
c'IDirectFB'CreateDataBuffer :: FunPtr ( Ptr C'IDirectFB -> Ptr C'DFBDataBufferDescription -> Ptr (Ptr C'IDirectFBDataBuffer) -> IO C'DFBResult)
,
c'IDirectFB'SetClipboardData :: FunPtr ( Ptr C'IDirectFB -> CString -> Ptr () -> CUInt -> Ptr C'timeval -> IO C'DFBResult)
,
c'IDirectFB'GetClipboardData :: FunPtr ( Ptr C'IDirectFB -> Ptr CString -> Ptr (Ptr ()) -> Ptr CUInt -> IO C'DFBResult)
,
c'IDirectFB'GetClipboardTimeStamp :: FunPtr ( Ptr C'IDirectFB -> Ptr C'timeval -> IO C'DFBResult)
,
c'IDirectFB'Suspend :: FunPtr ( Ptr C'IDirectFB -> IO C'DFBResult)
,
c'IDirectFB'Resume :: FunPtr ( Ptr C'IDirectFB -> IO C'DFBResult)
,
c'IDirectFB'WaitIdle :: FunPtr ( Ptr C'IDirectFB -> IO C'DFBResult)
,
c'IDirectFB'WaitForSync :: FunPtr ( Ptr C'IDirectFB -> IO C'DFBResult)
,
c'IDirectFB'GetInterface :: FunPtr ( Ptr C'IDirectFB -> CString -> CString -> Ptr () -> Ptr (Ptr ()) -> IO C'DFBResult)
} deriving (Eq,Show)
instance Storable C'IDirectFB where
sizeOf _ = 120
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 16
v1 <- peekByteOff p 20
v2 <- peekByteOff p 24
v3 <- peekByteOff p 28
v4 <- peekByteOff p 32
v5 <- peekByteOff p 36
v6 <- peekByteOff p 44
v7 <- peekByteOff p 52
v8 <- peekByteOff p 60
v9 <- peekByteOff p 64
v10 <- peekByteOff p 68
v11 <- peekByteOff p 72
v12 <- peekByteOff p 76
v13 <- peekByteOff p 80
v14 <- peekByteOff p 84
v15 <- peekByteOff p 88
v16 <- peekByteOff p 92
v17 <- peekByteOff p 96
v18 <- peekByteOff p 100
v19 <- peekByteOff p 104
v20 <- peekByteOff p 108
v21 <- peekByteOff p 112
v22 <- peekByteOff p 116
return $ C'IDirectFB v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22
poke p (C'IDirectFB v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22) = do
pokeByteOff p 16 v0
pokeByteOff p 20 v1
pokeByteOff p 24 v2
pokeByteOff p 28 v3
pokeByteOff p 32 v4
pokeByteOff p 36 v5
pokeByteOff p 44 v6
pokeByteOff p 52 v7
pokeByteOff p 60 v8
pokeByteOff p 64 v9
pokeByteOff p 68 v10
pokeByteOff p 72 v11
pokeByteOff p 76 v12
pokeByteOff p 80 v13
pokeByteOff p 84 v14
pokeByteOff p 88 v15
pokeByteOff p 92 v16
pokeByteOff p 96 v17
pokeByteOff p 100 v18
pokeByteOff p 104 v19
pokeByteOff p 108 v20
pokeByteOff p 112 v21
pokeByteOff p 116 v22
return ()