mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 07:19:45 +03:00
The Raspberry Pi IPA module depends on boost only to parse the JSON tuning data files. As libcamera depends on libyaml, use the YamlParser class to parse those files and drop the dependency on boost. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
45 lines
1.1 KiB
C++
45 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;
|
|
int read(const libcamera::YamlObject ¶ms) 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 */
|