]> sigrok.org Git - libsigrok.git/blob - bindings/cxx/QuantityFlag_methods.cpp
bindings: Add Output::format()
[libsigrok.git] / bindings / cxx / QuantityFlag_methods.cpp
1 vector<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 }
14
15 unsigned 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 }