diff --git a/client/advertising.c b/client/advertising.c
index 5e63f6d..944251d 100644
--- a/client/advertising.c
+++ b/client/advertising.c
g_dbus_emit_property_changed(conn, AD_PATH, AD_IFACE, "Includes");
}
-void ad_advertise_local_appearance(DBusConnection *conn, uint16_t value)
+void ad_advertise_local_appearance(DBusConnection *conn, long int *value)
{
- if (ad.local_appearance == value)
+ if (!value) {
+ if (ad.local_appearance != UINT16_MAX)
+ bt_shell_printf("Appearance: %s (0x%04x)\n",
+ bt_appear_to_str(ad.local_appearance),
+ ad.local_appearance);
+ else
+ bt_shell_printf("Apperance: %s\n",
+ ad.appearance ? "on" : "off");
+
+ return;
+ }
+
+ if (ad.local_appearance == *value)
return;
- ad.local_appearance = value;
+ ad.local_appearance = *value;
g_dbus_emit_property_changed(conn, AD_PATH, AD_IFACE, "Appearance");
}
diff --git a/client/advertising.h b/client/advertising.h
index 6c73b63..7edf4fd 100644
--- a/client/advertising.h
+++ b/client/advertising.h
void ad_advertise_name(DBusConnection *conn, bool value);
void ad_advertise_appearance(DBusConnection *conn, bool value);
void ad_advertise_local_name(DBusConnection *conn, const char *name);
-void ad_advertise_local_appearance(DBusConnection *conn, uint16_t value);
+void ad_advertise_local_appearance(DBusConnection *conn, long int *value);
void ad_advertise_duration(DBusConnection *conn, uint16_t value);
void ad_advertise_timeout(DBusConnection *conn, uint16_t value);
diff --git a/client/main.c b/client/main.c
index 01a3c21..49b1652 100644
--- a/client/main.c
+++ b/client/main.c
ad_advertise_local_name(dbus_conn, argv[1]);
}
-static void cmd_set_advertise_appearance(int argc, char *argv[])
+static void cmd_advertise_appearance(int argc, char *argv[])
{
long int value;
char *endptr = NULL;
+ if (argc < 2) {
+ ad_advertise_local_appearance(dbus_conn, NULL);
+ return;
+ }
+
if (strcmp(argv[1], "on") == 0 || strcmp(argv[1], "yes") == 0) {
ad_advertise_appearance(dbus_conn, true);
return;
return;
}
- ad_advertise_local_appearance(dbus_conn, value);
+ ad_advertise_local_appearance(dbus_conn, &value);
}
static void cmd_set_advertise_duration(int argc, char *argv[])
mode_generator },
{ "name", "[on/off/name]", cmd_advertise_name,
"Enable/disable local name to be advertised" },
- { "set-appearance", "<value>", cmd_set_advertise_appearance,
+ { "appearance", "[value]", cmd_advertise_appearance,
"Set custom appearance to be advertised" },
{ "set-duration", "<seconds>", cmd_set_advertise_duration,
"Set advertise duration" },