10#ifdef PEAK_AFL_DYNAMIC_LOADING
11# define PEAK_AFL_C_ABI_PREFIX peak::afl::dynamic::DynamicLoader::
13# define PEAK_AFL_C_ABI_PREFIX
18#include <peak_ipl/algorithm/peak_ipl_gain.hpp>
19#include <peak_ipl/types/peak_ipl_image.hpp>
20#include <peak/node_map/peak_node_map.hpp>
33#if __cplusplus >= 201703L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L))
34# define PEAK_AFL_NO_DISCARD [[nodiscard]]
35# define PEAK_AFL_MAYBE_UNUSED [[maybe_unused]]
38# define PEAK_AFL_NO_DISCARD _Check_return_
39# define PEAK_AFL_MAYBE_UNUSED
40# elif defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
41# define PEAK_AFL_NO_DISCARD __attribute__((warn_unused_result))
42# define PEAK_AFL_MAYBE_UNUSED __attribute__((unused))
44# define PEAK_AFL_NO_DISCARD
45# define PEAK_AFL_MAYBE_UNUSED
132 PEAK_COMMON_BEGIN_DISABLE_DEPRECATED_WARNINGS
133 Version_t() =
default;
134 Version_t(Version_t& other) =
default;
135 Version_t(Version_t&& other)
noexcept =
default;
136 Version_t& operator=(
const Version_t& other) =
default;
137 Version_t& operator=(Version_t&& other)
noexcept =
default;
139 Version_t(std::uint32_t maj, std::uint32_t min, std::uint32_t pat)
140 :
major(maj),
minor(min),
patch(pat), m_major(maj), m_minor(min), m_patch(pat) {}
145 PEAK_COMMON_DEPRECATED_MSG(
"Deprecated due to SemVer 2.0 migration. Use the 3-argument constructor instead.")
146 Version_t(std::uint32_t maj, std::uint32_t min, std::uint32_t submin, std::uint32_t pat)
149 PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS
154 PEAK_COMMON_DEPRECATED_MSG(
"Use Major() method instead.")
160 PEAK_COMMON_DEPRECATED_MSG(
"Use Minor() method instead.")
166 PEAK_COMMON_DEPRECATED_MSG(
"Deprecated due to SemVer 2.0 migration.")
172 PEAK_COMMON_DEPRECATED_MSG(
"Use Patch() method instead.")
181 return std::to_string(m_major) +
"." + std::to_string(m_minor) +
"." + std::to_string(m_patch);
189 PEAK_AFL_NO_DISCARD std::uint32_t
Major()
const
199 PEAK_AFL_NO_DISCARD std::uint32_t
Minor()
const
207 PEAK_COMMON_DEPRECATED_MSG(
"Deprecated due to SemVer 2.0 migration. Use Major(), Minor() and Patch() methods.")
210 PEAK_COMMON_BEGIN_DISABLE_DEPRECATED_WARNINGS
212 PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS
220 PEAK_AFL_NO_DISCARD std::uint32_t
Patch()
const
226 std::uint32_t m_major{};
227 std::uint32_t m_minor{};
228 std::uint32_t m_patch{};
339 return "PEAK_AFL_STATUS_SUCCESS";
342 return "PEAK_AFL_STATUS_ERROR";
345 return "PEAK_AFL_STATUS_NOT_INITIALIZED";
348 return "PEAK_AFL_STATUS_INVALID_PARAMETER";
351 return "PEAK_AFL_STATUS_ACCESS_DENIED";
354 return "PEAK_AFL_STATUS_BUSY";
357 return "PEAK_AFL_STATUS_BUFFER_TOO_SMALL";
360 return "PEAK_AFL_STATUS_INVALID_IMAGE_FORMAT";
363 return "PEAK_AFL_STATUS_NOT_SUPPORTED";
366 return "PEAK_AFL_STATUS_VALUE_ADJUSTED";
369 return "Unknown Status code";
382class InternalErrorException
389 , Exception(
string,
code)
395 , Exception(
string,
code)
406class NotInitializedException
413 , Exception(
string,
code)
419 , Exception(
string,
code)
433class InvalidParameterException
440 , Exception(
string,
code)
446 , Exception(
string,
code)
458class NotSupportedException
465 , Exception(
string,
code)
471 , Exception(
string,
code)
482class BusyException :
public Exception
487 , Exception(
string,
code)
492 , Exception(
string,
code)
505class InvalidImageFormatException :
public Exception
510 , Exception(
string,
code)
515 , Exception(
string,
code)
526class BadAccessException :
public Exception
531 , Exception(
string,
code)
536 , Exception(
string,
code)
546class BufferTooSmallException :
public Exception
551 , Exception(
string,
code)
556 , Exception(
string,
code)
566class CorruptedDataException :
public Exception
571 , Exception(
string,
code)
576 , Exception(
string,
code)
584class InvalidCastException
591 , Exception(
string,
code)
597 , Exception(
string,
code)
721 inline explicit Manager(
const std::shared_ptr<peak::core::NodeMap>& node_map);
746 inline void AddController(
const std::shared_ptr<Controller>& controller);
760 inline void RemoveController(
const std::shared_ptr<Controller>& controller);
773 inline void Process(
const peak::ipl::Image& image)
const;
822 inline void SetGainIPL(
const peak::ipl::Gain& gain);
844 inline void SetCCM(std::array<float, 9> ccm);
857 PEAK_AFL_NO_DISCARD
inline bool Status()
const;
866 PEAK_AFL_NO_DISCARD
inline std::vector<std::shared_ptr<Controller>>
ControllerList()
const;
902 std::vector<std::shared_ptr<Controller>> m_controllerList;
903 mutable std::mutex m_mutex{};
916template <
typename... ControllerTypes>
918 const std::shared_ptr<peak::core::NodeMap>& node_map, ControllerTypes... types)
920 constexpr int size =
sizeof...(types);
921 constexpr std::array<peak_afl_controllerType, size> controller_types{ types... };
922 std::vector<std::shared_ptr<Controller>> controller{};
924 controller.reserve(size);
926 std::for_each(controller_types.cbegin(), controller_types.cend(),
927 [&manager, &controller](
peak_afl_controllerType type) { controller.emplace_back(manager.CreateController(type)); });
929 return { std::move(manager), std::move(controller) };
940template <typename T, typename std::enable_if_t<std::is_arithmetic<T>::value,
int> = 0>
950using FinishedCallback = std::function<void(
void)>;
951using DataProcessingCallback = std::function<void(
int,
int)>;
953using ComponentCallback = std::function<void(
void)>;
956using UnRegisterFunction = std::function<void()>;
1035class Controller :
public std::enable_shared_from_this<Controller>
1037 friend class Manager;
1044 template <
typename R,
typename... Args>
1045 Callback(
const std::shared_ptr<peak::afl::Controller>& controller, callback::RegisterFunction register_function,
1046 callback::UnRegisterFunction unregister_function, std::function<R(Args...)> callback)
1047 : m_unregister_function(std::move(unregister_function))
1048 , m_callback(std::move(callback))
1050 const auto ret = register_function(
reinterpret_cast<void*
>(&Callback::Func<Args...>),
this);
1053 error::ThrowException(ret);
1055 m_controller = controller;
1060 if (
auto controller = m_controller.lock())
1062 m_unregister_function();
1067 template <
typename... Args>
1068 static void Func(Args... args,
void* ptr)
1070 static_cast<Callback*
>(ptr)->m_callback(args...);
1074 std::weak_ptr<peak::afl::Controller> m_controller{};
1075 callback::UnRegisterFunction m_unregister_function{};
1090 : m_handle(handle) {};
1098 Controller(
const Controller&) =
delete;
1099 Controller(Controller&&) =
delete;
1100 Controller& operator=(
const Controller&) =
delete;
1101 Controller& operator=(Controller&&) =
delete;
1151 PEAK_AFL_NO_DISCARD
inline std::uint32_t
GetSkipFrames()
const;
1339 PEAK_AFL_NO_DISCARD
inline std::tuple<std::uint8_t, std::uint8_t, std::uint8_t>
GetLastAutoAverages()
const;
1377 PEAK_AFL_NO_DISCARD
inline std::uint32_t
GetAutoTarget()
const;
1557 PEAK_AFL_NO_DISCARD
inline std::vector<peak_afl_controller_algorithm>
GetAlgorithmList()
const;
1712 inline void SetWeightedROIs(
const std::vector<peak_afl_weighted_rectangle>& list);
1747 PEAK_AFL_NO_DISCARD
inline std::vector<peak_afl_weighted_rectangle>
GetWeightedROIs()
const;
1832 PEAK_AFL_NO_DISCARD
inline std::uint8_t
GetHysteresis()
const;
2167 using FinishedCallbackType = Callback<callback::FinishedCallback>;
2168 using DataProcessingCallbackType = Callback<callback::DataProcessingCallback>;
2169 using ProcessingCallbackType = Callback<callback::ProcessingCallback>;
2170 using ComponentCallbackType = Callback<callback::ComponentCallback>;
2173 std::unique_ptr<FinishedCallbackType> m_finishedCallback{};
2174 std::unique_ptr<DataProcessingCallbackType> m_dataProcessingCallback{};
2175 std::unique_ptr<ProcessingCallbackType> m_ProcessingCallback{};
2176 std::unique_ptr<ComponentCallbackType> m_finishedExposureCallback{};
2178 std::unique_ptr<ComponentCallbackType> m_finishedGainCallback{};
2180 std::unique_ptr<ComponentCallbackType> m_AnalogGainCallback{};
2181 std::unique_ptr<ComponentCallbackType> m_DigitalGainCallback{};
2182 std::unique_ptr<ComponentCallbackType> m_CombinedGainCallback{};
2183 std::unique_ptr<ComponentCallbackType> m_HostGainCallback{};
2194 error::ThrowException(ret,
false);
2203 error::ThrowException(ret,
false);
2213 const auto ret = PEAK_AFL_C_ABI_PREFIX
peak_afl_GetVersion(&major, &minor, &patch,
nullptr);
2216 error::ThrowException(ret,
false);
2224 std::size_t lastErrorMessageSize;
2230 return "Cannot get last error!";
2233 std::vector<char> text;
2234 text.resize(lastErrorMessageSize);
2239 return "Cannot get last error!";
2242 return { text.begin(), text.end() };
2248 if (node_map ==
nullptr)
2256 error::ThrowException(ret);
2262 if (m_handle !=
nullptr)
2267 std::lock_guard<std::mutex> lck(m_mutex);
2268 for (
auto& c : m_controllerList)
2270 c->m_handle =
nullptr;
2281 m_handle = other.m_handle;
2282 other.m_handle =
nullptr;
2284 std::lock_guard<std::mutex> lck(other.m_mutex);
2285 m_controllerList = std::move(other.m_controllerList);
2288inline Manager& Manager::operator=(Manager&& other)
noexcept
2290 m_handle = other.m_handle;
2291 other.m_handle =
nullptr;
2293 std::lock_guard<std::mutex> lck(other.m_mutex);
2294 m_controllerList = std::move(other.m_controllerList);
2301 std::lock_guard<std::mutex> lck(m_mutex);
2303 auto cnt = std::any_of(
2304 m_controllerList.begin(), m_controllerList.end(), [controller](
const std::shared_ptr<Controller>& c) { return c == controller; });
2314 error::ThrowException(ret);
2317 m_controllerList.emplace_back(controller);
2322 std::lock_guard<std::mutex> lck(m_mutex);
2327 error::ThrowException(ret);
2330 auto it = std::remove_if(
2331 m_controllerList.begin(), m_controllerList.end(), [controller](
const std::shared_ptr<Controller>& c) { return c == controller; });
2333 m_controllerList.erase(it, m_controllerList.end());
2341 error::ThrowException(ret);
2347 std::lock_guard<std::mutex> lck(m_mutex);
2353 error::ThrowException(ret);
2356 auto shared = std::shared_ptr<Controller>(
new Controller(handle));
2357 m_controllerList.emplace_back(shared);
2364 std::lock_guard<std::mutex> lck(m_mutex);
2369 error::ThrowException(ret);
2372 for (
auto& c : m_controllerList)
2374 c->m_handle =
nullptr;
2377 m_controllerList.clear();
2382 std::lock_guard<std::mutex> lck(m_mutex);
2387 error::ThrowException(ret);
2390 auto it = std::remove_if(
2391 m_controllerList.begin(), m_controllerList.end(), [controller](
const std::shared_ptr<Controller>& c) { return c == controller; });
2393 m_controllerList.erase(it, m_controllerList.end());
2395 controller->m_handle =
nullptr;
2403 error::ThrowException(ret);
2412 error::ThrowException(ret);
2418 std::uint8_t status;
2422 error::ThrowException(ret);
2430 std::lock_guard<std::mutex> lck(m_mutex);
2432 std::vector<std::shared_ptr<Controller>> controller{};
2434 std::copy(m_controllerList.begin(), m_controllerList.end(), std::back_inserter(controller));
2441 return m_controllerList.size();
2446 std::lock_guard<std::mutex> lck(m_mutex);
2448 auto it = std::find_if(m_controllerList.cbegin(), m_controllerList.cend(),
2449 [=](
const std::shared_ptr<Controller>& controller) { return type == controller->Type(); });
2451 if (it != m_controllerList.cend())
2467 error::ThrowException(ret);
2480 error::ThrowException(ret);
2483 return std::shared_ptr<Controller>(
new Controller(handle));
2488 if (m_handle !=
nullptr)
2501 error::ThrowException(ret);
2512 error::ThrowException(ret);
2518 std::uint32_t count{};
2522 error::ThrowException(ret);
2534 error::ThrowException(ret);
2546 error::ThrowException(ret);
2557 error::ThrowException(ret);
2567 error::ThrowException(ret);
2578 error::ThrowException(ret);
2589 error::ThrowException(ret);
2599 error::ThrowException(ret);
2610 error::ThrowException(ret);
2620 error::ThrowException(ret);
2631 error::ThrowException(ret);
2642 error::ThrowException(ret);
2652 error::ThrowException(ret);
2663 error::ThrowException(ret);
2671 std::uint8_t average{};
2675 error::ThrowException(ret);
2682 std::uint8_t averageRed{}, averageGreen{}, averageBlue{};
2686 error::ThrowException(ret);
2688 return { averageRed, averageGreen, averageBlue };
2697 error::ThrowException(ret);
2708 error::ThrowException(ret);
2714 std::uint32_t target{};
2718 error::ThrowException(ret);
2729 error::ThrowException(ret);
2740 error::ThrowException(ret);
2751 error::ThrowException(ret);
2757 std::uint32_t tolerance;
2761 error::ThrowException(ret);
2772 error::ThrowException(ret);
2783 error::ThrowException(ret);
2794 error::ThrowException(ret);
2804 error::ThrowException(ret);
2815 error::ThrowException(ret);
2826 error::ThrowException(ret);
2837 error::ThrowException(ret);
2848 error::ThrowException(ret);
2858 error::ThrowException(ret);
2866 std::vector<peak_afl_controller_algorithm> algList{};
2867 std::uint32_t listSize{};
2872 error::ThrowException(ret);
2875 algList.resize(listSize);
2880 error::ThrowException(ret);
2892 error::ThrowException(ret);
2903 error::ThrowException(ret);
2913 error::ThrowException(ret);
2921 std::vector<peak_afl_controller_sharpness_algorithm> algList{};
2922 std::uint32_t listSize{};
2927 error::ThrowException(ret);
2930 algList.resize(listSize);
2935 error::ThrowException(ret);
2943 m_finishedCallback = std::make_unique<FinishedCallbackType>(
2945 [handle = m_handle](
void* ptr,
void* ctx) {
2948 [handle = m_handle] {
2957 m_finishedCallback.reset();
2969 return std::make_unique<ComponentCallbackType>(
2971 [handle = m_handle, component](
void* ptr,
void* ctx) {
2975 [handle = m_handle, component] {
2982 PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS
2985 m_finishedExposureCallback = registerCallback(component);
2989 m_finishedGainCallback = registerCallback(component);
2993 m_AnalogGainCallback = registerCallback(component);
2997 m_DigitalGainCallback = registerCallback(component);
3001 m_CombinedGainCallback = registerCallback(component);
3005 m_HostGainCallback = registerCallback(component);
3011 PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS
3016 PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS
3019 m_finishedExposureCallback.reset();
3023 m_finishedGainCallback.reset();
3027 m_AnalogGainCallback.reset();
3031 m_DigitalGainCallback.reset();
3035 m_CombinedGainCallback.reset();
3039 m_HostGainCallback.reset();
3045 PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS
3050 PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS
3051 m_dataProcessingCallback = std::make_unique<DataProcessingCallbackType>(
3053 [handle = m_handle](
void* ptr,
void* ctx) {
3057 [handle = m_handle] {
3062 PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS
3067 m_ProcessingCallback = std::make_unique<ProcessingCallbackType>(
3069 [handle = m_handle](
void* ptr,
void* ctx) {
3073 [handle = m_handle] {
3082 m_ProcessingCallback.reset();
3087 m_dataProcessingCallback.reset();
3096 error::ThrowException(ret);
3105 m_handle, list.data(),
static_cast<uint32_t
>(list.size()));
3108 error::ThrowException(ret);
3117 error::ThrowException(ret);
3127 error::ThrowException(ret);
3134 std::vector<peak_afl_weighted_rectangle> list;
3135 std::uint32_t listSize{};
3140 error::ThrowException(ret);
3143 list.resize(listSize);
3148 error::ThrowException(ret);
3160 error::ThrowException(ret);
3171 error::ThrowException(ret);
3181 error::ThrowException(ret);
3192 error::ThrowException(ret);
3203 error::ThrowException(ret);
3214 error::ThrowException(ret);
3220 std::uint8_t hysteresis{};
3224 error::ThrowException(ret);
3232 std::uint8_t hysteresis{};
3236 error::ThrowException(ret);
3246 m_handle, &hysteresis.min, &hysteresis.max, &hysteresis.inc);
3249 error::ThrowException(ret);
3261 error::ThrowException(ret);
3274 error::ThrowException(ret);
3286 error::ThrowException(ret);
3297 error::ThrowException(ret);
3309 error::ThrowException(ret);
3320 error::ThrowException(ret);
3335 error::ThrowException(ret);
3345 error::ThrowException(ret);
3357 error::ThrowException(ret);
3372 error::ThrowException(ret);
3382 error::ThrowException(ret);
3394 error::ThrowException(ret);
3409 error::ThrowException(ret);
3419 error::ThrowException(ret);
3431 error::ThrowException(ret);
3446 error::ThrowException(ret);
3456 error::ThrowException(ret);
3468 error::ThrowException(ret);
3483 error::ThrowException(ret);
3493 error::ThrowException(ret);
3505 error::ThrowException(ret);
3516 error::ThrowException(ret);
3526 error::ThrowException(ret);
3538 error::ThrowException(ret);
High-level interface for automatic camera feature control, providing access to algorithms such as aut...
Definition peak_afl.hpp:1036
peak_afl_controllerType Type() const
Get the controller type.
Definition peak_afl.hpp:2820
void SetROIPreset(peak_afl_roi_preset preset)
Set the autofeature region of interest preset for a controller.
Definition peak_afl.hpp:2584
void SetBrightnessAlgorithm(peak_afl_controller_brightness_algorithm algorithm)
Set the autofeature brightness algorithm for a controller.
Definition peak_afl.hpp:2637
bool IsAutoPercentileSupported() const
check if auto percentile is supported for a controller.
Definition peak_afl.hpp:2777
bool IsAutoToleranceSupported() const
check if auto tolerance is supported for a controller.
Definition peak_afl.hpp:2734
peak_afl_double_limit GetGainLimit() const
Get autofeature gain limit for a controller.
Definition peak_afl.hpp:3339
void SetGainLimit(peak_afl_double_limit limit)
Set the gain limit for a controller.
Definition peak_afl.hpp:3326
std::uint8_t GetDefaultHysteresis() const
Get the autofeature hysteresis default.
Definition peak_afl.hpp:3230
std::uint8_t GetHysteresis() const
Get the autofeature hysteresis for a controller.
Definition peak_afl.hpp:3218
void SetGainCombinedLimit(peak_afl_double_limit limit)
Set the combined gain limit for a controller.
Definition peak_afl.hpp:3437
void SetMode(peak_afl_controller_automode mode)
Set the autofeature mode for a controller.
Definition peak_afl.hpp:2605
bool IsROISupported() const
Check if setting a region of interest is supported for a controller.
Definition peak_afl.hpp:2540
void SetGainHostLimit(peak_afl_double_limit limit)
Set the host gain limit for a controller.
Definition peak_afl.hpp:3474
void SetWeightedROIs(const std::vector< peak_afl_weighted_rectangle > &list)
Set the autofeature weighted region of interest for a controller.
Definition peak_afl.hpp:3102
void UnRegisterFinishedCallback()
Reset the finished callback for a controller.
Definition peak_afl.hpp:2955
peak_afl_double_limit GetGainDigitalLimit() const
Get autofeature digital gain limit for a controller.
Definition peak_afl.hpp:3413
peak_afl_controller_automode BrightnessComponentGetMode(peak_afl_controller_brightness_component component) const
Get the current autofeature mode for a brightness controller component.
Definition peak_afl.hpp:3290
Range< std::uint32_t > GetSkipFramesRange() const
Get range for frames skipped for a controller.
Definition peak_afl.hpp:2528
bool IsROIPresetSupported() const
Check if ROI preset is supported for a controller.
Definition peak_afl.hpp:2572
void BrightnessComponentSetMode(peak_afl_controller_brightness_component component, peak_afl_controller_automode mode)
Set the autofeature mode for a brightness controller component.
Definition peak_afl.hpp:3280
std::uint8_t GetLastAutoAverage() const
Get the last auto average for a controller.
Definition peak_afl.hpp:2669
peak_afl_controller_limit GetLimit() const
Get the autofeature limit for a controller.
Definition peak_afl.hpp:3175
void SetHysteresis(std::uint8_t hysteresis)
Set the autofeature hysteresis for a controller.
Definition peak_afl.hpp:3209
void SetExposureLimit(peak_afl_double_limit limit)
Set the exposure limit for a controller.
Definition peak_afl.hpp:3511
void SetSkipFrames(std::uint32_t count)
Set number of frames skipped for a controller.
Definition peak_afl.hpp:2507
std::vector< peak_afl_controller_sharpness_algorithm > GetSharpnessAlgorithmList() const
Get the list of supported sharpness algorithms for a controller.
Definition peak_afl.hpp:2919
bool IsModeSupported() const
Check if auto mode is supported for a controller.
Definition peak_afl.hpp:2593
Range< std::uint32_t > GetAutoToleranceRange() const
Get the auto tolerance range for a controller.
Definition peak_afl.hpp:2766
void SetGainAnalogLimit(peak_afl_double_limit limit)
Set the analog gain limit for a controller.
Definition peak_afl.hpp:3363
void SetAutoPercentile(double percentile)
Set the auto percentile for a controller.
Definition peak_afl.hpp:2789
void UnRegisterProcessingCallback()
Reset the data callback for a controller.
Definition peak_afl.hpp:3080
peak_afl_rectangle GetROI() const
Get the autofeature region of interest for a controller.
Definition peak_afl.hpp:2561
peak_afl_double_limit GetExposureLimit() const
Get autofeature exposure limit for a controller.
Definition peak_afl.hpp:3520
void UnRegisterDataProcessingCallback()
Reset the data callback for a controller.
Definition peak_afl.hpp:3085
peak_afl_double_limit GetGainCombinedLimitRange() const
Get autofeature combined gain limit range for a controller.
Definition peak_afl.hpp:3462
std::vector< peak_afl_controller_algorithm > GetAlgorithmList() const
Get the list of supported algorithms for a controller.
Definition peak_afl.hpp:2864
~Controller()
Definition peak_afl.hpp:2486
void RegisterDataProcessingCallback(const callback::DataProcessingCallback &callback)
Set the data callback for a controller.
Definition peak_afl.hpp:3048
bool IsSharpnessAlgorithmSupported() const
check setting a sharpness algorithm is supported by a controller.
Definition peak_afl.hpp:2886
void UnRegisterComponentCallback(peak_afl_controller_brightness_component component)
Reset the component callback for a controller.
Definition peak_afl.hpp:3014
std::tuple< std::uint8_t, std::uint8_t, std::uint8_t > GetLastAutoAverages() const
Get the last auto average for a controller.
Definition peak_afl.hpp:2680
std::uint32_t GetAutoTolerance() const
Get the current auto tolerance for a controller.
Definition peak_afl.hpp:2755
void SetAlgorithm(peak_afl_controller_algorithm algorithm)
Set the used algorithm for a controller.
Definition peak_afl.hpp:2843
peak_afl_double_limit GetGainDigitalLimitRange() const
Get autofeature digital gain limit range for a controller.
Definition peak_afl.hpp:3425
void SetROI(peak_afl_rectangle rect)
Set the autofeature region of interest for a controller.
Definition peak_afl.hpp:2552
peak_afl_double_limit GetGainAnalogLimitRange() const
Get autofeature analog gain limit range for a controller.
Definition peak_afl.hpp:3388
bool IsSkipFramesSupported() const
Check if skip frames is supported for a controller.
Definition peak_afl.hpp:2495
peak_afl_controller_limit GetDefaultLimit() const
Get the autofeature default limit.
Definition peak_afl.hpp:3186
bool IsLimitSupported() const
Check if limit is supported for a controller.
Definition peak_afl.hpp:3154
peak_afl_size GetWeightedROIMinSize() const
Get the autofeature minimum size of weighted region of interest for a controller.
Definition peak_afl.hpp:3121
peak_afl_controller_automode GetMode() const
Get the current autofeature mode for a controller.
Definition peak_afl.hpp:2614
static std::shared_ptr< Controller > Create(peak_afl_controllerType type)
Create a new controller.
Definition peak_afl.hpp:2474
void RegisterFinishedCallback(const callback::FinishedCallback &callback)
Set finished callback for a controller.
Definition peak_afl.hpp:2941
peak_afl_controller_algorithm GetAlgorithm() const
Get the used algorithm for a controller.
Definition peak_afl.hpp:2852
bool IsBrightnessAlgorithmSupported() const
Check if auto brightness algorithm is supported for a controller.
Definition peak_afl.hpp:2625
peak_afl_double_limit GetGainCombinedLimit() const
Get autofeature combined gain limit for a controller.
Definition peak_afl.hpp:3450
bool IsGainLimitSupported() const
Check if auto gain limit is supported for a controller.
Definition peak_afl.hpp:3314
peak_afl_double_limit GetGainLimitRange() const
Get autofeature gain limit range for a controller.
Definition peak_afl.hpp:3351
void SetWeightedROI(const peak_afl_weighted_rectangle &rect)
Set single autofeature weighted region of interest for a controller.
Definition peak_afl.hpp:3112
std::uint32_t GetSkipFrames() const
Get number of frames skipped for a controller.
Definition peak_afl.hpp:2516
peak_afl_controller_sharpness_algorithm GetSharpnessAlgorithm() const
Get the used sharpness algorithm for a controller.
Definition peak_afl.hpp:2907
peak_afl_controller_status Status() const
Get the status for a controller.
Definition peak_afl.hpp:2657
void SetGainDigitalLimit(peak_afl_double_limit limit)
Set the digital gain limit for a controller.
Definition peak_afl.hpp:3400
bool IsAlgorithmSupported() const
check if setting an algorithm is supported for a controller.
Definition peak_afl.hpp:2831
Range< double > GetAutoPercentileRange() const
Get the auto percentile range for a controller.
Definition peak_afl.hpp:2809
peak_afl_double_limit GetExposureLimitRange() const
Get autofeature exposure limit range for a controller.
Definition peak_afl.hpp:3532
double GetAutoPercentile() const
Get the auto percentile for a controller.
Definition peak_afl.hpp:2798
peak_afl_controller_brightness_algorithm GetBrightnessAlgorithm() const
Get the current autofeature brightness algorithm for a controller.
Definition peak_afl.hpp:2646
peak_afl_double_limit GetGainAnalogLimit() const
Get autofeature analog gain limit for a controller.
Definition peak_afl.hpp:3376
void SetAutoTarget(uint32_t target)
Set the auto target for a controller.
Definition peak_afl.hpp:2703
peak_afl_double_limit GetGainHostLimit() const
Get autofeature host gain limit for a controller.
Definition peak_afl.hpp:3487
void SetAutoTolerance(std::uint32_t tolerance)
Set the auto tolerance for a controller.
Definition peak_afl.hpp:2746
std::uint32_t GetAutoTarget() const
Get the currently set auto target for a controller.
Definition peak_afl.hpp:2712
Range< std::uint32_t > GetAutoTargetRange() const
Get the auto target range for a controller.
Definition peak_afl.hpp:2723
Range< std::uint8_t > GetHysteresisRange() const
Get autofeature hysteresis range for a controller.
Definition peak_afl.hpp:3242
void SetLimit(peak_afl_controller_limit limit)
Set the autofeature limit for a controller.
Definition peak_afl.hpp:3166
bool IsWeightedROISupported() const
Check if weighted region of interest is supported for a controller.
Definition peak_afl.hpp:3090
bool IsHysteresisSupported() const
Check if hysteresis is supported for a controller.
Definition peak_afl.hpp:3197
void RegisterComponentCallback(peak_afl_controller_brightness_component component, const callback::FinishedCallback &callback)
Set component callback for a controller.
Definition peak_afl.hpp:2960
bool IsBrightnessComponentModeSupported() const
Check if auto mode is supported for a brightness controller component.
Definition peak_afl.hpp:3255
peak_afl_controller_status BrightnessComponentStatus(peak_afl_controller_brightness_component component) const
Get the status for a brightness controller component.
Definition peak_afl.hpp:3302
void SetSharpnessAlgorithm(peak_afl_controller_sharpness_algorithm algorithm)
Set the used sharpness algorithm for a controller.
Definition peak_afl.hpp:2898
void RegisterProcessingCallback(const callback::ProcessingCallback &callback)
Set the data callback for a controller.
Definition peak_afl.hpp:3065
peak_afl_double_limit GetGainHostLimitRange() const
Get autofeature host gain limit range for a controller.
Definition peak_afl.hpp:3499
bool IsAutoTargetSupported() const
check if auto target is supported for a controller.
Definition peak_afl.hpp:2691
std::vector< peak_afl_weighted_rectangle > GetWeightedROIs() const
Get the autofeature weighted region of interest for a controller.
Definition peak_afl.hpp:3132
bool IsBrightnessComponentUnitSupported(peak_afl_controller_brightness_component component) const
Check if a specific unit is supported for a brightness controller component.
Definition peak_afl.hpp:3267
Central coordination object for automatic camera feature control.
Definition peak_afl.hpp:708
bool IsControllerSupported(peak_afl_controllerType type) const
Get if the given controller type is supported.
Definition peak_afl.hpp:2461
Manager(const std::shared_ptr< peak::core::NodeMap > &node_map)
Create an automanager instance.
Definition peak_afl.hpp:2246
void RemoveController(const std::shared_ptr< Controller > &controller)
Remove a controller from an automanager.
Definition peak_afl.hpp:2320
std::shared_ptr< Controller > GetController(peak_afl_controllerType type) const
Get the controller for a type.
Definition peak_afl.hpp:2444
void DestroyAllController()
Destroy all controllers for a manager.
Definition peak_afl.hpp:2362
void DestroyController(const std::shared_ptr< Controller > &controller)
Destroy a controller.
Definition peak_afl.hpp:2380
std::shared_ptr< Controller > CreateController(peak_afl_controllerType type)
Create a controller and append it to Manager.
Definition peak_afl.hpp:2345
void SetCCM(std::array< float, 9 > ccm)
Set the Color Correction Matrix (CCM)
Definition peak_afl.hpp:2407
size_t ControllerCount() const
Get the list count of the controller associated with the manager.
Definition peak_afl.hpp:2439
bool Status() const
Get the status of a manager.
Definition peak_afl.hpp:2416
~Manager()
Destructor of an automanager instance.
Definition peak_afl.hpp:2260
void SetGainIPL(const peak::ipl::Gain &gain)
Sets the ipl gain.
Definition peak_afl.hpp:2398
std::vector< std::shared_ptr< Controller > > ControllerList() const
Get the list of the controller associated with the manager.
Definition peak_afl.hpp:2428
void AddController(const std::shared_ptr< Controller > &controller)
Add a controller to an automanager.
Definition peak_afl.hpp:2299
void Process(const peak::ipl::Image &image) const
Process an image.
Definition peak_afl.hpp:2336
The exception thrown for signaling an access error.
Definition peak_afl.hpp:527
The exception thrown when the supplied buffer is too small.
Definition peak_afl.hpp:547
The exception thrown for signaling a busy operation.
Definition peak_afl.hpp:483
static std::string translateCode(peak_afl_status status)
Get a string representation for an error code.
Definition peak_afl.hpp:334
peak_afl_status code() const
Get the return code for the failure.
Definition peak_afl.hpp:320
The exception thrown for signaling an unspecified error.
Definition peak_afl.hpp:385
The exception thrown for passing an invalid parameter to a function.
Definition peak_afl.hpp:436
The exception thrown for signaling that the library was not initialized.
Definition peak_afl.hpp:409
The exception thrown when a functionality is not supported.
Definition peak_afl.hpp:461
Base class for all exceptions thrown by the library.
Definition peak_common_exceptions.hpp:31
Thrown when an unexpected internal error occurs.
Definition peak_common_exceptions.hpp:77
Thrown when a cast to an incompatible type is attempted.
Definition peak_common_exceptions.hpp:88
Thrown when a function receives an invalid parameter.
Definition peak_common_exceptions.hpp:53
Thrown when the library is used before proper initialization.
Definition peak_common_exceptions.hpp:101
Thrown when an unsupported operation or feature is used.
Definition peak_common_exceptions.hpp:153
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_GetRange(peak_afl_controller_handle controller, double *min, double *max, double *inc)
Get the auto percentile range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if auto percentile is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Set(peak_afl_controller_handle controller, double percentile)
Set the auto percentile for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Get(peak_afl_controller_handle controller, double *percentile)
Get the auto percentile for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_GetRange(peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc)
Get the auto target range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if auto target is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_Get(peak_afl_controller_handle controller, uint32_t *target)
Get the currently set auto target for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_Set(peak_afl_controller_handle controller, uint32_t target)
Set the auto target for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Set(peak_afl_controller_handle controller, uint32_t tolerance)
Set the auto tolerance for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if auto tolerance is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_GetRange(peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc)
Get the auto tolerance range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Get(peak_afl_controller_handle controller, uint32_t *tolerance)
Get the current auto tolerance for a controller.
peak_afl_controllerType
Auto feature controller types.
Definition peak_afl.h:486
PEAK_AFL_API_STATUS peak_afl_AutoController_Status(peak_afl_controller_handle controller, peak_afl_controller_status *status)
Get the status for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Create(peak_afl_controller_handle *controller, peak_afl_controllerType controllerType)
Create a new auto feature controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Type_Get(peak_afl_controller_handle controller, peak_afl_controllerType *type)
Get the controller type.
PEAK_AFL_API_STATUS peak_afl_AutoController_Destroy(peak_afl_controller_handle controller)
Destroy a standalone controller.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Create(peak_afl_manager_handle *handle, PEAK_NODE_MAP_HANDLE nodeMapHandle)
Create an automanager instance.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_CreateController(peak_afl_manager_handle handle, peak_afl_controller_handle *controller, peak_afl_controllerType controllerType)
Create a controller and append it to Manager.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_AddController(peak_afl_manager_handle handle, peak_afl_controller_handle controller)
Add a controller to an auto manager instance.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Process(peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle)
Process an image through the auto feature pipeline.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_DestroyController(peak_afl_manager_handle handle, peak_afl_controller_handle controller)
Destroy a controller from a manager.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Status(peak_afl_manager_handle handle, peak_afl_BOOL8 *running)
Get the processing status of an auto feature manager.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Destroy(peak_afl_manager_handle handle)
Destroy an automanager instance.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_DestroyAllController(peak_afl_manager_handle handle)
Destroy all controllers associated with a manager.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Controller_IsSupported(peak_afl_manager_handle handle, peak_afl_controllerType controllerType, peak_afl_BOOL8 *supported)
Check if a controller type is supported by the manager.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetGainIPL(peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle)
Set the IPL Gain for image processing.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_RemoveController(peak_afl_manager_handle handle, peak_afl_controller_handle controller)
Remove a controller from an auto feature manager instance.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetCCM(peak_afl_manager_handle handle, float *ccm, size_t ccmSize)
Set the Color Correction Matrix (CCM)
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessAlgorithm_Set(peak_afl_controller_handle controller, peak_afl_controller_brightness_algorithm algorithm)
Set the brightness analysis algorithm for a controller.
peak_afl_controller_brightness_algorithm
Brightness calculation algorithms.
Definition peak_afl.h:769
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessAlgorithm_Get(peak_afl_controller_handle controller, peak_afl_controller_brightness_algorithm *algorithm)
Get the current brightness analysis algorithm for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessAlgorithm_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if brightness algorithm configuration is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessComponent_Callback_Set(peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_callback_type type, void *funcPtr, void *context)
Set a callback function for a specific brightness component.
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessComponent_Status(peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_status *status)
Get the operational status for a specific brightness component.
peak_afl_controller_brightness_component
Brightness control components.
Definition peak_afl.h:874
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessComponent_Unit_IsSupported(peak_afl_controller_handle controller, peak_afl_controller_brightness_component unit, peak_afl_BOOL8 *supported)
Check if a specific brightness component unit is supported for a controller.
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_ANALOG_GAIN
Analog gain control.
Definition peak_afl.h:916
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_GAIN
Generic gain control.
Definition peak_afl.h:904
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_COMBINED_GAIN
Combined analog and digital gain.
Definition peak_afl.h:940
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_HOST_GAIN
Host-based software gain.
Definition peak_afl.h:952
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_DIGITAL_GAIN
Digital gain control.
Definition peak_afl.h:928
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_EXPOSURE
Camera exposure time control.
Definition peak_afl.h:893
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessComponent_Mode_Get(peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_automode *mode)
Get the current automatic mode for a specific brightness component.
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessComponent_Mode_Set(peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_automode mode)
Set the automatic mode for a specific brightness component.
PEAK_AFL_API_STATUS peak_afl_AutoController_BrightnessComponent_Mode_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if brightness component mode configuration is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GetLastAutoAverage(peak_afl_controller_handle controller, uint8_t *average)
Get the last auto average for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Callback_Set(peak_afl_controller_handle controller, peak_afl_callback_type type, void *funcPtr, void *context)
Set a callback for a controller.
@ PEAK_AFL_CONTROLLER_CALLBACK_FINISHED
Controller operation finished callback.
Definition peak_afl.h:1083
@ PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING_DATA
Legacy processing data callback.
Definition peak_afl.h:1097
@ PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING
Enhanced processing callback.
Definition peak_afl.h:1108
PEAK_AFL_API_STATUS peak_afl_AutoController_Mode_Get(peak_afl_controller_handle controller, peak_afl_controller_automode *mode)
Get the current automatic processing mode for a controller.
peak_afl_controller_automode
Auto feature controller operation modes.
Definition peak_afl.h:540
PEAK_AFL_API_STATUS peak_afl_AutoController_Mode_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if automatic mode configuration is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Mode_Set(peak_afl_controller_handle controller, peak_afl_controller_automode mode)
Set the automatic processing mode for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set exposure time limits for automatic exposure control.
PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get the current exposure time limits for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature exposure limit range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Algorithm_Get(peak_afl_controller_handle controller, peak_afl_controller_algorithm *algorithm)
Get the used algorithm for a controller.
peak_afl_controller_algorithm
Focus search algorithms.
Definition peak_afl.h:692
PEAK_AFL_API_STATUS peak_afl_AutoController_Algorithm_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if setting an algorithm is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Algorithm_GetList(peak_afl_controller_handle controller, peak_afl_controller_algorithm *typeList, uint32_t *listSize)
Get the list of supported algorithms for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Algorithm_Set(peak_afl_controller_handle controller, peak_afl_controller_algorithm algorithm)
Set the used algorithm for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_Default(peak_afl_controller_handle controller, peak_afl_controller_limit *limit)
Get the autofeature default limit.
PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_Get(peak_afl_controller_handle controller, peak_afl_controller_limit *limit)
Get the autofeature limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if limit is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_Set(peak_afl_controller_handle controller, peak_afl_controller_limit limit)
Set the autofeature limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainAnalogLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature analog gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainAnalogLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature analog gain limit range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainAnalogLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set autofeature analog gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainCombinedLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set autofeature combined gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainCombinedLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature combined gain limit range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainCombinedLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature combined gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainDigitalLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature digital gain limit range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainDigitalLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature digital gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainDigitalLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set autofeature digital gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainHostLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature host gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainHostLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set autofeature host gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainHostLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature host gain limit range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set autofeature gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature gain limit range for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if gain limit is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature gain limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Default(peak_afl_controller_handle controller, uint8_t *hysteresis)
Get the autofeature hysteresis default.
PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Set(peak_afl_controller_handle controller, uint8_t hysteresis)
Set the autofeature hysteresis for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Get(peak_afl_controller_handle controller, uint8_t *hysteresis)
Get the autofeature hysteresis for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if hysteresis is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_GetRange(peak_afl_controller_handle controller, uint8_t *min, uint8_t *max, uint8_t *inc)
Get autofeature hysteresis range for a controller.
PEAK_AFL_API_STATUS peak_afl_GetVersion(uint32_t *majorVersion, uint32_t *minorVersion, uint32_t *patchVersion, uint32_t *_)
Query the library version.
PEAK_AFL_API_STATUS peak_afl_Init(void)
Init the peak_afl auto feature library.
PEAK_AFL_API_STATUS peak_afl_Exit(void)
Exit the peak_afl auto feature library.
PEAK_AFL_API_STATUS peak_afl_GetLastError(peak_afl_status *lastErrorCode, char *lastErrorMessage, size_t *lastErrorMessageSize)
Get the last error message.
peak_afl_roi_preset
Predefined ROI preset configurations.
Definition peak_afl.h:1407
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_Preset_Set(peak_afl_controller_handle controller, peak_afl_roi_preset roiPreset)
Set a predefined region of interest preset for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_Preset_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if ROI preset feature is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_Get(peak_afl_controller_handle controller, peak_afl_rectangle *roi)
Get the current region of interest for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_Set(peak_afl_controller_handle controller, peak_afl_rectangle roi)
Set the region of interest for automatic feature processing.
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if region of interest (ROI) feature is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SharpnessAlgorithm_GetList(peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm *typeList, uint32_t *listSize)
Get the list of supported sharpness algorithms for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SharpnessAlgorithm_Set(peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm algorithm)
Set the used sharpness algorithm for a controller.
peak_afl_controller_sharpness_algorithm
Focus sharpness calculation algorithms.
Definition peak_afl.h:805
PEAK_AFL_API_STATUS peak_afl_AutoController_SharpnessAlgorithm_Get(peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm *algorithm)
Get the used sharpness algorithm for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SharpnessAlgorithm_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if setting a sharpness algorithm is supported by a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_GetRange(peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc)
Get the valid range for skip frames count.
PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Set(peak_afl_controller_handle controller, uint32_t count)
Set number of frames to skip for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Get(peak_afl_controller_handle controller, uint32_t *count)
Get the current skip frames count for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if skip frames feature is supported for a controller.
peak_afl_status
Auto feature library status codes.
Definition peak_afl.h:380
peak_afl_controller_status
Controller operational status.
Definition peak_afl.h:586
@ PEAK_AFL_STATUS_SUCCESS
Operation completed successfully.
Definition peak_afl.h:386
@ PEAK_AFL_STATUS_INVALID_IMAGE_FORMAT
Invalid or unsupported image format.
Definition peak_afl.h:454
@ PEAK_AFL_STATUS_VALUE_ADJUSTED
Parameter value was adjusted.
Definition peak_afl.h:472
@ PEAK_AFL_STATUS_ACCESS_DENIED
Access denied to resource.
Definition peak_afl.h:424
@ PEAK_AFL_STATUS_BUSY
Resource is busy.
Definition peak_afl.h:434
@ PEAK_AFL_STATUS_NOT_SUPPORTED
Feature or operation not supported.
Definition peak_afl.h:462
@ PEAK_AFL_STATUS_INVALID_PARAMETER
Invalid parameter provided.
Definition peak_afl.h:416
@ PEAK_AFL_STATUS_BUFFER_TOO_SMALL
Provided buffer is too small.
Definition peak_afl.h:444
@ PEAK_AFL_STATUS_NOT_INITIALIZED
Library not initialized.
Definition peak_afl.h:406
@ PEAK_AFL_STATUS_ERROR
General error occurred.
Definition peak_afl.h:396
#define PEAK_AFL_FALSE
Boolean false value.
Definition peak_afl.h:1643
uint8_t peak_afl_BOOL8
Custom 8-bit boolean type.
Definition peak_afl.h:1625
PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_Set(peak_afl_controller_handle controller, const peak_afl_weighted_rectangle *weightedRoiList, uint32_t listSize)
Set the autofeature weighted region of interest for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_Get(peak_afl_controller_handle controller, peak_afl_weighted_rectangle *weightedRoiList, uint32_t *listSize)
Get the autofeature weighted region of interest for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_Min_Size(peak_afl_controller_handle controller, peak_afl_size *size)
Get the autofeature minimum size for the weighted region of interest for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if weighted region of interest is supported for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_GetLastAutoAverages(peak_afl_controller_handle controller, uint8_t *averageRed, uint8_t *averageGreen, uint8_t *averageBlue)
Get the last auto average for a controller.
std::tuple< Manager, std::vector< std::shared_ptr< Controller > > > CreateManager(const std::shared_ptr< peak::core::NodeMap > &node_map, ControllerTypes... types)
Convenience function to create a manager with the supplied controllers.
Definition peak_afl.hpp:917
std::string GetLastError()
Get the last error message.
Definition peak_afl.hpp:2222
void Exit()
Exit the peak_afl auto feature library.
Definition peak_afl.hpp:2198
void Init()
Init the peak_afl auto feature library.
Definition peak_afl.hpp:2188
Version_t Version()
Query the library version.
Definition peak_afl.hpp:2207
C API interface for automatic camera feature control.
void * peak_afl_controller_handle
Opaque handle for auto feature controllers.
Definition peak_afl.h:354
void * peak_afl_manager_handle
Opaque handle for auto feature managers.
Definition peak_afl.h:366
Generic arithmetic range with inclusive endpoints and a defined step size.
Definition peak_afl.hpp:942
Version information for ids_peak_afl.
Definition peak_afl.hpp:130
std::string ToString() const
The String representation for the ids_peak_afl version.
Definition peak_afl.hpp:179
PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS std::uint32_t major
Definition peak_afl.hpp:155
std::uint32_t Patch() const
Returns the patch part of the version which is the third part of the version scheme separated by dots...
Definition peak_afl.hpp:220
std::uint32_t Major() const
Returns the major part of the version which is the first part of the version scheme separated by dots...
Definition peak_afl.hpp:189
std::uint32_t minor
Definition peak_afl.hpp:161
std::uint32_t subminor
Definition peak_afl.hpp:167
std::uint32_t Minor() const
Returns the minor part of the version which is the second part of the version scheme separated by dot...
Definition peak_afl.hpp:199
std::uint32_t Subminor() const
Definition peak_afl.hpp:208
std::uint32_t patch
Definition peak_afl.hpp:173
Controller parameter limit range.
Definition peak_afl.h:1566
Floating-point parameter limit range.
Definition peak_afl.h:1596
Generic process data structure.
Definition peak_afl.h:1126
2D rectangle structure
Definition peak_afl.h:1494
2D size structure
Definition peak_afl.h:1432
Weighted region of interest for focus control.
Definition peak_afl.h:1536