{-# LANGUAGE CApiFFI #-} module Hsm.Cam.FFI ( makeLogger , registerLogger , makeCallback , registerCallback , initializeFFI , shutdownFFI , requestCapture ) where import Foreign.C.String (CString) import Foreign.Ptr (FunPtr) type Logger = Int -> CString -> IO () type Callback = Int -> IO () foreign import ccall safe "wrapper" makeLogger :: Logger -> IO (FunPtr Logger) foreign import capi safe "Cam.hpp register_logger" registerLogger :: FunPtr Logger -> IO () foreign import ccall safe "wrapper" makeCallback :: Callback -> IO (FunPtr Callback) foreign import capi safe "Cam.hpp register_callback" registerCallback :: FunPtr Callback -> IO () foreign import capi safe "Cam.hpp initialize_ffi" initializeFFI :: IO () foreign import capi safe "Cam.hpp shutdown_ffi" shutdownFFI :: IO () foreign import capi safe "Cam.hpp request_capture" requestCapture :: IO ()