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 | |
| parent | a1a1a2637ec9090c021dd83ed7707aabf5a8c0f4 (diff) | |
Introduce ReleaseMode to Adapter interface.
| -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"	}, | 
