scripts: Get pluarl flags string
diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py
index 93af5d8..759bf1b 100644
--- a/scripts/helper_file_generator.py
+++ b/scripts/helper_file_generator.py
@@ -377,6 +377,27 @@
outstring += ' return "Unhandled %s";\n' % groupName
outstring += ' }\n'
outstring += '}\n'
+
+ bitsIndex = groupName.find('Bits')
+ if (bitsIndex != -1):
+ outstring += '\n'
+ flagsName = groupName[0:bitsIndex] + "s" + groupName[bitsIndex+4:]
+ outstring += 'static inline std::string string_%s(%s input_value)\n' % (flagsName, flagsName)
+ outstring += '{\n'
+ outstring += ' std::string ret;\n'
+ outstring += ' int index = 0;\n'
+ outstring += ' while(input_value) {\n'
+ outstring += ' if (input_value & 1) {\n'
+ outstring += ' if( !ret.empty()) ret.append("|");\n'
+ outstring += ' ret.append(string_%s(static_cast<%s>(1 << index)));\n' % (groupName, groupName)
+ outstring += ' }\n'
+ outstring += ' ++index;\n'
+ outstring += ' input_value >>= 1;\n'
+ outstring += ' }\n'
+ outstring += ' if( ret.empty()) ret.append(string_%s(static_cast<%s>(0)));\n' % (groupName, groupName)
+ outstring += ' return ret;\n'
+ outstring += '}\n'
+
if self.featureExtraProtect is not None:
outstring += '#endif // %s\n' % self.featureExtraProtect
return outstring