summaryrefslogtreecommitdiff
path: root/src/ipa/raspberrypi/controller/rpi/agc.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-26 02:36:38 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-28 13:47:49 +0300
commitf357b1bf6ea39d8118e90f8a371974d29bd054e3 (patch)
tree2511c1b5e729844680a04239fb0a61df94a31f7f /src/ipa/raspberrypi/controller/rpi/agc.h
parent0c84c67e39e40db43605af0ee0a65b91114f6315 (diff)
ipa: raspberrypi: Return an error code from Algorithm::read()
When encountering errors, the Algorithm::read() function either uses LOG(Fatal) or throws exceptions from the boost property_tree functions. To prepare for replacing boost JSON parse with the YamlParser class, give the Algorithm::read() function the ability to return an error code, and propagate it all the way to the IPA module init() function. All algorithm classes return a hardcoded 0 value for now, subsequent commits will change that. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Tested-by: Naushir Patuck <naush@raspberrypi.com>
Diffstat (limited to 'src/ipa/raspberrypi/controller/rpi/agc.h')
-rw-r--r--src/ipa/raspberrypi/controller/rpi/agc.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ipa/raspberrypi/controller/rpi/agc.h b/src/ipa/raspberrypi/controller/rpi/agc.h
index f57afa6d..1351b0ee 100644
--- a/src/ipa/raspberrypi/controller/rpi/agc.h
+++ b/src/ipa/raspberrypi/controller/rpi/agc.h
@@ -28,13 +28,13 @@ namespace RPiController {
struct AgcMeteringMode {
double weights[AgcStatsSize];
- void read(boost::property_tree::ptree const &params);
+ int read(boost::property_tree::ptree const &params);
};
struct AgcExposureMode {
std::vector<libcamera::utils::Duration> shutter;
std::vector<double> gain;
- void read(boost::property_tree::ptree const &params);
+ int read(boost::property_tree::ptree const &params);
};
struct AgcConstraint {
@@ -43,13 +43,13 @@ struct AgcConstraint {
double qLo;
double qHi;
Pwl yTarget;
- void read(boost::property_tree::ptree const &params);
+ int read(boost::property_tree::ptree const &params);
};
typedef std::vector<AgcConstraint> AgcConstraintMode;
struct AgcConfig {
- void read(boost::property_tree::ptree const &params);
+ int read(boost::property_tree::ptree const &params);
std::map<std::string, AgcMeteringMode> meteringModes;
std::map<std::string, AgcExposureMode> exposureModes;
std::map<std::string, AgcConstraintMode> constraintModes;
@@ -74,7 +74,7 @@ class Agc : public AgcAlgorithm
public:
Agc(Controller *controller);
char const *name() const override;
- void read(boost::property_tree::ptree const &params) override;
+ int read(boost::property_tree::ptree const &params) override;
/* AGC handles "pausing" for itself. */
bool isPaused() const override;
void pause() override;