[PATCH v1] apps: cam: Highlight default enumerator

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Mar 17 22:43:08 CET 2025


Quoting Barnabás Pőcze (2025-03-17 18:11:41)
> Print "[default]" after the default enumerator when listing controls.
> 
> Example:
> 
>   $ cam -c 1 --list-controls
>   [...]
>   Control: [inout] libcamera::ExposureTimeMode:
>     - ExposureTimeModeAuto (0) [default]
>     - ExposureTimeModeManual (1)
> 
> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>

I like this!


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

> ---
>  src/apps/cam/camera_session.cpp | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp
> index 9e9348277..8a555339c 100644
> --- a/src/apps/cam/camera_session.cpp
> +++ b/src/apps/cam/camera_session.cpp
> @@ -8,6 +8,7 @@
>  #include <iomanip>
>  #include <iostream>
>  #include <limits.h>
> +#include <optional>
>  #include <sstream>
>  
>  #include <libcamera/control_ids.h>
> @@ -173,6 +174,11 @@ void CameraSession::listControls() const
>                         std::cout << "Control: " << io.str()
>                                   << id->vendor() << "::" << id->name() << ":"
>                                   << std::endl;
> +
> +                       std::optional<int32_t> def;
> +                       if (!info.def().isNone())
> +                               def = info.def().get<int32_t>();
> +
>                         for (const auto &value : info.values()) {
>                                 int32_t val = value.get<int32_t>();
>                                 const auto &it = id->enumerators().find(val);
> @@ -182,7 +188,10 @@ void CameraSession::listControls() const
>                                         std::cout << "UNKNOWN";
>                                 else
>                                         std::cout << it->second;
> -                               std::cout << " (" << val << ")" << std::endl;
> +
> +                               std::cout << " (" << val << ")"
> +                                         << (val == def ? " [default]" : "")
> +                                         << std::endl;
>                         }
>                 }
>  
> -- 
> 2.49.0
>


More information about the libcamera-devel mailing list