[libcamera-devel] [RFC 1/7] libcamera: camera_configuration: Return config index

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Sep 2 15:20:38 CEST 2020


Hi Jacopo,

On 02/09/2020 14:08, Jacopo Mondi wrote:
> When adding a new StreamConfiguration to a CameraConfiguration instance
> it might be useful to know how what is the index of the newly added item
> to be able to retrieve it later.
> 
> Return the index of the newly inserted item, which corresponds to the
> 0-indexed number of items in the CameraConfiguration::config_ vector,
> from CameraConfiguration::addConfiguration().
> 
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>

>From the department of "doh - why didn't I think of this, while I was
struggling with this code": (I tried/failed returning the added cfg
rather than the index ...)

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>


> ---
>  include/libcamera/camera.h | 2 +-
>  src/libcamera/camera.cpp   | 5 ++++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
> index 272c12c3c473..53c32afa23a5 100644
> --- a/include/libcamera/camera.h
> +++ b/include/libcamera/camera.h
> @@ -39,7 +39,7 @@ public:
>  
>  	virtual ~CameraConfiguration();
>  
> -	void addConfiguration(const StreamConfiguration &cfg);
> +	int addConfiguration(const StreamConfiguration &cfg);
>  	virtual Status validate() = 0;
>  
>  	StreamConfiguration &at(unsigned int index);
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index 4a9c19c33cfb..9a8923620e24 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -104,10 +104,13 @@ CameraConfiguration::~CameraConfiguration()
>  /**
>   * \brief Add a stream configuration to the camera configuration
>   * \param[in] cfg The stream configuration
> + * \return The index of the newly added stream configuration
>   */
> -void CameraConfiguration::addConfiguration(const StreamConfiguration &cfg)
> +int CameraConfiguration::addConfiguration(const StreamConfiguration &cfg)
>  {
>  	config_.push_back(cfg);
> +
> +	return config_.size() - 1;
>  }
>  
>  /**
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list