[libcamera-devel] [PATCH v2 1/3] cam: Do not assume Location is available

Jacopo Mondi jacopo at jmondi.org
Fri Mar 19 14:01:18 CET 2021


In preparation to register the Location property only if the firware
interface provides it, do not assume it is available and build the
camera name using the camera sensor model as a fallback.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/cam/main.cpp | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index e01be63a7058..c087cdd97332 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -379,18 +379,26 @@ std::string const CamApp::cameraName(const 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;
+	if (props.contains(properties::Location)) {
+		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;
+		}
+	} else if (props.contains(properties::Model)) {
+		/*
+		 * If the camera location is not availble use the camera model
+		 * to build the camera name.
+		 */
+		name = "'" + props.get(properties::Model) + "'";
 	}
 
 	name += " (" + camera->id() + ")";
-- 
2.30.0



More information about the libcamera-devel mailing list