[libcamera-devel] [PATCH v2 2/3] libcamera: pipeline_handler: Mark controls() and properties() as const operations

Niklas Söderlund niklas.soderlund at ragnatech.se
Fri Aug 14 12:45:08 CEST 2020


Reading the controls and properties does not modify the pipeline's state
and can be marked as const operations.

Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
* Changes since v1
- Spelling in commit message.
---
 include/libcamera/internal/pipeline_handler.h | 4 ++--
 src/libcamera/pipeline_handler.cpp            | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h
index c1873df00b6a2a28..a4e1b529c4611df7 100644
--- a/include/libcamera/internal/pipeline_handler.h
+++ b/include/libcamera/internal/pipeline_handler.h
@@ -68,8 +68,8 @@ public:
 	bool lock();
 	void unlock();
 
-	const ControlInfoMap &controls(Camera *camera);
-	const ControlList &properties(Camera *camera);
+	const ControlInfoMap &controls(const Camera *camera) const;
+	const ControlList &properties(const Camera *camera) const;
 
 	virtual CameraConfiguration *generateConfiguration(Camera *camera,
 		const StreamRoles &roles) = 0;
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index 73c51972a225a247..918aea1e8328abc8 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -257,9 +257,9 @@ void PipelineHandler::unlock()
  * \context This function is \threadsafe.
  * \return A ControlInfoMap listing the controls support by \a camera
  */
-const ControlInfoMap &PipelineHandler::controls(Camera *camera)
+const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const
 {
-	CameraData *data = cameraData(camera);
+	const CameraData *data = cameraData(camera);
 	return data->controlInfo_;
 }
 
@@ -268,9 +268,9 @@ const ControlInfoMap &PipelineHandler::controls(Camera *camera)
  * \param[in] camera The camera
  * \return A ControlList of properties supported by \a camera
  */
-const ControlList &PipelineHandler::properties(Camera *camera)
+const ControlList &PipelineHandler::properties(const Camera *camera) const
 {
-	CameraData *data = cameraData(camera);
+	const CameraData *data = cameraData(camera);
 	return data->properties_;
 }
 
-- 
2.28.0



More information about the libcamera-devel mailing list