@@ -41,6 +41,10 @@ public:
{
return controller_->getGlobalMetadata();
}
+ const std::string &getTarget() const
+ {
+ return controller_->getTarget();
+ }
private:
Controller *controller_;
@@ -38,6 +38,7 @@ int Controller::read(char const *filename)
std::unique_ptr<YamlObject> root = YamlParser::parse(file);
double version = (*root)["version"].get<double>(1.0);
+ target_ = (*root)["target"].get<std::string>("bcm2835");
if (version < 2.0) {
LOG(RPiController, Warning)
@@ -142,3 +143,8 @@ Algorithm *Controller::getAlgorithm(std::string const &name) const
}
return nullptr;
}
+
+const std::string &Controller::getTarget() const
+{
+ return target_;
+}
@@ -46,6 +46,7 @@ public:
void process(StatisticsPtr stats, Metadata *imageMetadata);
Metadata &getGlobalMetadata();
Algorithm *getAlgorithm(std::string const &name) const;
+ const std::string &getTarget() const;
protected:
int createAlgorithm(const std::string &name, const libcamera::YamlObject ¶ms);
@@ -53,6 +54,9 @@ protected:
Metadata globalMetadata_;
std::vector<AlgorithmPtr> algorithms_;
bool switchModeCalled_;
+
+private:
+ std::string target_;
};
} /* namespace RPiController */
@@ -266,6 +266,14 @@ int IPARPi::init(const IPASettings &settings, bool lensPresent, IPAInitResult *r
return ret;
}
+ const std::string &target = controller_.getTarget();
+ if (target != "bcm2835") {
+ LOG(IPARPI, Error)
+ << "Tuning data file target returned \"" << target << "\""
+ << ", expected \"bcm2835\"";
+ return -EINVAL;
+ }
+
lensPresent_ = lensPresent;
controller_.initialise();