libcamera: pipeline_handler: Store the camera manager pointer

Instead of passing the camera manager pointer to the match() function,
and later to more PipelineHandler functions, store it in the
PipelineHandler::manager_ member variable at construction time and
access it from there.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart
2019-01-23 21:53:17 +02:00
parent eb1ecc92ce
commit e597598abf
6 changed files with 66 additions and 36 deletions
+6 -6
View File
@@ -17,17 +17,17 @@ namespace libcamera {
class PipelineHandlerUVC : public PipelineHandler
{
public:
PipelineHandlerUVC();
PipelineHandlerUVC(CameraManager *manager);
~PipelineHandlerUVC();
bool match(CameraManager *manager, DeviceEnumerator *enumerator);
bool match(DeviceEnumerator *enumerator);
private:
MediaDevice *dev_;
};
PipelineHandlerUVC::PipelineHandlerUVC()
: dev_(nullptr)
PipelineHandlerUVC::PipelineHandlerUVC(CameraManager *manager)
: PipelineHandler(manager), dev_(nullptr)
{
}
@@ -37,7 +37,7 @@ PipelineHandlerUVC::~PipelineHandlerUVC()
dev_->release();
}
bool PipelineHandlerUVC::match(CameraManager *manager, DeviceEnumerator *enumerator)
bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)
{
DeviceMatch dm("uvcvideo");
@@ -49,7 +49,7 @@ bool PipelineHandlerUVC::match(CameraManager *manager, DeviceEnumerator *enumera
dev_->acquire();
std::shared_ptr<Camera> camera = Camera::create(dev_->model());
manager->addCamera(std::move(camera));
manager_->addCamera(std::move(camera));
return true;
}