25 #ifndef INCLUDED_IdentifierHelpers_h_GUID_B6F81E02_BE7B_4382_12E5_87296135997D
26 #define INCLUDED_IdentifierHelpers_h_GUID_B6F81E02_BE7B_4382_12E5_87296135997D
32 #include <boost/assert.hpp>
43 inline void truncateBrightnessListTo(BrightnessList &brightnesses,
46 auto currentSize = brightnesses.size();
47 if (currentSize > n) {
48 auto excess = currentSize - n;
49 auto newBegin = brightnesses.begin();
50 std::advance(newBegin, excess);
51 brightnesses.erase(brightnesses.begin(), newBegin);
52 if (brightnesses.size() > n) {
53 throw std::logic_error(
"MATH FAIL");
57 while (brightnesses.size() > n) {
58 brightnesses.pop_front();
65 inline BrightnessMinMax
66 findMinMaxBrightness(
const BrightnessList &brightnesses) {
68 BOOST_ASSERT_MSG(!brightnesses.empty(),
"Must be a non-empty list!");
69 auto extremaIterators =
70 std::minmax_element(begin(brightnesses), end(brightnesses));
71 return std::make_pair(*extremaIterators.first,
72 *extremaIterators.second);
78 inline LedPatternWrapped
79 getBitsUsingThreshold(
const BrightnessList &brightnesses,
float threshold) {
80 LedPatternWrapped ret;
82 ret.resize(brightnesses.size());
87 [threshold](Brightness val) {
88 if (val >= threshold) {
100 #endif // INCLUDED_IdentifierHelpers_h_GUID_B6F81E02_BE7B_4382_12E5_87296135997D
t_< detail::transform_< List, Fun >> transform