[libcamera-devel,RFC,12/17] libcamera: pipeline: vimc: Migrate to Camera::Private
diff mbox series

Message ID 20210723040036.32346-13-laurent.pinchart@ideasonboard.com
State Superseded
Headers show
Series
  • libcamera: Replace CameraData with Camera::Private
Related show

Commit Message

Laurent Pinchart July 23, 2021, 4 a.m. UTC
As part of the effort to remove the CameraData class, migrate the
pipeline handler-specific camera data from CameraData to the
Camera::Private class.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/pipeline/vimc/vimc.cpp | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

Comments

Niklas Söderlund July 24, 2021, 7:26 a.m. UTC | #1
Hi Laurent,

Thanks for your patch.

On 2021-07-23 07:00:31 +0300, Laurent Pinchart wrote:
> As part of the effort to remove the CameraData class, migrate the
> pipeline handler-specific camera data from CameraData to the
> Camera::Private class.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  src/libcamera/pipeline/vimc/vimc.cpp | 19 +++++++++----------
>  1 file changed, 9 insertions(+), 10 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
> index d63562b1ee54..866c993d7e50 100644
> --- a/src/libcamera/pipeline/vimc/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
> @@ -42,11 +42,11 @@ namespace libcamera {
>  
>  LOG_DEFINE_CATEGORY(VIMC)
>  
> -class VimcCameraData : public CameraData
> +class VimcCameraData : public Camera::Private
>  {
>  public:
>  	VimcCameraData(PipelineHandler *pipe, MediaDevice *media)
> -		: CameraData(pipe), media_(media)
> +		: Camera::Private(pipe), media_(media)
>  	{
>  	}
>  
> @@ -97,10 +97,9 @@ public:
>  private:
>  	int processControls(VimcCameraData *data, Request *request);
>  
> -	VimcCameraData *cameraData(const Camera *camera)
> +	VimcCameraData *cameraData(Camera *camera)
>  	{
> -		return static_cast<VimcCameraData *>(
> -			PipelineHandler::cameraData(camera));
> +		return static_cast<VimcCameraData *>(camera->_d());
>  	}
>  };
>  
> @@ -438,10 +437,10 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
>  
>  	/* Create and register the camera. */
>  	std::set<Stream *> streams{ &data->stream_ };
> +	const std::string &id = data->sensor_->id();
>  	std::shared_ptr<Camera> camera =
> -		Camera::create(new Camera::Private(this), data->sensor_->id(),
> -			       streams);
> -	registerCamera(std::move(camera), std::move(data));
> +		Camera::create(data.release(), id, streams);
> +	registerCamera(std::move(camera), nullptr);
>  
>  	return true;
>  }
> @@ -530,8 +529,8 @@ void VimcCameraData::bufferReady(FrameBuffer *buffer)
>  	request->metadata().set(controls::SensorTimestamp,
>  				buffer->metadata().timestamp);
>  
> -	pipe_->completeBuffer(request, buffer);
> -	pipe_->completeRequest(request);
> +	pipe()->completeBuffer(request, buffer);
> +	pipe()->completeRequest(request);
>  }
>  
>  REGISTER_PIPELINE_HANDLER(PipelineHandlerVimc)
> -- 
> Regards,
> 
> Laurent Pinchart
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index d63562b1ee54..866c993d7e50 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -42,11 +42,11 @@  namespace libcamera {
 
 LOG_DEFINE_CATEGORY(VIMC)
 
-class VimcCameraData : public CameraData
+class VimcCameraData : public Camera::Private
 {
 public:
 	VimcCameraData(PipelineHandler *pipe, MediaDevice *media)
-		: CameraData(pipe), media_(media)
+		: Camera::Private(pipe), media_(media)
 	{
 	}
 
@@ -97,10 +97,9 @@  public:
 private:
 	int processControls(VimcCameraData *data, Request *request);
 
-	VimcCameraData *cameraData(const Camera *camera)
+	VimcCameraData *cameraData(Camera *camera)
 	{
-		return static_cast<VimcCameraData *>(
-			PipelineHandler::cameraData(camera));
+		return static_cast<VimcCameraData *>(camera->_d());
 	}
 };
 
@@ -438,10 +437,10 @@  bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
 
 	/* Create and register the camera. */
 	std::set<Stream *> streams{ &data->stream_ };
+	const std::string &id = data->sensor_->id();
 	std::shared_ptr<Camera> camera =
-		Camera::create(new Camera::Private(this), data->sensor_->id(),
-			       streams);
-	registerCamera(std::move(camera), std::move(data));
+		Camera::create(data.release(), id, streams);
+	registerCamera(std::move(camera), nullptr);
 
 	return true;
 }
@@ -530,8 +529,8 @@  void VimcCameraData::bufferReady(FrameBuffer *buffer)
 	request->metadata().set(controls::SensorTimestamp,
 				buffer->metadata().timestamp);
 
-	pipe_->completeBuffer(request, buffer);
-	pipe_->completeRequest(request);
+	pipe()->completeBuffer(request, buffer);
+	pipe()->completeRequest(request);
 }
 
 REGISTER_PIPELINE_HANDLER(PipelineHandlerVimc)