Files
external_libcamera/src/ipa/raspberrypi/controller/rpi/lux.h
T
Naushir Patuck f95bae418c raspberrypi: Update Copyright statement in all Raspberry Pi source files
s/Raspberry Pi (Trading) Limited/Raspberry Pi Ltd/ to reflect the new
Raspberry Pi entity name.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2022-07-27 18:12:15 +03:00

46 lines
1.1 KiB
C++

/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (C) 2019, Raspberry Pi Ltd
*
* lux.h - Lux control algorithm
*/
#pragma once
#include <mutex>
#include <libcamera/base/utils.h>
#include "../lux_status.h"
#include "../algorithm.h"
/* This is our implementation of the "lux control algorithm". */
namespace RPiController {
class Lux : public Algorithm
{
public:
Lux(Controller *controller);
char const *name() const override;
void read(boost::property_tree::ptree const &params) override;
void prepare(Metadata *imageMetadata) override;
void process(StatisticsPtr &stats, Metadata *imageMetadata) override;
void setCurrentAperture(double aperture);
private:
/*
* These values define the conditions of the reference image, against
* which we compare the new image.
*/
libcamera::utils::Duration referenceShutterSpeed_;
double referenceGain_;
double referenceAperture_; /* units of 1/f */
double referenceY_; /* out of 65536 */
double referenceLux_;
double currentAperture_;
LuxStatus status_;
std::mutex mutex_;
};
} /* namespace RPiController */