[libcamera-devel] [PATCH] simple-cam: Update to the new ControList::get() API

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jul 19 14:26:04 CEST 2022


The ControlList::get() function has changed and now returns a
std::optional<T>. Adapt simple-cam accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 simple-cam.cpp | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/simple-cam.cpp b/simple-cam.cpp
index 4de1b7de9ced..3e17839d17e6 100644
--- a/simple-cam.cpp
+++ b/simple-cam.cpp
@@ -133,18 +133,22 @@ std::string cameraName(Camera *camera)
 	const ControlList &props = camera->properties();
 	std::string name;
 
-	switch (props.get(properties::Location)) {
-	case properties::CameraLocationFront:
-		name = "Internal front camera";
-		break;
-	case properties::CameraLocationBack:
-		name = "Internal back camera";
-		break;
-	case properties::CameraLocationExternal:
-		name = "External camera";
-		if (props.contains(properties::Model))
-			name += " '" + props.get(properties::Model) + "'";
-		break;
+	const auto &location = props.get(properties::Location);
+	if (location) {
+		switch (*location) {
+		case properties::CameraLocationFront:
+			name = "Internal front camera";
+			break;
+		case properties::CameraLocationBack:
+			name = "Internal back camera";
+			break;
+		case properties::CameraLocationExternal:
+			name = "External camera";
+			const auto &model = props.get(properties::Model);
+			if (model)
+				name = " '" + *model + "'";
+			break;
+		}
 	}
 
 	name += " (" + camera->id() + ")";

base-commit: bb97f3bbd96a9d347e1b7f6cb68d94efaf8db574
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list