@@ -25,6 +25,7 @@ namespace libcamera {
class Camera;
class DeviceEnumerator;
class IPAManager;
+class LayerManager;
class PipelineHandlerFactoryBase;
class CameraManager::Private : public Extensible::Private, public Thread
@@ -39,6 +40,7 @@ public:
void removeCamera(std::shared_ptr<Camera> camera) LIBCAMERA_TSA_EXCLUDES(mutex_);
IPAManager *ipaManager() const { return ipaManager_.get(); }
+ LayerManager *layerManager() const { return layerManager_.get(); }
protected:
void run() override;
@@ -66,6 +68,7 @@ private:
std::unique_ptr<IPAManager> ipaManager_;
ProcessManager processManager_;
+ std::unique_ptr<LayerManager> layerManager_;
};
} /* namespace libcamera */
@@ -15,6 +15,7 @@
#include "libcamera/internal/camera.h"
#include "libcamera/internal/device_enumerator.h"
+#include "libcamera/internal/layer_manager.h"
#include "libcamera/internal/ipa_manager.h"
#include "libcamera/internal/pipeline_handler.h"
@@ -41,6 +42,7 @@ CameraManager::Private::Private()
: initialized_(false)
{
ipaManager_ = std::make_unique<IPAManager>();
+ layerManager_ = std::make_unique<LayerManager>();
}
int CameraManager::Private::start()
Add to the CameraManager a LayerManager member. This allows us to have one LayerManager that handles loading all the layer shared objects, and then each Camera can access the layer via the LayerManager via through the CameraManager. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> --- New in v2 --- include/libcamera/internal/camera_manager.h | 3 +++ src/libcamera/camera_manager.cpp | 2 ++ 2 files changed, 5 insertions(+)