[libcamera-devel,v4,01/13] libcamera: v4l2_controls: Add min and max to V4L2ControlInfo

Message ID 20190701201504.28487-2-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • libcamera Controls
Related show

Commit Message

Laurent Pinchart July 1, 2019, 8:14 p.m. UTC
Add min() and max() methods to V4L2ControlInfo to report the control's
minimum and maximum value respectively.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
---
 src/libcamera/include/v4l2_controls.h |  6 ++++++
 src/libcamera/v4l2_controls.cpp       | 14 ++++++++++++++
 2 files changed, 20 insertions(+)

Comments

Niklas Söderlund July 1, 2019, 11:38 p.m. UTC | #1
Hi Laurent,

Thanks for your work.

On 2019-07-01 23:14:52 +0300, Laurent Pinchart wrote:
> Add min() and max() methods to V4L2ControlInfo to report the control's
> minimum and maximum value respectively.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

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

> ---
>  src/libcamera/include/v4l2_controls.h |  6 ++++++
>  src/libcamera/v4l2_controls.cpp       | 14 ++++++++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/src/libcamera/include/v4l2_controls.h b/src/libcamera/include/v4l2_controls.h
> index 2c8cb9003f25..0047efab11fa 100644
> --- a/src/libcamera/include/v4l2_controls.h
> +++ b/src/libcamera/include/v4l2_controls.h
> @@ -28,11 +28,17 @@ public:
>  	size_t size() const { return size_; }
>  	const std::string &name() const { return name_; }
>  
> +	int64_t min() const { return min_; }
> +	int64_t max() const { return max_; }
> +
>  private:
>  	unsigned int id_;
>  	unsigned int type_;
>  	size_t size_;
>  	std::string name_;
> +
> +	int64_t min_;
> +	int64_t max_;
>  };
>  
>  class V4L2Control
> diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
> index 78888de29642..af017bce48ba 100644
> --- a/src/libcamera/v4l2_controls.cpp
> +++ b/src/libcamera/v4l2_controls.cpp
> @@ -74,6 +74,8 @@ V4L2ControlInfo::V4L2ControlInfo(const struct v4l2_query_ext_ctrl &ctrl)
>  	type_ = ctrl.type;
>  	name_ = static_cast<const char *>(ctrl.name);
>  	size_ = ctrl.elem_size * ctrl.elems;
> +	min_ = ctrl.minimum;
> +	max_ = ctrl.maximum;
>  }
>  
>  /**
> @@ -100,6 +102,18 @@ V4L2ControlInfo::V4L2ControlInfo(const struct v4l2_query_ext_ctrl &ctrl)
>   * \return The V4L2 control user readable name
>   */
>  
> +/**
> + * \fn V4L2ControlInfo::min()
> + * \brief Retrieve the control minimum value
> + * \return The V4L2 control minimum value
> + */
> +
> +/**
> + * \fn V4L2ControlInfo::max()
> + * \brief Retrieve the control maximum value
> + * \return The V4L2 control maximum value
> + */
> +
>  /**
>   * \class V4L2Control
>   * \brief A V4L2 control value
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

diff --git a/src/libcamera/include/v4l2_controls.h b/src/libcamera/include/v4l2_controls.h
index 2c8cb9003f25..0047efab11fa 100644
--- a/src/libcamera/include/v4l2_controls.h
+++ b/src/libcamera/include/v4l2_controls.h
@@ -28,11 +28,17 @@  public:
 	size_t size() const { return size_; }
 	const std::string &name() const { return name_; }
 
+	int64_t min() const { return min_; }
+	int64_t max() const { return max_; }
+
 private:
 	unsigned int id_;
 	unsigned int type_;
 	size_t size_;
 	std::string name_;
+
+	int64_t min_;
+	int64_t max_;
 };
 
 class V4L2Control
diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
index 78888de29642..af017bce48ba 100644
--- a/src/libcamera/v4l2_controls.cpp
+++ b/src/libcamera/v4l2_controls.cpp
@@ -74,6 +74,8 @@  V4L2ControlInfo::V4L2ControlInfo(const struct v4l2_query_ext_ctrl &ctrl)
 	type_ = ctrl.type;
 	name_ = static_cast<const char *>(ctrl.name);
 	size_ = ctrl.elem_size * ctrl.elems;
+	min_ = ctrl.minimum;
+	max_ = ctrl.maximum;
 }
 
 /**
@@ -100,6 +102,18 @@  V4L2ControlInfo::V4L2ControlInfo(const struct v4l2_query_ext_ctrl &ctrl)
  * \return The V4L2 control user readable name
  */
 
+/**
+ * \fn V4L2ControlInfo::min()
+ * \brief Retrieve the control minimum value
+ * \return The V4L2 control minimum value
+ */
+
+/**
+ * \fn V4L2ControlInfo::max()
+ * \brief Retrieve the control maximum value
+ * \return The V4L2 control maximum value
+ */
+
 /**
  * \class V4L2Control
  * \brief A V4L2 control value