From 772f25e26e1d1c5982855eefd59b51c7e4aaab95 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 14 May 2007 12:22:52 +0000 Subject: Add GetAdapter() method to retrieve the source address --- input/device.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'input/device.c') diff --git a/input/device.c b/input/device.c index d9f95c4e..d85aae55 100644 --- a/input/device.c +++ b/input/device.c @@ -850,6 +850,27 @@ static DBusHandlerResult device_is_connected(DBusConnection *conn, return send_message_and_unref(conn, reply); } +static DBusHandlerResult device_get_adapter(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + struct device *idev = data; + DBusMessage *reply; + char addr[18]; + const char *paddr = addr; + + ba2str(&idev->src, addr); + + reply = dbus_message_new_method_return(msg); + if (!reply) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + dbus_message_append_args(reply, + DBUS_TYPE_STRING, &paddr, + DBUS_TYPE_INVALID); + + return send_message_and_unref(conn, reply); +} + static DBusHandlerResult device_get_address(DBusConnection *conn, DBusMessage *msg, void *data) { @@ -936,6 +957,7 @@ static DBusMethodVTable device_methods[] = { { "Connect", device_connect, "", "" }, { "Disconnect", device_disconnect, "", "" }, { "IsConnected", device_is_connected, "", "b" }, + { "GetAdapter", device_get_adapter, "", "s" }, { "GetAddress", device_get_address, "", "s" }, { "GetName", device_get_name, "", "s" }, { "GetProductId", device_get_product_id, "", "q" }, -- cgit