hois-0.1.0.0: OIS/OISJoyStick.hs
{-# LANGUAGE ForeignFunctionInterface #-}
module OIS.OISJoyStick(
pov_with,
slider_with,
joyStickState_with,
joyStickEvent_with,
pov_delete,
slider_delete,
joyStickState_delete,
pov_new,
slider_new,
joyStickState_new,
joyStickState_clear,
joyStickEvent_new,
joyStickEvent_delete,
joyStickListener_delete,
joyStickListener_buttonPressed,
joyStickListener_buttonReleased,
joyStickListener_axisMoved,
joyStickListener_povMoved,
joyStickListener_vector3Moved,
joyStick_delete,
joyStick_getNumberOfComponents,
joyStick_setVector3Sensitivity,
joyStick_getVector3Sensitivity,
joyStick_setEventCallback,
joyStick_getEventCallback,
joyStick_getJoyStickState
)
where
import OIS.Types
import Control.Monad
import Foreign
import Foreign.C.String
import Foreign.C.Types
pov_with :: (Pov -> IO a) -> IO a
pov_with f = do
obj <- pov_new
res <- f obj
pov_delete obj
return res
slider_with :: (Slider -> IO a) -> IO a
slider_with f = do
obj <- slider_new
res <- f obj
slider_delete obj
return res
joyStickState_with :: (JoyStickState -> IO a) -> IO a
joyStickState_with f = do
obj <- joyStickState_new
res <- f obj
joyStickState_delete obj
return res
joyStickEvent_with :: Object -> JoyStickState -> (JoyStickEvent -> IO a) -> IO a
joyStickEvent_with p1 p2 f = do
obj <- joyStickEvent_new p1 p2
res <- f obj
joyStickEvent_delete obj
return res
foreign import ccall "OISJoyStick.h OIS_Pov_delete" c_pov_delete :: Pov -> IO ()
pov_delete :: Pov -> IO ()
pov_delete p1 = c_pov_delete p1
foreign import ccall "OISJoyStick.h OIS_Slider_delete" c_slider_delete :: Slider -> IO ()
slider_delete :: Slider -> IO ()
slider_delete p1 = c_slider_delete p1
foreign import ccall "OISJoyStick.h OIS_JoyStickState_delete" c_joyStickState_delete :: JoyStickState -> IO ()
joyStickState_delete :: JoyStickState -> IO ()
joyStickState_delete p1 = c_joyStickState_delete p1
foreign import ccall "OISJoyStick.h OIS_Pov_new" c_pov_new :: IO Pov
pov_new :: IO Pov
pov_new = c_pov_new
foreign import ccall "OISJoyStick.h OIS_Slider_new" c_slider_new :: IO Slider
slider_new :: IO Slider
slider_new = c_slider_new
foreign import ccall "OISJoyStick.h OIS_JoyStickState_new" c_joyStickState_new :: IO JoyStickState
joyStickState_new :: IO JoyStickState
joyStickState_new = c_joyStickState_new
foreign import ccall "OISJoyStick.h OIS_JoyStickState_clear" c_joyStickState_clear :: JoyStickState -> IO ()
joyStickState_clear :: JoyStickState -> IO ()
joyStickState_clear p1 = c_joyStickState_clear p1
foreign import ccall "OISJoyStick.h OIS_JoyStickEvent_new" c_joyStickEvent_new :: Object -> JoyStickState -> IO JoyStickEvent
joyStickEvent_new :: Object -> JoyStickState -> IO JoyStickEvent
joyStickEvent_new p1 p2 = c_joyStickEvent_new p1 p2
foreign import ccall "OISJoyStick.h OIS_JoyStickEvent_delete" c_joyStickEvent_delete :: JoyStickEvent -> IO ()
joyStickEvent_delete :: JoyStickEvent -> IO ()
joyStickEvent_delete p1 = c_joyStickEvent_delete p1
foreign import ccall "OISJoyStick.h OIS_JoyStickListener_delete" c_joyStickListener_delete :: JoyStickListener -> IO ()
joyStickListener_delete :: JoyStickListener -> IO ()
joyStickListener_delete p1 = c_joyStickListener_delete p1
foreign import ccall "OISJoyStick.h OIS_JoyStickListener_buttonPressed" c_joyStickListener_buttonPressed :: JoyStickListener -> JoyStickEvent -> CInt -> IO CBool
joyStickListener_buttonPressed :: JoyStickListener -> JoyStickEvent -> Int -> IO Bool
joyStickListener_buttonPressed p1 p2 p3 = liftM toBool $ c_joyStickListener_buttonPressed p1 p2 (fromIntegral p3)
foreign import ccall "OISJoyStick.h OIS_JoyStickListener_buttonReleased" c_joyStickListener_buttonReleased :: JoyStickListener -> JoyStickEvent -> CInt -> IO CBool
joyStickListener_buttonReleased :: JoyStickListener -> JoyStickEvent -> Int -> IO Bool
joyStickListener_buttonReleased p1 p2 p3 = liftM toBool $ c_joyStickListener_buttonReleased p1 p2 (fromIntegral p3)
foreign import ccall "OISJoyStick.h OIS_JoyStickListener_axisMoved" c_joyStickListener_axisMoved :: JoyStickListener -> JoyStickEvent -> CInt -> IO CBool
joyStickListener_axisMoved :: JoyStickListener -> JoyStickEvent -> Int -> IO Bool
joyStickListener_axisMoved p1 p2 p3 = liftM toBool $ c_joyStickListener_axisMoved p1 p2 (fromIntegral p3)
foreign import ccall "OISJoyStick.h OIS_JoyStickListener_povMoved" c_joyStickListener_povMoved :: JoyStickListener -> JoyStickEvent -> CInt -> IO CBool
joyStickListener_povMoved :: JoyStickListener -> JoyStickEvent -> Int -> IO Bool
joyStickListener_povMoved p1 p2 p3 = liftM toBool $ c_joyStickListener_povMoved p1 p2 (fromIntegral p3)
foreign import ccall "OISJoyStick.h OIS_JoyStickListener_vector3Moved" c_joyStickListener_vector3Moved :: JoyStickListener -> JoyStickEvent -> CInt -> IO CBool
joyStickListener_vector3Moved :: JoyStickListener -> JoyStickEvent -> Int -> IO Bool
joyStickListener_vector3Moved p1 p2 p3 = liftM toBool $ c_joyStickListener_vector3Moved p1 p2 (fromIntegral p3)
foreign import ccall "OISJoyStick.h OIS_JoyStick_delete" c_joyStick_delete :: JoyStick -> IO ()
joyStick_delete :: JoyStick -> IO ()
joyStick_delete p1 = c_joyStick_delete p1
foreign import ccall "OISJoyStick.h OIS_JoyStick_getNumberOfComponents" c_joyStick_getNumberOfComponents :: JoyStick -> CInt -> IO CInt
joyStick_getNumberOfComponents :: JoyStick -> ComponentType -> IO Int
joyStick_getNumberOfComponents p1 p2 = liftM fromIntegral $ c_joyStick_getNumberOfComponents p1 (componentTypeToCInt p2)
foreign import ccall "OISJoyStick.h OIS_JoyStick_setVector3Sensitivity" c_joyStick_setVector3Sensitivity :: JoyStick -> CFloat -> IO ()
joyStick_setVector3Sensitivity :: JoyStick -> Float -> IO ()
joyStick_setVector3Sensitivity p1 p2 = c_joyStick_setVector3Sensitivity p1 (realToFrac p2)
foreign import ccall "OISJoyStick.h OIS_JoyStick_getVector3Sensitivity" c_joyStick_getVector3Sensitivity :: JoyStick -> IO CFloat
joyStick_getVector3Sensitivity :: JoyStick -> IO Float
joyStick_getVector3Sensitivity p1 = liftM realToFrac $ c_joyStick_getVector3Sensitivity p1
foreign import ccall "OISJoyStick.h OIS_JoyStick_setEventCallback" c_joyStick_setEventCallback :: JoyStick -> JoyStickListener -> IO ()
joyStick_setEventCallback :: JoyStick -> JoyStickListener -> IO ()
joyStick_setEventCallback p1 p2 = c_joyStick_setEventCallback p1 p2
foreign import ccall "OISJoyStick.h OIS_JoyStick_getEventCallback" c_joyStick_getEventCallback :: JoyStick -> IO JoyStickListener
joyStick_getEventCallback :: JoyStick -> IO JoyStickListener
joyStick_getEventCallback p1 = c_joyStick_getEventCallback p1
foreign import ccall "OISJoyStick.h OIS_JoyStick_getJoyStickState" c_joyStick_getJoyStickState :: JoyStick -> IO JoyStickState
joyStick_getJoyStickState :: JoyStick -> IO JoyStickState
joyStick_getJoyStickState p1 = c_joyStick_getJoyStickState p1