[RFC PATCH v1] libcamera: controls: Generate macro for each control

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon Mar 17 19:54:09 CET 2025


Hi Barnabás

On Mon, Mar 17, 2025 at 07:11:46PM +0100, Barnabás Pőcze wrote:
> Generate a macro in the form of LIBCAMERA_HAS_$VENDOR_$MODE_$NAME
> for each control so that its existence can be checked easily
> and without extra version checks.
>
> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>

Do we really want this ? Applications should discover controls
programmatically.

Or is this useful for ABI compliance validation ?

> ---
>  include/libcamera/control_ids.h.in | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/include/libcamera/control_ids.h.in b/include/libcamera/control_ids.h.in
> index 5d0594c68..8f037589d 100644
> --- a/include/libcamera/control_ids.h.in
> +++ b/include/libcamera/control_ids.h.in
> @@ -49,6 +49,7 @@ extern const std::array<const ControlValue, {{ctrl.enum_values_count}}> {{ctrl.n
>  extern const std::map<std::string, {{ctrl.type}}> {{ctrl.name}}NameValueMap;
>  {% endif -%}
>  extern const Control<{{ctrl.type}}> {{ctrl.name}};
> +#define LIBCAMERA_HAS_{{vendor|upper}}_{{mode|upper}}_{{ctrl.name|snake_case|upper}}
>  {% endfor -%}
>
>  {% if vendor != 'libcamera' %}
> --
> 2.49.0
>


More information about the libcamera-devel mailing list