diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2013-05-30 17:15:43 +0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2013-06-10 11:06:45 +0300 |
commit | 82e12919af202953f9bddec24e49101b3e15c6c0 (patch) | |
tree | 2aa0eee5a5424404d07a056ceff4589901cae661 /tools/bluetooth-player.c | |
parent | 171049e873e5393fd336f9f50dd6d2870e302fc0 (diff) | |
download | bluez-82e12919af202953f9bddec24e49101b3e15c6c0.tar.gz |
tools/bluetooth-player: Add support for container types to print_iter
This adds support for container types to print_iter so it can now print
'Track' property properly.
Diffstat (limited to 'tools/bluetooth-player.c')
-rw-r--r-- | tools/bluetooth-player.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/bluetooth-player.c b/tools/bluetooth-player.c index 096fa44d6..d691d6760 100644 --- a/tools/bluetooth-player.c +++ b/tools/bluetooth-player.c @@ -365,6 +365,7 @@ static void print_iter(const char *label, const char *name, dbus_uint16_t valu16; dbus_int16_t vals16; const char *valstr; + DBusMessageIter subiter; if (iter == NULL) { rl_printf("%s%s is nil\n", label, name); @@ -397,6 +398,24 @@ static void print_iter(const char *label, const char *name, dbus_message_iter_get_basic(iter, &vals16); rl_printf("%s%s: %d\n", label, name, vals16); break; + case DBUS_TYPE_VARIANT: + dbus_message_iter_recurse(iter, &subiter); + print_iter(label, name, &subiter); + break; + case DBUS_TYPE_ARRAY: + dbus_message_iter_recurse(iter, &subiter); + while (dbus_message_iter_get_arg_type(&subiter) != + DBUS_TYPE_INVALID) { + print_iter(label, name, &subiter); + dbus_message_iter_next(&subiter); + } + break; + case DBUS_TYPE_DICT_ENTRY: + dbus_message_iter_recurse(iter, &subiter); + dbus_message_iter_get_basic(&subiter, &valstr); + dbus_message_iter_next(&subiter); + print_iter(label, valstr, &subiter); + break; default: rl_printf("%s%s has unsupported type\n", label, name); break; |