aboutsummaryrefslogtreecommitdiff
path: root/hsm-cam/Hsm/Cam/FFI.hs
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-08-25 03:05:35 +0000
committerPaul Oliver <contact@pauloliver.dev>2025-08-27 04:17:11 +0000
commit3806bd1f5ce56afdbb4cc0c1ed54d53e25603be2 (patch)
treee8eb9efb2b6c1abfaa0569b7c60b2f371fb215ef /hsm-cam/Hsm/Cam/FFI.hs
parentc6bd9536038af5949924d1ad20a121bb10553300 (diff)
Improves `hsm-cam`
- Moves C++ constants to Haskell side - Uses better names for request callback related variables - Captures and redirects libcamera's internal logging
Diffstat (limited to 'hsm-cam/Hsm/Cam/FFI.hs')
-rw-r--r--hsm-cam/Hsm/Cam/FFI.hs21
1 files changed, 6 insertions, 15 deletions
diff --git a/hsm-cam/Hsm/Cam/FFI.hs b/hsm-cam/Hsm/Cam/FFI.hs
index 1c37fac..6ee648d 100644
--- a/hsm-cam/Hsm/Cam/FFI.hs
+++ b/hsm-cam/Hsm/Cam/FFI.hs
@@ -1,15 +1,12 @@
{-# LANGUAGE CApiFFI #-}
module Hsm.Cam.FFI
- ( frameStride
- , frameBufferLength
- , frameWidth
+ ( frameWidth
, frameHeight
- , frameLine
, makeLogger
, registerLogger
- , makeCallback
- , registerCallback
+ , makeRequestCallback
+ , registerRequestCallback
, startCameraManager
, stopCameraManager
, acquireCamera
@@ -30,25 +27,19 @@ import System.Posix.Types (Fd(Fd))
type Logger = Int -> CString -> IO ()
-type Callback = IO ()
+type RequestCallback = IO ()
foreign import capi unsafe "Cam.hpp value FRAME_WIDTH" frameWidth :: Int
foreign import capi unsafe "Cam.hpp value FRAME_HEIGHT" frameHeight :: Int
-foreign import capi unsafe "Cam.hpp value FRAME_LINE" frameLine :: Int
-
-foreign import capi unsafe "Cam.hpp value FRAME_STRIDE" frameStride :: Int
-
-foreign import capi unsafe "Cam.hpp value FRAME_BUFFER_LENGTH" frameBufferLength :: Int
-
foreign import ccall unsafe "wrapper" makeLogger :: Logger -> IO (FunPtr Logger)
foreign import ccall safe "Cam.hpp register_logger" registerLogger :: FunPtr Logger -> IO ()
-foreign import ccall unsafe "wrapper" makeCallback :: Callback -> IO (FunPtr Callback)
+foreign import ccall unsafe "wrapper" makeRequestCallback :: RequestCallback -> IO (FunPtr RequestCallback)
-foreign import ccall safe "Cam.hpp register_callback" registerCallback :: FunPtr Callback -> IO ()
+foreign import ccall safe "Cam.hpp register_request_callback" registerRequestCallback :: FunPtr RequestCallback -> IO ()
foreign import ccall safe "Cam.hpp start_camera_manager" startCameraManager :: IO Int