diff options
author | Paul Oliver <contact@pauloliver.dev> | 2025-08-25 03:05:35 +0000 |
---|---|---|
committer | Paul Oliver <contact@pauloliver.dev> | 2025-08-27 04:17:11 +0000 |
commit | 3806bd1f5ce56afdbb4cc0c1ed54d53e25603be2 (patch) | |
tree | e8eb9efb2b6c1abfaa0569b7c60b2f371fb215ef /hsm-cam/Hsm/Cam/FFI.hs | |
parent | c6bd9536038af5949924d1ad20a121bb10553300 (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.hs | 21 |
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 |