[PATCH v1] apps: cam: Highlight default enumerator

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon Mar 17 19:56:16 CET 2025


Hi Barnabás

On Mon, Mar 17, 2025 at 07:11:41PM +0100, Barnabás Pőcze wrote:
> 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>

Seems like a nice idea

Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

Thanks
  j

> ---
>  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