blob: 44f3f4b9b7147e65fc6377b39dc95153bd3e7afa (
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
37
38
39
40
|
{-# 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 ()
|