As part of the on-going refactor efforts for the source files in src/ipa/raspberrypi/, switch all C++ style comments to C style comments. 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>
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
/* SPDX-License-Identifier: BSD-2-Clause */
|
|
/*
|
|
* Copyright (C) 2019, Raspberry Pi (Trading) Limited
|
|
*
|
|
* algorithm.hpp - ISP control algorithm interface
|
|
*/
|
|
#pragma once
|
|
|
|
/*
|
|
* All algorithms should be derived from this class and made available to the
|
|
* Controller.
|
|
*/
|
|
|
|
#include <string>
|
|
#include <memory>
|
|
#include <map>
|
|
|
|
#include "controller.hpp"
|
|
|
|
#include <boost/property_tree/ptree.hpp>
|
|
|
|
namespace RPiController {
|
|
|
|
/* This defines the basic interface for all control algorithms. */
|
|
|
|
class Algorithm
|
|
{
|
|
public:
|
|
Algorithm(Controller *controller)
|
|
: controller_(controller), paused_(false)
|
|
{
|
|
}
|
|
virtual ~Algorithm() = default;
|
|
virtual char const *name() const = 0;
|
|
virtual bool isPaused() const { return paused_; }
|
|
virtual void pause() { paused_ = true; }
|
|
virtual void resume() { paused_ = false; }
|
|
virtual void read(boost::property_tree::ptree const ¶ms);
|
|
virtual void initialise();
|
|
virtual void switchMode(CameraMode const &cameraMode, Metadata *metadata);
|
|
virtual void prepare(Metadata *imageMetadata);
|
|
virtual void process(StatisticsPtr &stats, Metadata *imageMetadata);
|
|
Metadata &getGlobalMetadata() const
|
|
{
|
|
return controller_->getGlobalMetadata();
|
|
}
|
|
|
|
private:
|
|
Controller *controller_;
|
|
bool paused_;
|
|
};
|
|
|
|
/*
|
|
* This code is for automatic registration of Front End algorithms with the
|
|
* system.
|
|
*/
|
|
|
|
typedef Algorithm *(*AlgoCreateFunc)(Controller *controller);
|
|
struct RegisterAlgorithm {
|
|
RegisterAlgorithm(char const *name, AlgoCreateFunc createFunc);
|
|
};
|
|
std::map<std::string, AlgoCreateFunc> const &getAlgorithms();
|
|
|
|
} /* namespace RPiController */
|