{-# LINE 1 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface, EmptyDataDecls #-}
{-# LINE 2 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}
module Graphics.Rendering.FreeType.Internal.Stream
( FT_StreamRec_
, FT_Stream
, FT_StreamDesc
, FT_Stream_IoFunc
, FT_Stream_CloseFunc
, base
, size
, pos
, descriptor
, read
, close
, memory
, cursor
, limit
) where

import Prelude hiding (read)

import Foreign
import Foreign.C.Types

import Graphics.Rendering.FreeType.Internal.Memory


{-# LINE 27 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

{-# LINE 28 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}


{-# LINE 30 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

{-# LINE 31 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}


{-# LINE 33 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

-- We don't have FILE* in Haskell, so we cheat and only
-- consider the long part of the FT_StreamDesc union...
type FT_StreamDesc = CLong

type FT_Stream_IoFunc = FunPtr
  (FT_Stream -> CULong -> Ptr CUChar -> CULong -> IO CULong)

type FT_Stream_CloseFunc = FunPtr (FT_Stream -> IO ())

data FT_StreamRec_
type FT_Stream = Ptr FT_StreamRec_

base :: FT_Stream -> Ptr (Ptr CUChar)
base = (\hsc_ptr -> hsc_ptr `plusPtr` 0)
{-# LINE 48 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

size :: FT_Stream -> Ptr CULong
size = (\hsc_ptr -> hsc_ptr `plusPtr` 4)
{-# LINE 51 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

pos :: FT_Stream -> Ptr CULong
pos = (\hsc_ptr -> hsc_ptr `plusPtr` 8)
{-# LINE 54 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

descriptor :: FT_Stream -> Ptr FT_StreamDesc
descriptor = (\hsc_ptr -> hsc_ptr `plusPtr` 12)
{-# LINE 57 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

read :: FT_Stream -> Ptr FT_Stream_IoFunc
read = (\hsc_ptr -> hsc_ptr `plusPtr` 20)
{-# LINE 60 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

close :: FT_Stream -> Ptr FT_Stream_CloseFunc
close = (\hsc_ptr -> hsc_ptr `plusPtr` 24)
{-# LINE 63 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

memory :: FT_Stream -> Ptr FT_Memory
memory = (\hsc_ptr -> hsc_ptr `plusPtr` 28)
{-# LINE 66 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

cursor :: FT_Stream -> Ptr (Ptr CUChar)
cursor = (\hsc_ptr -> hsc_ptr `plusPtr` 32)
{-# LINE 69 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}

limit :: FT_Stream -> Ptr (Ptr CUChar)
limit = (\hsc_ptr -> hsc_ptr `plusPtr` 36)
{-# LINE 72 "Graphics/Rendering/FreeType/Internal/Stream.hsc" #-}