summaryrefslogtreecommitdiffstats
path: root/hcid
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-08-09 20:10:50 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-08-09 20:10:50 +0000
commitec41b23f528dc5b65ea405f1edda3bffd802f372 (patch)
treedceec34d496c63ccd6ea2242b72f39ed151d891d /hcid
parent47e47d4cfe1ef4f2f5faef19c11618d929cd3f9a (diff)
Add GetRemoteClass method
Diffstat (limited to 'hcid')
-rw-r--r--hcid/dbus-adapter.c33
-rw-r--r--hcid/dbus-api.txt8
-rwxr-xr-xhcid/dbus-test3
3 files changed, 33 insertions, 11 deletions
diff --git a/hcid/dbus-adapter.c b/hcid/dbus-adapter.c
index 01cd3886..382eaa5a 100644
--- a/hcid/dbus-adapter.c
+++ b/hcid/dbus-adapter.c
@@ -204,7 +204,7 @@ static int check_address(const char *addr)
static struct bonding_request_info *bonding_request_new(bdaddr_t *peer)
{
struct bonding_request_info *bonding;
-
+
bonding = malloc(sizeof(*bonding));
if (!bonding)
@@ -1194,9 +1194,7 @@ static int get_remote_class(DBusConnection *conn, DBusMessage *msg, void *data,
return 0;
}
-static DBusHandlerResult handle_dev_get_remote_major_class_req(DBusConnection *conn,
- DBusMessage *msg,
- void *data)
+static DBusHandlerResult handle_dev_get_remote_major_class_req(DBusConnection *conn, DBusMessage *msg, void *data)
{
DBusMessage *reply;
const char *major_class;
@@ -1217,9 +1215,7 @@ static DBusHandlerResult handle_dev_get_remote_major_class_req(DBusConnection *c
return send_reply_and_unref(conn, reply);
}
-static DBusHandlerResult handle_dev_get_remote_minor_class_req(DBusConnection *conn,
- DBusMessage *msg,
- void *data)
+static DBusHandlerResult handle_dev_get_remote_minor_class_req(DBusConnection *conn, DBusMessage *msg, void *data)
{
DBusMessage *reply;
const char *major_class;
@@ -1245,9 +1241,7 @@ static void append_class_string(const char *class, DBusMessageIter *iter)
dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &class);
}
-static DBusHandlerResult handle_dev_get_remote_service_cls_req(DBusConnection *conn,
- DBusMessage *msg,
- void *data)
+static DBusHandlerResult handle_dev_get_remote_service_cls_req(DBusConnection *conn, DBusMessage *msg, void *data)
{
DBusMessage *reply;
DBusMessageIter iter, array_iter;
@@ -1276,6 +1270,24 @@ static DBusHandlerResult handle_dev_get_remote_service_cls_req(DBusConnection *c
return send_reply_and_unref(conn, reply);
}
+static DBusHandlerResult handle_dev_get_remote_class_req(DBusConnection *conn, DBusMessage *msg, void *data)
+{
+ DBusMessage *reply;
+ uint32_t class;
+
+ if (get_remote_class(conn, msg, data, &class) < 0)
+ return DBUS_HANDLER_RESULT_HANDLED;
+
+ reply = dbus_message_new_method_return(msg);
+ if (!reply)
+ return DBUS_HANDLER_RESULT_NEED_MEMORY;
+
+ dbus_message_append_args(reply, DBUS_TYPE_UINT32, &class,
+ DBUS_TYPE_INVALID);
+
+ return send_reply_and_unref(conn, reply);
+}
+
static DBusHandlerResult handle_dev_get_remote_name_req(DBusConnection *conn, DBusMessage *msg, void *data)
{
char filename[PATH_MAX + 1];
@@ -2333,6 +2345,7 @@ static struct service_data dev_services[] = {
{ "GetRemoteMajorClass", handle_dev_get_remote_major_class_req },
{ "GetRemoteMinorClass", handle_dev_get_remote_minor_class_req },
{ "GetRemoteServiceClasses", handle_dev_get_remote_service_cls_req },
+ { "GetRemoteClass", handle_dev_get_remote_class_req },
{ "GetRemoteName", handle_dev_get_remote_name_req },
{ "GetRemoteAlias", handle_dev_get_remote_alias_req },
{ "SetRemoteAlias", handle_dev_set_remote_alias_req },
diff --git a/hcid/dbus-api.txt b/hcid/dbus-api.txt
index 3e28ad7a..2fdd045e 100644
--- a/hcid/dbus-api.txt
+++ b/hcid/dbus-api.txt
@@ -461,6 +461,14 @@ Methods string GetAddress()
Possible errors: org.bluez.Error.InvalidArguments
org.bluez.Error.NotAvailable
+ uint32 GetRemoteClass(string address)
+
+ Get the remote major, minor, and service classes
+ encoded as 32 bit integer.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.NotAvailable
+
string GetRemoteName(string address)
Get adapter name for a remote device. This request
diff --git a/hcid/dbus-test b/hcid/dbus-test
index 7e8429f1..83988896 100755
--- a/hcid/dbus-test
+++ b/hcid/dbus-test
@@ -35,10 +35,11 @@ dev_cmds = [ "GetAddress",
"GetRemoteRevision",
"GetRemoteManufacturer",
"GetRemoteCompany",
- "GetRemoteName",
"GetRemoteMajorClass",
"GetRemoteMinorClass",
"GetRemoteServiceClasses",
+ "GetRemoteClass",
+ "GetRemoteName",
"GetRemoteAlias",
"SetRemoteAlias",
"ClearRemoteAlias",