summaryrefslogtreecommitdiff
path: root/src/cam
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-11 01:09:09 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-19 14:23:32 +0300
commitf995ff25a3326db90513d1fa936815653f7cade0 (patch)
treed4362bac38bb83efbe7aa5d936e1d2b858854437 /src/cam
parent1c4d4801850559d6f919eef5c2ffbaf7675dbc46 (diff)
libcamera: controls: Avoid double lookups
Now that the ControlList::get() function returns an instance of std::optional<>, we can replace the ControlList::contains() calls with a nullopt check on the return value of get(). This avoids double lookups of controls through the code base. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'src/cam')
-rw-r--r--src/cam/main.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index d8115cd8..53c2ffde 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -300,8 +300,9 @@ std::string CamApp::cameraName(const Camera *camera)
* Construct the name from the camera location, model and ID. The model
* is only used if the location isn't present or is set to External.
*/
- if (props.contains(properties::Location)) {
- switch (*props.get(properties::Location)) {
+ const auto &location = props.get(properties::Location);
+ if (location) {
+ switch (*location) {
case properties::CameraLocationFront:
addModel = false;
name = "Internal front camera ";
@@ -316,12 +317,14 @@ std::string CamApp::cameraName(const Camera *camera)
}
}
- if (addModel && props.contains(properties::Model)) {
+ if (addModel) {
/*
* If the camera location is not availble use the camera model
* to build the camera name.
*/
- name = "'" + *props.get(properties::Model) + "' ";
+ const auto &model = props.get(properties::Model);
+ if (model)
+ name = "'" + *model + "' ";
}
name += "(" + camera->id() + ")";