libcamera: utils: Add clamp()
C++11 does not support std::clamp(), add a custom implementation in utils. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#ifndef __LIBCAMERA_UTILS_H__
|
||||
#define __LIBCAMERA_UTILS_H__
|
||||
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
||||
@@ -45,6 +46,13 @@ unsigned int set_overlap(InputIt1 first1, InputIt1 last1,
|
||||
return count;
|
||||
}
|
||||
|
||||
/* C++11 doesn't provide std::clamp */
|
||||
template <typename T>
|
||||
const T& clamp(const T& v, const T& lo, const T& hi)
|
||||
{
|
||||
return std::max(lo, std::min(v, hi));
|
||||
}
|
||||
|
||||
} /* namespace utils */
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
||||
@@ -85,6 +85,14 @@ char *secure_getenv(const char *name)
|
||||
* \return The number of elements in the intersection of the two ranges
|
||||
*/
|
||||
|
||||
/**
|
||||
* \fn libcamera::utils::clamp(const T& v, const T& lo, const T& hi)
|
||||
* \param[in] v The value to clamp
|
||||
* \param[in] lo The lower boundary to clamp v to
|
||||
* \param[in] hi The higher boundary to clamp v to
|
||||
* \return lo if v is less than lo, hi if v is greater than hi, otherwise v
|
||||
*/
|
||||
|
||||
} /* namespace utils */
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
||||
Reference in New Issue
Block a user