| Message ID | 20260129082814.1777779-6-paul.elder@ideasonboard.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi Paul, Quoting Paul Elder (2026-01-29 08:28:11) > 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 through the > CameraManager. > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > --- > No change in v6 > > No change in v5 > > Changes in v4: > - Put LayerManager directly in CameraManager, as opposed to a unique > pointer > > No change in v3 > > New in v2 > --- > include/libcamera/internal/camera_manager.h | 3 +++ > src/libcamera/camera_manager.cpp | 1 + > 2 files changed, 4 insertions(+) > > diff --git a/include/libcamera/internal/camera_manager.h b/include/libcamera/internal/camera_manager.h > index 755928ce60a5..cc3ede02507f 100644 > --- a/include/libcamera/internal/camera_manager.h > +++ b/include/libcamera/internal/camera_manager.h > @@ -19,6 +19,7 @@ > #include <libcamera/base/thread_annotations.h> > > #include "libcamera/internal/global_configuration.h" > +#include "libcamera/internal/layer_manager.h" > #include "libcamera/internal/process.h" > > namespace libcamera { > @@ -45,6 +46,7 @@ public: > } > > IPAManager *ipaManager() const { return ipaManager_.get(); } > + const LayerManager *layerManager() const { return &layerManager_; } > > protected: > void run() override; > @@ -71,6 +73,7 @@ private: > std::unique_ptr<DeviceEnumerator> enumerator_; > > std::unique_ptr<IPAManager> ipaManager_; > + LayerManager layerManager_; Looks good to me! Reviewed-by: Isaac Scott <isaac.scott@ideasonboard.com> Best wishes, Isaac > > const GlobalConfiguration configuration_; > }; > diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp > index 23185467ba02..554cd935339a 100644 > --- a/src/libcamera/camera_manager.cpp > +++ b/src/libcamera/camera_manager.cpp > @@ -16,6 +16,7 @@ > #include "libcamera/internal/camera.h" > #include "libcamera/internal/device_enumerator.h" > #include "libcamera/internal/global_configuration.h" > +#include "libcamera/internal/layer_manager.h" > #include "libcamera/internal/ipa_manager.h" > #include "libcamera/internal/pipeline_handler.h" > > -- > 2.47.2 >
diff --git a/include/libcamera/internal/camera_manager.h b/include/libcamera/internal/camera_manager.h index 755928ce60a5..cc3ede02507f 100644 --- a/include/libcamera/internal/camera_manager.h +++ b/include/libcamera/internal/camera_manager.h @@ -19,6 +19,7 @@ #include <libcamera/base/thread_annotations.h> #include "libcamera/internal/global_configuration.h" +#include "libcamera/internal/layer_manager.h" #include "libcamera/internal/process.h" namespace libcamera { @@ -45,6 +46,7 @@ public: } IPAManager *ipaManager() const { return ipaManager_.get(); } + const LayerManager *layerManager() const { return &layerManager_; } protected: void run() override; @@ -71,6 +73,7 @@ private: std::unique_ptr<DeviceEnumerator> enumerator_; std::unique_ptr<IPAManager> ipaManager_; + LayerManager layerManager_; const GlobalConfiguration configuration_; }; diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp index 23185467ba02..554cd935339a 100644 --- a/src/libcamera/camera_manager.cpp +++ b/src/libcamera/camera_manager.cpp @@ -16,6 +16,7 @@ #include "libcamera/internal/camera.h" #include "libcamera/internal/device_enumerator.h" #include "libcamera/internal/global_configuration.h" +#include "libcamera/internal/layer_manager.h" #include "libcamera/internal/ipa_manager.h" #include "libcamera/internal/pipeline_handler.h"