[libcamera-devel] [PATCH v3 3/8] ipa: raspberrypi: Add an operator<< to struct DeviceStatus

David Plowman david.plowman at raspberrypi.com
Fri Jul 2 17:51:31 CEST 2021


Hi Naush

Thanks for this patch, it is indeed much tidier now.

On Fri, 2 Jul 2021 at 16:09, Naushir Patuck <naush at raspberrypi.com> wrote:
>
> Add an operator<< overload to log all fields in DeviceStatus, and remove the
> manual logging statements in the IPA and CamHelper.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

Reviewed-by: David Plowman <david.plowman at raspberrypi.com>

Thanks!
David

> ---
>  src/ipa/raspberrypi/cam_helper.cpp             |  5 +----
>  src/ipa/raspberrypi/controller/device_status.h | 15 +++++++++++++++
>  src/ipa/raspberrypi/raspberrypi.cpp            |  5 +----
>  3 files changed, 17 insertions(+), 8 deletions(-)
>
> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
> index e6d2258c66d7..1ec3f03e1aa3 100644
> --- a/src/ipa/raspberrypi/cam_helper.cpp
> +++ b/src/ipa/raspberrypi/cam_helper.cpp
> @@ -188,10 +188,7 @@ void CamHelper::parseEmbeddedData(Span<const uint8_t> buffer,
>         deviceStatus.shutter_speed = parsedDeviceStatus.shutter_speed;
>         deviceStatus.analogue_gain = parsedDeviceStatus.analogue_gain;
>
> -       LOG(IPARPI, Debug) << "Metadata updated - Exposure : "
> -                          << deviceStatus.shutter_speed
> -                          << " Gain : "
> -                          << deviceStatus.analogue_gain;
> +       LOG(IPARPI, Debug) << "Metadata updated - " << deviceStatus;
>
>         metadata.Set("device.status", deviceStatus);
>  }
> diff --git a/src/ipa/raspberrypi/controller/device_status.h b/src/ipa/raspberrypi/controller/device_status.h
> index 73df7ce228dd..e2511d19b96d 100644
> --- a/src/ipa/raspberrypi/controller/device_status.h
> +++ b/src/ipa/raspberrypi/controller/device_status.h
> @@ -6,6 +6,8 @@
>   */
>  #pragma once
>
> +#include <iostream>
> +
>  #include <libcamera/base/utils.h>
>
>  /*
> @@ -20,6 +22,19 @@ struct DeviceStatus {
>         {
>         }
>
> +       friend std::ostream &operator<<(std::ostream &out, const DeviceStatus &d)
> +       {
> +               using namespace libcamera; /* for the Duration operator<< overload */
> +
> +               out << "Exposure: " << d.shutter_speed
> +                   << " Gain: " << d.analogue_gain
> +                   << " Aperture: " << d.aperture
> +                   << " Lens: " << d.lens_position
> +                   << " Flash: " << d.flash_intensity;
> +
> +               return out;
> +       }
> +
>         /* time shutter is open */
>         libcamera::utils::Duration shutter_speed;
>         double analogue_gain;
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 4d09a84f6532..f51c970befb5 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -1019,10 +1019,7 @@ void IPARPi::fillDeviceStatus(const ControlList &sensorControls)
>         deviceStatus.shutter_speed = helper_->Exposure(exposureLines);
>         deviceStatus.analogue_gain = helper_->Gain(gainCode);
>
> -       LOG(IPARPI, Debug) << "Metadata - Exposure : "
> -                          << deviceStatus.shutter_speed
> -                          << " Gain : "
> -                          << deviceStatus.analogue_gain;
> +       LOG(IPARPI, Debug) << "Metadata - " << deviceStatus;
>
>         rpiMetadata_.Set("device.status", deviceStatus);
>  }
> --
> 2.25.1
>


More information about the libcamera-devel mailing list