summaryrefslogtreecommitdiffstats
path: root/hcid
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-06-08 16:52:11 +0000
committerMarcel Holtmann <marcel@holtmann.org>2008-06-08 16:52:11 +0000
commit94c199911b1dc1395a8025647f0686f58e6bf4f6 (patch)
tree2fe0b076fa370f2d174854da0d2d657751264b18 /hcid
parent24d6b3d375b51044e0185c52a1ea172774a0ec47 (diff)
Add the missing device API calls
Diffstat (limited to 'hcid')
-rw-r--r--hcid/device.c47
1 files changed, 37 insertions, 10 deletions
diff --git a/hcid/device.c b/hcid/device.c
index 8cd0c131..65ed8ab4 100644
--- a/hcid/device.c
+++ b/hcid/device.c
@@ -766,12 +766,6 @@ static void device_free(gpointer user_data)
g_free(device);
}
-static DBusMessage *disconnect(DBusConnection *conn,
- DBusMessage *msg, void *user_data)
-{
- return dbus_message_new_method_return(msg);
-}
-
static gboolean device_is_paired(struct device *device)
{
struct adapter *adapter = device->adapter;
@@ -1014,17 +1008,50 @@ static DBusMessage *set_property(DBusConnection *conn,
return invalid_args(msg);
}
+static DBusMessage *discover_services(DBusConnection *conn,
+ DBusMessage *msg, void *user_data)
+{
+ const char *pattern;
+
+ if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &pattern,
+ DBUS_TYPE_INVALID) == FALSE)
+ return NULL;
+
+ /* FIXME start service discovery */
+
+ return NULL;
+}
+
+static DBusMessage *cancel_discover(DBusConnection *conn,
+ DBusMessage *msg, void *user_data)
+{
+ /* FIXME cancel discovery */
+
+ return dbus_message_new_method_return(msg);
+}
+
+static DBusMessage *disconnect(DBusConnection *conn,
+ DBusMessage *msg, void *user_data)
+{
+ /* FIXME disconnect device */
+
+ return dbus_message_new_method_return(msg);
+}
+
static GDBusMethodTable device_methods[] = {
{ "GetProperties", "", "a{sv}", get_properties },
{ "SetProperty", "sv", "", set_property },
+ { "DiscoverServices", "s", "a{sv}", discover_services,
+ G_DBUS_METHOD_FLAG_ASYNC},
+ { "CancelDiscovery", "", "", cancel_discover },
{ "Disconnect", "", "", disconnect },
- { NULL, NULL, NULL, NULL }
+ { }
};
static GDBusSignalTable device_signals[] = {
- { "PropertyChanged", "sv" },
- { "DisconnectRequested", "" },
- { NULL, NULL }
+ { "PropertyChanged", "sv" },
+ { "DisconnectRequested", "" },
+ { }
};
struct device *device_create(DBusConnection *conn, struct adapter *adapter,