]> sigrok.org Git - libsigrok.git/blame - bindings/cxx/QuantityFlag_methods.cpp
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / bindings / cxx / QuantityFlag_methods.cpp
CommitLineData
6c6dd732 1std::vector<const QuantityFlag *>
c23c8659
ML
2 QuantityFlag::flags_from_mask(unsigned int mask)
3{
6c6dd732 4 auto result = std::vector<const QuantityFlag *>();
c23c8659
ML
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 14
6c6dd732 15unsigned int QuantityFlag::mask_from_flags(std::vector<const QuantityFlag *> flags)
b2db9f3b
ML
16{
17 unsigned int result = 0;
18 for (auto flag : flags)
19 result |= flag->id();
20 return result;
21}