]> sigrok.org Git - libsigrok.git/blame - bindings/cxx/QuantityFlag_methods.cpp
bindings: Fix enums.py compatibility with Python 3.
[libsigrok.git] / bindings / cxx / QuantityFlag_methods.cpp
CommitLineData
c23c8659
ML
1vector<const QuantityFlag *>
2 QuantityFlag::flags_from_mask(unsigned int mask)
3{
4 auto result = vector<const QuantityFlag *>();
5 while (mask)
6 {
7 unsigned int new_mask = mask & (mask - 1);
8 result.push_back(QuantityFlag::get(
9 static_cast<enum sr_mqflag>(mask ^ new_mask)));
10 mask = new_mask;
11 }
12 return result;
13}
b2db9f3b
ML
14
15unsigned int QuantityFlag::mask_from_flags(vector<const QuantityFlag *> flags)
16{
17 unsigned int result = 0;
18 for (auto flag : flags)
19 result |= flag->id();
20 return result;
21}