[libcamera-devel] [PATCH v2 06/13] ipa: raspberry: Initialize ControlInfo with values list

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Oct 21 15:00:28 CEST 2020


Hi Jacopo,

On 20/10/2020 19:05, Jacopo Mondi wrote:
> Initialize the ControlInfoMap of controls supported by the Raspberry
> pipeline handler and IPA using the list of the enumerated values instead
> of specifying them manually.
> 

Nice!

Aside from the post-fix naming, which is probably just a matter of taste
and can be determined in the previous patch...

This really is powerful. Suddenly the ControlInfo actually becomes much
more strongly typed.

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

> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  include/libcamera/ipa/raspberrypi.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/include/libcamera/ipa/raspberrypi.h b/include/libcamera/ipa/raspberrypi.h
> index b23baf2f1330..414d757a06c6 100644
> --- a/include/libcamera/ipa/raspberrypi.h
> +++ b/include/libcamera/ipa/raspberrypi.h
> @@ -50,13 +50,13 @@ static const ControlInfoMap Controls = {
>  	{ &controls::AeEnable, ControlInfo(false, true) },
>  	{ &controls::ExposureTime, ControlInfo(0, 999999) },
>  	{ &controls::AnalogueGain, ControlInfo(1.0f, 32.0f) },
> -	{ &controls::AeMeteringMode, ControlInfo(0, static_cast<int32_t>(controls::MeteringModeMax)) },
> -	{ &controls::AeConstraintMode, ControlInfo(0, static_cast<int32_t>(controls::ConstraintModeMax)) },
> -	{ &controls::AeExposureMode, ControlInfo(0, static_cast<int32_t>(controls::ExposureModeMax)) },
> +	{ &controls::AeMeteringMode, ControlInfo(controls::AeMeteringModeList) },
> +	{ &controls::AeConstraintMode, ControlInfo(controls::AeConstraintModeList) },
> +	{ &controls::AeExposureMode, ControlInfo(controls::AeExposureModeList) },
>  	{ &controls::ExposureValue, ControlInfo(0.0f, 16.0f) },
>  	{ &controls::AwbEnable, ControlInfo(false, true) },
>  	{ &controls::ColourGains, ControlInfo(0.0f, 32.0f) },
> -	{ &controls::AwbMode, ControlInfo(0, static_cast<int32_t>(controls::AwbModeMax)) },
> +	{ &controls::AwbMode, ControlInfo(controls::AwbModeList) },
>  	{ &controls::Brightness, ControlInfo(-1.0f, 1.0f) },
>  	{ &controls::Contrast, ControlInfo(0.0f, 32.0f) },
>  	{ &controls::Saturation, ControlInfo(0.0f, 32.0f) },
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list