diff options
-rw-r--r-- | hcid/device.c | 47 |
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, |