blob: 93d2f5705a496185466d1166503db198cfd4ca30 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
{-# 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 ()
|