summaryrefslogtreecommitdiff
path: root/tools/bluetooth-player.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2013-05-30 17:15:43 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2013-06-10 11:06:45 +0300
commit82e12919af202953f9bddec24e49101b3e15c6c0 (patch)
tree2aa0eee5a5424404d07a056ceff4589901cae661 /tools/bluetooth-player.c
parent171049e873e5393fd336f9f50dd6d2870e302fc0 (diff)
downloadbluez-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.c19
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;