diff --git a/doc/advertising-api.txt b/doc/advertising-api.txt
index 4daa30b..a8a738c 100644
--- a/doc/advertising-api.txt
+++ b/doc/advertising-api.txt
Possible errors: org.bluez.Error.InvalidArguments
org.bluez.Error.DoesNotExist
-Properties byte SupportedInstances
+Properties byte ActiveInstances
+
+ Number of active advertising instances.
+
+ byte SupportedInstances
Number of available advertising instances.
diff --git a/src/advertising.c b/src/advertising.c
index f92d5d3..0d3487c 100644
--- a/src/advertising.c
+++ b/src/advertising.c
g_dbus_emit_property_changed(btd_get_dbus_connection(),
adapter_get_path(client->manager->adapter),
LE_ADVERTISING_MGR_IFACE, "SupportedInstances");
+
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ adapter_get_path(client->manager->adapter),
+ LE_ADVERTISING_MGR_IFACE, "ActiveInstances");
}
static void client_disconnect_cb(DBusConnection *conn, void *user_data)
adapter_get_path(client->manager->adapter),
LE_ADVERTISING_MGR_IFACE, "SupportedInstances");
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ adapter_get_path(client->manager->adapter),
+ LE_ADVERTISING_MGR_IFACE, "ActiveInstances");
+
done:
add_client_complete(client, status);
}
return TRUE;
}
+static gboolean get_active_instances(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct btd_adv_manager *manager = data;
+ uint8_t instances;
+
+ instances = queue_length(manager->clients);
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_BYTE, &instances);
+
+ return TRUE;
+}
+
static const GDBusPropertyTable properties[] = {
+ { "ActiveInstances", "y", get_active_instances, NULL, NULL,
+ G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
{ "SupportedInstances", "y", get_instances, NULL, NULL,
G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+ { }
};
static const GDBusMethodTable methods[] = {