diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-11-02 13:13:47 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-11-02 13:13:47 +0100 |
commit | d07c5e14b97610a14c7bf4fb20f8ac280fff8f0e (patch) | |
tree | d904438cf64266e64411b9063addda2565021f0e /build-aux/qmi-codegen | |
parent | 94addc296e434f4c4352fa33f8b921a5c9b91494 (diff) | |
download | external_libqmi-d07c5e14b97610a14c7bf4fb20f8ac280fff8f0e.zip external_libqmi-d07c5e14b97610a14c7bf4fb20f8ac280fff8f0e.tar.gz external_libqmi-d07c5e14b97610a14c7bf4fb20f8ac280fff8f0e.tar.bz2 |
qmi-codegen: translate the values of enums/flags in traces
Diffstat (limited to 'build-aux/qmi-codegen')
-rw-r--r-- | build-aux/qmi-codegen/VariableInteger.py | 53 | ||||
-rw-r--r-- | build-aux/qmi-codegen/utils.py | 1 |
2 files changed, 39 insertions, 15 deletions
diff --git a/build-aux/qmi-codegen/VariableInteger.py b/build-aux/qmi-codegen/VariableInteger.py index 63d1d02..201c34d 100644 --- a/build-aux/qmi-codegen/VariableInteger.py +++ b/build-aux/qmi-codegen/VariableInteger.py @@ -183,6 +183,7 @@ class VariableInteger(Variable): def emit_get_printable(self, f, line_prefix, printable, buffer_name, buffer_len): common_format = '' common_cast = '' + if self.private_format == 'guint8': common_format = '%u' common_cast = '(guint)' @@ -204,6 +205,7 @@ class VariableInteger(Variable): translations = { 'lp' : line_prefix, 'private_format' : self.private_format, + 'public_format' : self.public_format, 'len' : self.guint_sized_size, 'printable' : printable, 'buffer_name' : buffer_name, @@ -211,13 +213,14 @@ class VariableInteger(Variable): 'common_format' : common_format, 'common_cast' : common_cast, 'endian' : self.endian } + template = ( + '\n' + '${lp}{\n' + '${lp} ${private_format} tmp;\n' + '\n') if self.format == 'guint-sized': - template = ( - '\n' - '${lp}{\n' - '${lp} ${private_format} tmp;\n' - '\n' + template += ( '${lp} /* Read the ${len}-byte long variable from the buffer */\n' '${lp} qmi_utils_read_sized_guint_from_buffer (\n' '${lp} &${buffer_name},\n' @@ -225,15 +228,9 @@ class VariableInteger(Variable): '${lp} ${len},\n' '${lp} ${endian},\n' '${lp} &tmp);\n' - '\n' - '${lp} g_string_append_printf (${printable}, "${common_format}", ${common_cast}tmp);\n' - '${lp}}\n') + '\n') else: - template = ( - '\n' - '${lp}{\n' - '${lp} ${private_format} tmp;\n' - '\n' + template += ( '${lp} /* Read the ${private_format} variable from the buffer */\n' '${lp} qmi_utils_read_${private_format}_from_buffer (\n' '${lp} &${buffer_name},\n' @@ -243,9 +240,35 @@ class VariableInteger(Variable): '${lp} ${endian},\n') template += ( '${lp} &tmp);\n' + '\n') + + if self.public_format == 'gboolean': + template += ( + '${lp} g_string_append_printf (${printable}, "%s", tmp ? "yes" : "no");\n') + elif self.public_format != self.private_format: + translations['public_type_underscore'] = utils.build_underscore_name_from_camelcase(self.public_format) + translations['public_type_underscore_upper'] = string.upper(utils.build_underscore_name_from_camelcase(self.public_format)) + template += ( + '#if defined __${public_type_underscore_upper}_IS_ENUM__\n' + '${lp} g_string_append_printf (${printable}, "%s", ${public_type_underscore}_get_string ((${public_format})tmp));\n' + '#elif defined __${public_type_underscore_upper}_IS_FLAGS__\n' + '${lp} {\n' + '${lp} gchar *flags_str;\n' '\n' - '${lp} g_string_append_printf (${printable}, "${common_format}", ${common_cast}tmp);\n' - '${lp}}\n') + '${lp} flags_str = ${public_type_underscore}_build_string_from_mask ((${public_format})tmp);\n' + '${lp} g_string_append_printf (${printable}, "%s", flags_str);\n' + '${lp} g_free (flags_str);\n' + '${lp} }\n' + '#else\n' + '# error unexpected public format: ${public_format}\n' + '#endif\n') + else: + template += ( + '${lp} g_string_append_printf (${printable}, "${common_format}", ${common_cast}tmp);\n') + + template += ( + '${lp}}\n') + f.write(string.Template(template).substitute(translations)) diff --git a/build-aux/qmi-codegen/utils.py b/build-aux/qmi-codegen/utils.py index 9530f03..113a78b 100644 --- a/build-aux/qmi-codegen/utils.py +++ b/build-aux/qmi-codegen/utils.py @@ -115,6 +115,7 @@ def add_source_start(f, output_name): "\n" "#include \"${name}.h\"\n" "#include \"qmi-enum-types.h\"\n" + "#include \"qmi-enum-types-private.h\"\n" "#include \"qmi-flags64-types.h\"\n" "#include \"qmi-error-types.h\"\n" "#include \"qmi-device.h\"\n" |