diff options
author | Stefan Kost <ensonic@users.sourceforge.net> | 2007-11-22 21:32:09 +0000 |
---|---|---|
committer | Stefan Kost <ensonic@users.sourceforge.net> | 2007-11-22 21:32:09 +0000 |
commit | fcae3bf5965e6a3d91bbf5fd197599c15d2976df (patch) | |
tree | 5cd62e685dd4d61116863182a41e08952e75bcf8 /tools | |
parent | 99897dbf2499cdf14f2d6d64539fbcfde4ebb05f (diff) |
tools/gst-inspect.c: Print 'default value' for enums and flags too.
Original commit message from CVS:
* tools/gst-inspect.c:
Print 'default value' for enums and flags too.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gst-inspect.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c index 9ea3fcd54e..c634134680 100644 --- a/tools/gst-inspect.c +++ b/tools/gst-inspect.c @@ -448,22 +448,27 @@ print_element_properties_info (GstElement * element) print_caps (caps, " "); } } else if (G_IS_PARAM_SPEC_ENUM (param)) { + GParamSpecEnum *penum = G_PARAM_SPEC_ENUM (param); GEnumValue *values; guint j = 0; gint enum_value; + const gchar *def_val_nick = "", *cur_val_nick = ""; values = G_ENUM_CLASS (g_type_class_ref (param->value_type))->values; enum_value = g_value_get_enum (&value); while (values[j].value_name) { if (values[j].value == enum_value) - break; + cur_val_nick = values[j].value_nick; + if (values[j].value == penum->default_value) + def_val_nick = values[j].value_nick; j++; } - n_print ("%-23.23s Enum \"%s\" Current: %d, \"%s\"", "", - g_type_name (G_VALUE_TYPE (&value)), - enum_value, values[j].value_nick); + n_print + ("%-23.23s Enum \"%s\" Default: %d, \"%s\" Current: %d, \"%s\"", + "", g_type_name (G_VALUE_TYPE (&value)), penum->default_value, + def_val_nick, enum_value, cur_val_nick); j = 0; while (values[j].value_name) { @@ -476,28 +481,40 @@ print_element_properties_info (GstElement * element) } /* g_type_class_unref (ec); */ } else if (G_IS_PARAM_SPEC_FLAGS (param)) { + GParamSpecFlags *pflags = G_PARAM_SPEC_FLAGS (param); GFlagsValue *values; guint j = 0; gint flags_value; - GString *flags = NULL; + GString *cur_flags = NULL, *def_flags = NULL; values = G_FLAGS_CLASS (g_type_class_ref (param->value_type))->values; flags_value = g_value_get_flags (&value); while (values[j].value_name) { if (values[j].value & flags_value) { - if (flags) { - g_string_append_printf (flags, " | %s", values[j].value_nick); + if (cur_flags) { + g_string_append_printf (cur_flags, " | %s", + values[j].value_nick); } else { - flags = g_string_new (values[j].value_nick); + cur_flags = g_string_new (values[j].value_nick); + } + } + if (values[j].value & pflags->default_value) { + if (def_flags) { + g_string_append_printf (def_flags, " | %s", + values[j].value_nick); + } else { + def_flags = g_string_new (values[j].value_nick); } } j++; } - n_print ("%-23.23s Flags \"%s\" Current: %d, \"%s\"", "", - g_type_name (G_VALUE_TYPE (&value)), - flags_value, (flags ? flags->str : "(none)")); + n_print + ("%-23.23s Flags \"%s\" Default: %d, \"%s\" Current: %d, \"%s\"", + "", g_type_name (G_VALUE_TYPE (&value)), pflags->default_value, + (def_flags ? def_flags->str : "(none)"), flags_value, + (cur_flags ? cur_flags->str : "(none)")); j = 0; while (values[j].value_name) { @@ -509,8 +526,10 @@ print_element_properties_info (GstElement * element) j++; } - if (flags) - g_string_free (flags, TRUE); + if (cur_flags) + g_string_free (cur_flags, TRUE); + if (def_flags) + g_string_free (def_flags, TRUE); } else if (G_IS_PARAM_SPEC_OBJECT (param)) { n_print ("%-23.23s Object of type \"%s\"", "", g_type_name (param->value_type)); |