Add method to return Heart Rate Service properties. --- profiles/heartrate/heartrate.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/profiles/heartrate/heartrate.c b/profiles/heartrate/heartrate.c index a11733c..cfc2ee0 100644 --- a/profiles/heartrate/heartrate.c +++ b/profiles/heartrate/heartrate.c @@ -239,6 +239,33 @@ static struct descriptor *get_descriptor(struct characteristic *ch, return l->data; } +static DBusMessage *get_properties(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + struct heartrate *hr = data; + DBusMessageIter iter; + DBusMessageIter dict; + DBusMessage *reply; + + reply = dbus_message_new_method_return(msg); + if (reply == NULL) + return NULL; + + dbus_message_iter_init_append(reply, &iter); + + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, + DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING + DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING + DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict); + + dict_append_entry(&dict, "ResetSupported", DBUS_TYPE_BOOLEAN, + &hr->cp_reset); + + dbus_message_iter_close_container(&iter, &dict); + + return reply; +} + static void measurement_cb(guint8 status, const guint8 *pdu, guint16 len, gpointer user_data) { @@ -414,6 +441,9 @@ static DBusMessage *control_point_reset(DBusConnection *conn, DBusMessage *msg, } static const GDBusMethodTable heartrate_methods[] = { + { GDBUS_METHOD("GetProperties", + NULL, GDBUS_ARGS({ "properties", "a{sv}" }), + get_properties) }, { GDBUS_METHOD("RegisterWatcher", GDBUS_ARGS({ "agent", "o" }), NULL, watcher_register) }, -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html