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:
Niklas Söderlund
2019-07-13 20:25:21 +09:00
parent 1a7f1610e9
commit c4b9ccb45a
2 changed files with 16 additions and 0 deletions
+8
View File
@@ -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 */