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