2020-05-21 17:58:54

by Sonny Sasaka

[permalink] [raw]
Subject: [PATCH v2 1/3] device: Add device type property

From: Eric Caruso <[email protected]>

This allows us to gather information about whether a device
supports BR/EDR, BLE, or both. It appears as DBus Property
"Types" on the org.bluez.Device1 interface.
---
src/device.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

diff --git a/src/device.c b/src/device.c
index 7b0eb256e..2b5a7f2e8 100644
--- a/src/device.c
+++ b/src/device.c
@@ -745,6 +745,32 @@ static gboolean property_get_address_type(const GDBusPropertyTable *property,
return TRUE;
}

+static gboolean dev_property_get_types(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct btd_device *device = data;
+ const char *type;
+
+ DBusMessageIter array;
+
+ dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
+ DBUS_TYPE_BYTE_AS_STRING, &array);
+
+ if (device->bredr) {
+ type = "bredr";
+ dbus_message_iter_append_basic(&array, DBUS_TYPE_STRING, &type);
+ }
+
+ if (device->le) {
+ type = "le";
+ dbus_message_iter_append_basic(&array, DBUS_TYPE_STRING, &type);
+ }
+
+ dbus_message_iter_close_container(iter, &array);
+
+ return TRUE;
+}
+
static gboolean dev_property_get_name(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
@@ -2759,6 +2785,7 @@ static const GDBusMethodTable device_methods[] = {
static const GDBusPropertyTable device_properties[] = {
{ "Address", "s", dev_property_get_address },
{ "AddressType", "s", property_get_address_type },
+ { "Types", "as", dev_property_get_types, NULL, NULL },
{ "Name", "s", dev_property_get_name, NULL, dev_property_exists_name },
{ "Alias", "s", dev_property_get_alias, dev_property_set_alias },
{ "Class", "u", dev_property_get_class, NULL,
--
2.17.1


2020-05-21 17:59:59

by Sonny Sasaka

[permalink] [raw]
Subject: [PATCH v2 3/3] client: Print device property "Types"

---
client/main.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/client/main.c b/client/main.c
index 422da5593..dd8c28cb3 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1628,6 +1628,7 @@ static void cmd_info(int argc, char *argv[])
bt_shell_printf("Device %s\n", address);
}

+ print_property(proxy, "Types");
print_property(proxy, "Name");
print_property(proxy, "Alias");
print_property(proxy, "Class");
--
2.17.1

2020-05-21 18:10:51

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v2,3/3] client: Print device property "Types"


This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While we are preparing for reviewing the patches, we found the following
issue/warning.

Test Result:
checkgitlint Failed

Outputs:
3: B6 Body message is missing



---
Regards,
Linux Bluetooth