diff options
author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-05-28 14:02:24 +0000 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-05-28 14:02:24 +0000 |
commit | 9b38501d3e5ea36518eb6cea253a7ad5603b934d (patch) | |
tree | 150b82201468e2b372984f2edeb9292b0c72339d /hcid | |
parent | a1a1a2637ec9090c021dd83ed7707aabf5a8c0f4 (diff) |
Introduce ReleaseMode to Adapter interface.
Diffstat (limited to 'hcid')
-rw-r--r-- | hcid/adapter.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c index 9c70b0e9..00dbfee1 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -3795,6 +3795,27 @@ static DBusHandlerResult request_mode(DBusConnection *conn, return DBUS_HANDLER_RESULT_HANDLED; } +static DBusHandlerResult release_mode(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + struct adapter *adapter = data; + DBusMessage *reply; + GSList *l; + + l = g_slist_find_custom(adapter->sessions, msg, + (GCompareFunc) find_session); + if (!l) + return error_failed(conn, msg, "No Mode to release"); + + session_exit(dbus_message_get_sender(msg), l->data); + + reply = dbus_message_new_method_return(msg); + if (!reply) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + return send_message_and_unref(conn, reply); +} + static DBusHandlerResult list_devices(DBusConnection *conn, DBusMessage *msg, void *data) { @@ -4165,6 +4186,7 @@ static DBusMethodVTable adapter_methods[] = { { "GetProperties", get_properties, "", "a{sv}" }, { "SetProperty", set_property, "sv", "" }, { "RequestMode", request_mode, "s", "" }, + { "ReleaseMode", release_mode, "s", "" }, { "DiscoverDevices", adapter_discover_devices, "", "" }, { "CancelDiscovery", adapter_cancel_discovery, "", "" }, { "ListDevices", list_devices, "", "ao" }, |