{-# LINE 1 "FreeType/Format/BDF/Types.hsc" #-} {-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE PatternSynonyms #-} module FreeType.Format.BDF.Types where import FreeType.Core.Types.Types import Data.Int import Data.Function ((&)) import Data.Word import Foreign.Ptr import Foreign.Storable type BDF_PropertyType = Word32 {-# LINE 18 "FreeType/Format/BDF/Types.hsc" #-} pattern BDF_PROPERTY_TYPE_NONE , BDF_PROPERTY_TYPE_ATOM , BDF_PROPERTY_TYPE_INTEGER , BDF_PROPERTY_TYPE_CARDINAL :: (Eq a, Num a) => a pattern BDF_PROPERTY_TYPE_NONE = 0 {-# LINE 25 "FreeType/Format/BDF/Types.hsc" #-} pattern BDF_PROPERTY_TYPE_ATOM = 1 {-# LINE 26 "FreeType/Format/BDF/Types.hsc" #-} pattern BDF_PROPERTY_TYPE_INTEGER = 2 {-# LINE 27 "FreeType/Format/BDF/Types.hsc" #-} pattern BDF_PROPERTY_TYPE_CARDINAL = 3 {-# LINE 28 "FreeType/Format/BDF/Types.hsc" #-} type BDF_Property = Ptr BDF_PropertyRec data BDF_PropertyRec = BDF_PropertyRec { prType :: BDF_PropertyType , prAtom :: Ptr Int8 {-# LINE 38 "FreeType/Format/BDF/Types.hsc" #-} , prInteger :: FT_Int32 , prCardinal :: FT_UInt32 } instance Storable BDF_PropertyRec where sizeOf _ = (16) {-# LINE 44 "FreeType/Format/BDF/Types.hsc" #-} alignment _ = (16) {-# LINE 45 "FreeType/Format/BDF/Types.hsc" #-} peek ptr = BDF_PropertyRec <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr {-# LINE 49 "FreeType/Format/BDF/Types.hsc" #-} <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr {-# LINE 50 "FreeType/Format/BDF/Types.hsc" #-} <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr {-# LINE 51 "FreeType/Format/BDF/Types.hsc" #-} <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr {-# LINE 52 "FreeType/Format/BDF/Types.hsc" #-} poke ptr val = do (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & prType {-# LINE 55 "FreeType/Format/BDF/Types.hsc" #-} case prType val of BDF_PROPERTY_TYPE_ATOM -> (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & prAtom {-# LINE 57 "FreeType/Format/BDF/Types.hsc" #-} BDF_PROPERTY_TYPE_INTEGER -> (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & prInteger {-# LINE 58 "FreeType/Format/BDF/Types.hsc" #-} BDF_PROPERTY_TYPE_CARDINAL -> (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & prCardinal {-# LINE 59 "FreeType/Format/BDF/Types.hsc" #-} _ -> return ()