[libcamera-devel] [PATCH] libcamera: pipeline_handler: Reorder member declaration order

Niklas Söderlund niklas.soderlund at ragnatech.se
Sun Feb 10 14:00:00 CET 2019


Hi Laurent,

Thanks for your work.

On 2019-02-09 01:01:38 +0200, Laurent Pinchart wrote:
> Reorder the member declaration order in the PipelineHandler class to
> match the control flow order, and to declare variables after methods
> according to the coding style. Update the documentation accordingly,
> preserving the order within the public, protected and private sections,
> but grouping related methods together between the sections.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

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

> ---
>  src/libcamera/include/pipeline_handler.h |  10 +--
>  src/libcamera/pipeline_handler.cpp       | 101 +++++++++++------------
>  2 files changed, 55 insertions(+), 56 deletions(-)
> 
> diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h
> index 7f2ec2975db0..4363dcd8ed8e 100644
> --- a/src/libcamera/include/pipeline_handler.h
> +++ b/src/libcamera/include/pipeline_handler.h
> @@ -42,6 +42,8 @@ public:
>  	PipelineHandler(CameraManager *manager);
>  	virtual ~PipelineHandler();
>  
> +	virtual bool match(DeviceEnumerator *enumerator) = 0;
> +
>  	virtual std::map<Stream *, StreamConfiguration>
>  	streamConfiguration(Camera *camera, std::vector<Stream *> &streams) = 0;
>  	virtual int configureStreams(Camera *camera,
> @@ -55,20 +57,18 @@ public:
>  
>  	virtual int queueRequest(const Camera *camera, Request *request) = 0;
>  
> -	virtual bool match(DeviceEnumerator *enumerator) = 0;
> -
>  protected:
> -	CameraManager *manager_;
> -
>  	void registerCamera(std::shared_ptr<Camera> camera);
>  	void hotplugMediaDevice(MediaDevice *media);
>  
>  	CameraData *cameraData(const Camera *camera);
>  	void setCameraData(const Camera *camera, std::unique_ptr<CameraData> data);
>  
> +	CameraManager *manager_;
> +
>  private:
> -	virtual void disconnect();
>  	void mediaDeviceDisconnected(MediaDevice *media);
> +	virtual void disconnect();
>  
>  	std::vector<std::weak_ptr<Camera>> cameras_;
>  	std::map<const Camera *, std::unique_ptr<CameraData>> cameraData_;
> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
> index cc2d4643ec2f..4e111d6d2f55 100644
> --- a/src/libcamera/pipeline_handler.cpp
> +++ b/src/libcamera/pipeline_handler.cpp
> @@ -75,6 +75,36 @@ PipelineHandler::~PipelineHandler()
>  {
>  };
>  
> +/**
> + * \fn PipelineHandler::match(DeviceEnumerator *enumerator)
> + * \brief Match media devices and create camera instances
> + * \param enumerator The enumerator providing all media devices found in the
> + * system
> + *
> + * This function is the main entry point of the pipeline handler. It is called
> + * by the camera manager with the \a enumerator passed as an argument. It shall
> + * acquire from the \a enumerator all the media devices it needs for a single
> + * pipeline, create one or multiple Camera instances and register them with the
> + * camera manager.
> + *
> + * If all media devices needed by the pipeline handler are found, they must all
> + * be acquired by a call to MediaDevice::acquire(). This function shall then
> + * create the corresponding Camera instances, store them internally, and return
> + * true. Otherwise it shall not acquire any media device (or shall release all
> + * the media devices is has acquired by calling MediaDevice::release()) and
> + * return false.
> + *
> + * If multiple instances of a pipeline are available in the system, the
> + * PipelineHandler class will be instanciated once per instance, and its match()
> + * function called for every instance. Each call shall acquire media devices for
> + * one pipeline instance, until all compatible media devices are exhausted.
> + *
> + * If this function returns true, a new instance of the pipeline handler will
> + * be created and its match() function called.
> + *
> + * \return true if media devices have been acquired and camera instances
> + * created, or false otherwise
> + */
>  
>  /**
>   * \fn PipelineHandler::streamConfiguration()
> @@ -176,46 +206,6 @@ PipelineHandler::~PipelineHandler()
>   * \return 0 on success or a negative error code on error
>   */
>  
> -/**
> - * \fn PipelineHandler::match(DeviceEnumerator *enumerator)
> - * \brief Match media devices and create camera instances
> - * \param enumerator The enumerator providing all media devices found in the
> - * system
> - *
> - * This function is the main entry point of the pipeline handler. It is called
> - * by the camera manager with the \a enumerator passed as an argument. It shall
> - * acquire from the \a enumerator all the media devices it needs for a single
> - * pipeline, create one or multiple Camera instances and register them with the
> - * camera manager.
> - *
> - * If all media devices needed by the pipeline handler are found, they must all
> - * be acquired by a call to MediaDevice::acquire(). This function shall then
> - * create the corresponding Camera instances, store them internally, and return
> - * true. Otherwise it shall not acquire any media device (or shall release all
> - * the media devices is has acquired by calling MediaDevice::release()) and
> - * return false.
> - *
> - * If multiple instances of a pipeline are available in the system, the
> - * PipelineHandler class will be instanciated once per instance, and its match()
> - * function called for every instance. Each call shall acquire media devices for
> - * one pipeline instance, until all compatible media devices are exhausted.
> - *
> - * If this function returns true, a new instance of the pipeline handler will
> - * be created and its match() function called.
> - *
> - * \return true if media devices have been acquired and camera instances
> - * created, or false otherwise
> - */
> -
> -/**
> - * \var PipelineHandler::manager_
> - * \brief The Camera manager associated with the pipeline handler
> - *
> - * The camera manager pointer is stored in the pipeline handler for the
> - * convenience of pipeline handler implementations. It remains valid and
> - * constant for the whole lifetime of the pipeline handler.
> - */
> -
>  /**
>   * \brief Register a camera to the camera manager and pipeline handler
>   * \param[in] camera The camera to be added
> @@ -246,6 +236,17 @@ void PipelineHandler::hotplugMediaDevice(MediaDevice *media)
>  	media->disconnected.connect(this, &PipelineHandler::mediaDeviceDisconnected);
>  }
>  
> +/**
> + * \brief Slot for the MediaDevice disconnected signal
> + */
> +void PipelineHandler::mediaDeviceDisconnected(MediaDevice *media)
> +{
> +	if (cameras_.empty())
> +		return;
> +
> +	disconnect();
> +}
> +
>  /**
>   * \brief Device disconnection handler
>   *
> @@ -272,17 +273,6 @@ void PipelineHandler::disconnect()
>  	cameras_.clear();
>  }
>  
> -/**
> - * \brief Slot for the MediaDevice disconnected signal
> - */
> -void PipelineHandler::mediaDeviceDisconnected(MediaDevice *media)
> -{
> -	if (cameras_.empty())
> -		return;
> -
> -	disconnect();
> -}
> -
>  /**
>   * \brief Retrieve the pipeline-specific data associated with a Camera
>   * \param camera The camera whose data to retrieve
> @@ -331,6 +321,15 @@ void PipelineHandler::setCameraData(const Camera *camera,
>  	cameraData_[camera] = std::move(data);
>  }
>  
> +/**
> + * \var PipelineHandler::manager_
> + * \brief The Camera manager associated with the pipeline handler
> + *
> + * The camera manager pointer is stored in the pipeline handler for the
> + * convenience of pipeline handler implementations. It remains valid and
> + * constant for the whole lifetime of the pipeline handler.
> + */
> +
>  /**
>   * \class PipelineHandlerFactory
>   * \brief Registration of PipelineHandler classes and creation of instances
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list