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

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Jul 19 14:38:43 CEST 2022


Quoting Laurent Pinchart (2022-07-19 13:26:04)
> 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 + "'";

I like that this saves double-lookups!
It's a shame we end up an extra level indented though.

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> +                       break;
> +               }
>         }
>  
>         name += " (" + camera->id() + ")";
> 
> base-commit: bb97f3bbd96a9d347e1b7f6cb68d94efaf8db574
> -- 
> Regards,
> 
> Laurent Pinchart
>


More information about the libcamera-devel mailing list