summaryrefslogtreecommitdiff
path: root/src/ipa/rpi/controller
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/rpi/controller')
-rw-r--r--src/ipa/rpi/controller/awb_algorithm.h1
-rw-r--r--src/ipa/rpi/controller/rpi/awb.cpp6
-rw-r--r--src/ipa/rpi/controller/rpi/awb.h1
3 files changed, 8 insertions, 0 deletions
diff --git a/src/ipa/rpi/controller/awb_algorithm.h b/src/ipa/rpi/controller/awb_algorithm.h
index 8462c4db..6009bdac 100644
--- a/src/ipa/rpi/controller/awb_algorithm.h
+++ b/src/ipa/rpi/controller/awb_algorithm.h
@@ -16,6 +16,7 @@ public:
AwbAlgorithm(Controller *controller) : Algorithm(controller) {}
/* An AWB algorithm must provide the following: */
virtual unsigned int getConvergenceFrames() const = 0;
+ virtual void initialValues(double &gainR, double &gainB) = 0;
virtual void setMode(std::string const &modeName) = 0;
virtual void setManualGains(double manualR, double manualB) = 0;
virtual void enableAuto() = 0;
diff --git a/src/ipa/rpi/controller/rpi/awb.cpp b/src/ipa/rpi/controller/rpi/awb.cpp
index 5ae0c2fa..dde5785a 100644
--- a/src/ipa/rpi/controller/rpi/awb.cpp
+++ b/src/ipa/rpi/controller/rpi/awb.cpp
@@ -220,6 +220,12 @@ void Awb::initialise()
asyncResults_ = syncResults_;
}
+void Awb::initialValues(double &gainR, double &gainB)
+{
+ gainR = syncResults_.gainR;
+ gainB = syncResults_.gainB;
+}
+
void Awb::disableAuto()
{
/* Freeze the most recent values, and treat them as manual gains */
diff --git a/src/ipa/rpi/controller/rpi/awb.h b/src/ipa/rpi/controller/rpi/awb.h
index e7d49cd8..cde6a62f 100644
--- a/src/ipa/rpi/controller/rpi/awb.h
+++ b/src/ipa/rpi/controller/rpi/awb.h
@@ -95,6 +95,7 @@ public:
void initialise() override;
int read(const libcamera::YamlObject &params) override;
unsigned int getConvergenceFrames() const override;
+ void initialValues(double &gainR, double &gainB) override;
void setMode(std::string const &name) override;
void setManualGains(double manualR, double manualB) override;
void enableAuto() override;