diff options
Diffstat (limited to 'src/ipa/libipa/algorithms/af_algorithm.h')
-rw-r--r-- | src/ipa/libipa/algorithms/af_algorithm.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/ipa/libipa/algorithms/af_algorithm.h b/src/ipa/libipa/algorithms/af_algorithm.h new file mode 100644 index 00000000..2862042b --- /dev/null +++ b/src/ipa/libipa/algorithms/af_algorithm.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * Copyright (C) 2022, Raspberry Pi (Trading) Limited + * Copyright (C) 2022, Theobroma Systems + * + * af_algorithm.h - Autofocus control algorithm interface + */ +#pragma once + +#include <libcamera/control_ids.h> + +#include "../algorithm.h" + +namespace libcamera::ipa::common::algorithms { + +template<typename Module> +class AfAlgorithm : public Algorithm<Module> +{ +public: + AfAlgorithm() = default; + + virtual ~AfAlgorithm() {} + + virtual void setMode(controls::AfModeEnum mode) = 0; + + virtual void setRange(controls::AfRangeEnum range) = 0; + + virtual void setSpeed(controls::AfSpeedEnum speed) = 0; + + virtual void setMetering(controls::AfMeteringEnum metering) = 0; + + virtual void setWindows(Span<const Rectangle> windows) = 0; + + virtual void setTrigger(controls::AfTriggerEnum trigger) = 0; + + virtual void setPause(controls::AfPauseEnum pause) = 0; + + virtual void setLensPosition(float lensPosition) = 0; +}; + +} /* namespace libcamera::ipa::common::algorithms */ |