[libcamera-devel,08/23] libcamera: camera: Add Camera properties

Message ID 20200113164245.52535-9-jacopo@jmondi.org
State Accepted
Headers show
Series
  • Properties and compound controls
Related show

Commit Message

Jacopo Mondi Jan. 13, 2020, 4:42 p.m. UTC
Add a method to the Camera class to retrieve the Camera properties
registered by the pipeline handler.

While at it, reword the Camera::controls() operation documentation to
specify that the camera control information are constant during the
camera lifetime not their value, while the camera properties value are
the actually static information.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---
 include/libcamera/camera.h |  1 +
 src/libcamera/camera.cpp   | 16 +++++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

Patch

diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
index 6597ade83288..ad9ddaa5231a 100644
--- a/include/libcamera/camera.h
+++ b/include/libcamera/camera.h
@@ -86,6 +86,7 @@  public:
 	int release();
 
 	const ControlInfoMap &controls();
+	const ControlList &properties();
 
 	const std::set<Stream *> &streams() const;
 	std::unique_ptr<CameraConfiguration> generateConfiguration(const StreamRoles &roles);
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 79a5f994f9bb..cd4e8f7ce855 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -547,7 +547,8 @@  int Camera::release()
 /**
  * \brief Retrieve the list of controls supported by the camera
  *
- * Camera controls remain constant through the lifetime of the camera.
+ * The list of controls supported by the camera and their associated
+ * constraints remain constant through the lifetime of the Camera object.
  *
  * \return A ControlInfoMap listing the controls supported by the camera
  */
@@ -556,6 +557,19 @@  const ControlInfoMap &Camera::controls()
 	return pipe_->controls(this);
 }
 
+/**
+ * \brief Retrieve the list of properties of the camera
+ *
+ * Camera properties are static information that describe the capabilities of
+ * the camera. They remain constant through the lifetime of the Camera object.
+ *
+ * \return A ControlList of properties supported by the camera
+ */
+const ControlList &Camera::properties()
+{
+	return pipe_->properties(this);
+}
+
 /**
  * \brief Retrieve all the camera's stream information
  *