{-# LINE 1 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}

{-# LINE 2 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}

{-# LINE 3 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}

-- | <http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBVideoProvider.html>

module Bindings.DirectFB.IDirectFBVideoProvider where
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.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
import Bindings.DirectFB.Types
import Bindings.DirectFB.IDirectFBSurface
import Bindings.DirectFB.IDirectFBEventBuffer

data C'IDirectFBVideoProvider = C'IDirectFBVideoProvider{
{-# LINE 13 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}

  c'IDirectFBVideoProvider'GetCapabilities :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBVideoProviderCapabilities -> IO C'DFBResult)
{-# LINE 15 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetSurfaceDescription :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBSurfaceDescription -> IO C'DFBResult)
{-# LINE 17 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetStreamDescription :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBStreamDescription -> IO C'DFBResult)
{-# LINE 19 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'PlayTo :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> C'DVFrameCallback -> Ptr () -> IO C'DFBResult)
{-# LINE 22 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'Stop :: FunPtr (Ptr C'IDirectFBVideoProvider -> IO C'DFBResult)
{-# LINE 23 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetStatus :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBVideoProviderStatus -> IO C'DFBResult)
{-# LINE 25 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SeekTo :: FunPtr (Ptr C'IDirectFBVideoProvider -> CDouble -> IO C'DFBResult)
{-# LINE 27 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetPos :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr CDouble -> IO C'DFBResult)
{-# LINE 29 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetLength :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr CDouble -> IO C'DFBResult)
{-# LINE 31 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetColorAdjustment :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBColorAdjustment -> IO C'DFBResult)
{-# LINE 33 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetColorAdjustment :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBColorAdjustment -> IO C'DFBResult)
{-# LINE 35 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SendEvent :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBEvent -> IO C'DFBResult)
{-# LINE 37 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetPlaybackFlags :: FunPtr (Ptr C'IDirectFBVideoProvider -> C'DFBVideoProviderPlaybackFlags -> IO C'DFBResult)
{-# LINE 39 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetSpeed :: FunPtr (Ptr C'IDirectFBVideoProvider -> CDouble -> IO C'DFBResult)
{-# LINE 41 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetSpeed :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr CDouble -> IO C'DFBResult)
{-# LINE 43 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetVolume :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr CFloat -> IO C'DFBResult)
{-# LINE 45 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetVolume :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr CFloat -> IO C'DFBResult)
{-# LINE 47 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetStreamAttributes :: FunPtr (Ptr C'IDirectFBVideoProvider -> C'DFBStreamAttributes -> IO C'DFBResult)
{-# LINE 49 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetAudioOutputs :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBVideoProviderAudioUnits -> IO C'DFBResult)
{-# LINE 51 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetAudioOutputs :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBVideoProviderAudioUnits -> IO C'DFBResult)
{-# LINE 53 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetAudioDelay :: FunPtr (Ptr C'IDirectFBVideoProvider -> CLong -> IO C'DFBResult)
{-# LINE 55 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'CreateEventBuffer :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr (Ptr C'IDirectFBEventBuffer) -> IO C'DFBResult)
{-# LINE 57 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'AttachEventBuffer :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'IDirectFBEventBuffer -> IO C'DFBResult)
{-# LINE 59 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'EnableEvents :: FunPtr (Ptr C'IDirectFBVideoProvider -> C'DFBVideoProviderEventType -> IO C'DFBResult)
{-# LINE 61 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'DisableEvents :: FunPtr (Ptr C'IDirectFBVideoProvider -> C'DFBVideoProviderEventType -> IO C'DFBResult)
{-# LINE 63 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'DetachEventBuffer :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'IDirectFBEventBuffer -> IO C'DFBResult)
{-# LINE 65 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetBufferOccupancy :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBBufferOccupancy -> IO C'DFBResult)
{-# LINE 67 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'SetBufferThresholds :: FunPtr (Ptr C'IDirectFBVideoProvider -> C'DFBBufferThresholds -> IO C'DFBResult)
{-# LINE 69 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}
,
  c'IDirectFBVideoProvider'GetBufferThresholds :: FunPtr (Ptr C'IDirectFBVideoProvider -> Ptr C'DFBBufferThresholds -> IO C'DFBResult)
{-# LINE 71 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'IDirectFBVideoProvider where
  sizeOf _ = 132
  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 40
    v7 <- peekByteOff p 44
    v8 <- peekByteOff p 48
    v9 <- peekByteOff p 52
    v10 <- peekByteOff p 56
    v11 <- peekByteOff p 60
    v12 <- peekByteOff p 64
    v13 <- peekByteOff p 68
    v14 <- peekByteOff p 72
    v15 <- peekByteOff p 76
    v16 <- peekByteOff p 80
    v17 <- peekByteOff p 84
    v18 <- peekByteOff p 88
    v19 <- peekByteOff p 92
    v20 <- peekByteOff p 96
    v21 <- peekByteOff p 100
    v22 <- peekByteOff p 104
    v23 <- peekByteOff p 108
    v24 <- peekByteOff p 112
    v25 <- peekByteOff p 116
    v26 <- peekByteOff p 120
    v27 <- peekByteOff p 124
    v28 <- peekByteOff p 128
    return $ C'IDirectFBVideoProvider v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28
  poke p (C'IDirectFBVideoProvider v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28) = 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 40 v6
    pokeByteOff p 44 v7
    pokeByteOff p 48 v8
    pokeByteOff p 52 v9
    pokeByteOff p 56 v10
    pokeByteOff p 60 v11
    pokeByteOff p 64 v12
    pokeByteOff p 68 v13
    pokeByteOff p 72 v14
    pokeByteOff p 76 v15
    pokeByteOff p 80 v16
    pokeByteOff p 84 v17
    pokeByteOff p 88 v18
    pokeByteOff p 92 v19
    pokeByteOff p 96 v20
    pokeByteOff p 100 v21
    pokeByteOff p 104 v22
    pokeByteOff p 108 v23
    pokeByteOff p 112 v24
    pokeByteOff p 116 v25
    pokeByteOff p 120 v26
    pokeByteOff p 124 v27
    pokeByteOff p 128 v28
    return ()

{-# LINE 72 "src/Bindings/DirectFB/IDirectFBVideoProvider.hsc" #-}