summaryrefslogtreecommitdiff
path: root/client/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/main.c')
-rw-r--r--client/main.c166
1 files changed, 1 insertions, 165 deletions
diff --git a/client/main.c b/client/main.c
index 2816e880f..763f38ac7 100644
--- a/client/main.c
+++ b/client/main.c
@@ -25,6 +25,7 @@
#include "src/shared/shell.h"
#include "src/shared/util.h"
#include "gdbus/gdbus.h"
+#include "print.h"
#include "agent.h"
#include "gatt.h"
#include "advertising.h"
@@ -162,171 +163,6 @@ static void print_device(GDBusProxy *proxy, const char *description)
address, name);
}
-static void print_fixed_iter(const char *label, const char *name,
- DBusMessageIter *iter)
-{
- dbus_bool_t *valbool;
- dbus_uint32_t *valu32;
- dbus_uint16_t *valu16;
- dbus_int16_t *vals16;
- unsigned char *byte;
- int len;
-
- switch (dbus_message_iter_get_arg_type(iter)) {
- case DBUS_TYPE_BOOLEAN:
- dbus_message_iter_get_fixed_array(iter, &valbool, &len);
-
- if (len <= 0)
- return;
-
- bt_shell_printf("%s%s:\n", label, name);
- bt_shell_hexdump((void *)valbool, len * sizeof(*valbool));
-
- break;
- case DBUS_TYPE_UINT32:
- dbus_message_iter_get_fixed_array(iter, &valu32, &len);
-
- if (len <= 0)
- return;
-
- bt_shell_printf("%s%s:\n", label, name);
- bt_shell_hexdump((void *)valu32, len * sizeof(*valu32));
-
- break;
- case DBUS_TYPE_UINT16:
- dbus_message_iter_get_fixed_array(iter, &valu16, &len);
-
- if (len <= 0)
- return;
-
- bt_shell_printf("%s%s:\n", label, name);
- bt_shell_hexdump((void *)valu16, len * sizeof(*valu16));
-
- break;
- case DBUS_TYPE_INT16:
- dbus_message_iter_get_fixed_array(iter, &vals16, &len);
-
- if (len <= 0)
- return;
-
- bt_shell_printf("%s%s:\n", label, name);
- bt_shell_hexdump((void *)vals16, len * sizeof(*vals16));
-
- break;
- case DBUS_TYPE_BYTE:
- dbus_message_iter_get_fixed_array(iter, &byte, &len);
-
- if (len <= 0)
- return;
-
- bt_shell_printf("%s%s:\n", label, name);
- bt_shell_hexdump((void *)byte, len * sizeof(*byte));
-
- break;
- default:
- return;
- };
-}
-
-static void print_iter(const char *label, const char *name,
- DBusMessageIter *iter)
-{
- dbus_bool_t valbool;
- dbus_uint32_t valu32;
- dbus_uint16_t valu16;
- dbus_int16_t vals16;
- unsigned char byte;
- const char *valstr;
- DBusMessageIter subiter;
- char *entry;
-
- if (iter == NULL) {
- bt_shell_printf("%s%s is nil\n", label, name);
- return;
- }
-
- switch (dbus_message_iter_get_arg_type(iter)) {
- case DBUS_TYPE_INVALID:
- bt_shell_printf("%s%s is invalid\n", label, name);
- break;
- case DBUS_TYPE_STRING:
- case DBUS_TYPE_OBJECT_PATH:
- dbus_message_iter_get_basic(iter, &valstr);
- bt_shell_printf("%s%s: %s\n", label, name, valstr);
- break;
- case DBUS_TYPE_BOOLEAN:
- dbus_message_iter_get_basic(iter, &valbool);
- bt_shell_printf("%s%s: %s\n", label, name,
- valbool == TRUE ? "yes" : "no");
- break;
- case DBUS_TYPE_UINT32:
- dbus_message_iter_get_basic(iter, &valu32);
- bt_shell_printf("%s%s: 0x%08x\n", label, name, valu32);
- break;
- case DBUS_TYPE_UINT16:
- dbus_message_iter_get_basic(iter, &valu16);
- bt_shell_printf("%s%s: 0x%04x\n", label, name, valu16);
- break;
- case DBUS_TYPE_INT16:
- dbus_message_iter_get_basic(iter, &vals16);
- bt_shell_printf("%s%s: %d\n", label, name, vals16);
- break;
- case DBUS_TYPE_BYTE:
- dbus_message_iter_get_basic(iter, &byte);
- bt_shell_printf("%s%s: 0x%02x (%d)\n", label, name, byte, byte);
- 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);
-
- if (dbus_type_is_fixed(
- dbus_message_iter_get_arg_type(&subiter))) {
- print_fixed_iter(label, name, &subiter);
- break;
- }
-
- 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);
- entry = g_strconcat(name, " Key", NULL);
- print_iter(label, entry, &subiter);
- g_free(entry);
-
- entry = g_strconcat(name, " Value", NULL);
- dbus_message_iter_next(&subiter);
- print_iter(label, entry, &subiter);
- g_free(entry);
- break;
- default:
- bt_shell_printf("%s%s has unsupported type\n", label, name);
- break;
- }
-}
-
-static void print_property_with_label(GDBusProxy *proxy, const char *name,
- const char *label)
-{
- DBusMessageIter iter;
-
- if (g_dbus_proxy_get_property(proxy, name, &iter) == FALSE)
- return;
-
- print_iter("\t", label ? label : name, &iter);
-}
-
-static void print_property(GDBusProxy *proxy, const char *name)
-{
- print_property_with_label(proxy, name, NULL);
-}
-
static void print_uuid(const char *label, const char *uuid)
{
const char *text;