diff options
Diffstat (limited to 'hsm-cam/FFI')
-rw-r--r-- | hsm-cam/FFI/Cam.cpp | 36 | ||||
-rw-r--r-- | hsm-cam/FFI/Cam.hpp | 6 |
2 files changed, 29 insertions, 13 deletions
diff --git a/hsm-cam/FFI/Cam.cpp b/hsm-cam/FFI/Cam.cpp index 5f2ca1f..05fd1a8 100644 --- a/hsm-cam/FFI/Cam.cpp +++ b/hsm-cam/FFI/Cam.cpp @@ -1,8 +1,8 @@ -#include <format> +#include "Cam.hpp" #include <libcamera/libcamera.h> -#include "Cam.hpp" +#include <format> using namespace libcamera; using namespace std; @@ -15,27 +15,37 @@ unique_ptr<CameraConfiguration> g_config; unique_ptr<FrameBufferAllocator> g_allocator; unique_ptr<Request> g_request; -template <class... Args> -void logMsg(Severity severity, const format_string<Args...> fmt, const Args&... args) { +template<class... Args> +void +logMsg(Severity severity, const format_string<Args...> fmt, const Args &...args) +{ g_logger(severity, vformat(fmt.get(), make_format_args(args...)).c_str()); } -void request_complete(Request *request) { +void +request_complete(Request *request) +{ logMsg(Trace, "Completed request"); g_callback(request->buffers().begin()->second->planes()[0].fd.get()); } -extern "C" void register_logger(HsLogger hs_logger) { +extern "C" void +register_logger(HsLogger hs_logger) +{ g_logger = hs_logger; logMsg(Info, "Registered FFI logger"); } -extern "C" void register_callback(HsCallback hs_callback) { +extern "C" void +register_callback(HsCallback hs_callback) +{ g_callback = hs_callback; logMsg(Info, "Registered FFI callback"); } -extern "C" void initialize_ffi() { +extern "C" void +initialize_ffi() +{ logMsg(Info, "Starting camera manager"); g_manager = make_unique<CameraManager>(); g_manager->start(); @@ -45,7 +55,7 @@ extern "C" void initialize_ffi() { g_camera->acquire(); logMsg(Info, "Generating still capture configuration"); - g_config = g_camera->generateConfiguration({StreamRole::StillCapture}); + g_config = g_camera->generateConfiguration({ StreamRole::StillCapture }); g_camera->configure(g_config.get()); logMsg(Info, "Allocating buffer"); @@ -59,7 +69,9 @@ extern "C" void initialize_ffi() { g_camera->start(); } -extern "C" void shutdown_ffi() { +extern "C" void +shutdown_ffi() +{ logMsg(Info, "Stopping camera"); g_camera->stop(); @@ -75,7 +87,9 @@ extern "C" void shutdown_ffi() { g_manager->stop(); } -extern "C" void request_capture() { +extern "C" void +request_capture() +{ logMsg(Trace, "Requesting still capture"); Stream *stream = (*g_config)[0].stream(); diff --git a/hsm-cam/FFI/Cam.hpp b/hsm-cam/FFI/Cam.hpp index e59fa1d..c2cd4ed 100644 --- a/hsm-cam/FFI/Cam.hpp +++ b/hsm-cam/FFI/Cam.hpp @@ -1,7 +1,8 @@ #ifndef CAM_HPP #define CAM_HPP -enum Severity { +enum Severity +{ Attention = 0, Info = 1, Trace = 2, @@ -11,7 +12,8 @@ typedef void (*HsLogger)(enum Severity, const char *); typedef void (*HsCallback)(int fd); #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif void register_logger(HsLogger hs_logger); void register_callback(HsCallback hs_callback); |