From 4efe903a671b288ac485f2d2a9c9aabf2eb7b199 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Fri, 8 Aug 2025 22:31:35 +0200 Subject: Adds libcamera bindings --- hsm-cam/Hsm/Cam/FFI.hsc | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 hsm-cam/Hsm/Cam/FFI.hsc (limited to 'hsm-cam/Hsm/Cam/FFI.hsc') diff --git a/hsm-cam/Hsm/Cam/FFI.hsc b/hsm-cam/Hsm/Cam/FFI.hsc new file mode 100644 index 0000000..44f3f4b --- /dev/null +++ b/hsm-cam/Hsm/Cam/FFI.hsc @@ -0,0 +1,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 () -- cgit v1.2.1