packages feed

hois-0.1.0.0: OIS/OISFactoryCreator.hs

{-# LANGUAGE ForeignFunctionInterface #-}
module OIS.OISFactoryCreator(
factoryCreator_delete, 
factoryCreator_totalDevices, 
factoryCreator_freeDevices, 
factoryCreator_createObject, 
factoryCreator_destroyObject
)

where

import OIS.Types
import Control.Monad

import Foreign
import Foreign.C.String
import Foreign.C.Types

foreign import ccall "OISFactoryCreator.h OIS_FactoryCreator_delete" c_factoryCreator_delete :: FactoryCreator -> IO ()
factoryCreator_delete :: FactoryCreator -> IO ()
factoryCreator_delete p1 =   c_factoryCreator_delete p1

foreign import ccall "OISFactoryCreator.h OIS_FactoryCreator_totalDevices" c_factoryCreator_totalDevices :: FactoryCreator -> CInt -> IO CInt
factoryCreator_totalDevices :: FactoryCreator -> Type -> IO Int
factoryCreator_totalDevices p1 p2 =  liftM fromIntegral $  c_factoryCreator_totalDevices p1 (typeToCInt p2)

foreign import ccall "OISFactoryCreator.h OIS_FactoryCreator_freeDevices" c_factoryCreator_freeDevices :: FactoryCreator -> CInt -> IO CInt
factoryCreator_freeDevices :: FactoryCreator -> Type -> IO Int
factoryCreator_freeDevices p1 p2 =  liftM fromIntegral $  c_factoryCreator_freeDevices p1 (typeToCInt p2)

foreign import ccall "OISFactoryCreator.h OIS_FactoryCreator_createObject" c_factoryCreator_createObject :: FactoryCreator -> InputManager -> CInt -> CBool -> (Ptr CChar) -> IO Object
factoryCreator_createObject :: FactoryCreator -> InputManager -> Type -> Bool -> String -> IO Object
factoryCreator_createObject p1 p2 p3 p4 p5 = withCString p5 $ \cp5 -> 
    c_factoryCreator_createObject p1 p2 (typeToCInt p3) (fromBool p4) cp5

foreign import ccall "OISFactoryCreator.h OIS_FactoryCreator_destroyObject" c_factoryCreator_destroyObject :: FactoryCreator -> Object -> IO ()
factoryCreator_destroyObject :: FactoryCreator -> Object -> IO ()
factoryCreator_destroyObject p1 p2 =   c_factoryCreator_destroyObject p1 p2