#ifndef LCAMERA_DEV_CAMERA_MANAGER_STATE_H #define LCAMERA_DEV_CAMERA_MANAGER_STATE_H #include #include #include #include #include #include #include #include #include #include namespace lcamera_dev { struct CameraManagerResources { std::unique_ptr cameraManager; std::map> sessionsByCameraId; }; struct LcameraDevState { LcameraDevState() : managerState("lcameraDev::CameraManager") {} bool isInitialized = false; std::shared_ptr componentThread; sscl::SharedResourceGroup managerState; }; LcameraDevState& getLcameraDevState(); void lcameraDevMain( const std::shared_ptr& componentThread); void lcameraDevExit(); std::vector> listLibcameraCameras(); sscl::co::ViralNonPostingInvoker getOrCreateDeviceSessionCReq(const std::string& deviceSelector); sscl::co::ViralNonPostingInvoker releaseDeviceSessionCReq( const std::shared_ptr& deviceSession); sscl::co::ViralNonPostingInvoker> enumerateCamerasCReq(); } // namespace lcamera_dev #endif // LCAMERA_DEV_CAMERA_MANAGER_STATE_H