summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-device.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-02-15 17:44:38 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-02-15 17:44:38 +0000
commit02a10419b26c297a81dcfb2404e65e92a0d359a9 (patch)
tree894538da31be2aff499826d7ae7a782f1d9aa27d /hcid/dbus-device.c
parent5dc0ed851328becdf700a81c2408d15704407048 (diff)
Add support for discoverable timeout setting
Diffstat (limited to 'hcid/dbus-device.c')
-rw-r--r--hcid/dbus-device.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/hcid/dbus-device.c b/hcid/dbus-device.c
index 94bb8091..9c3ae207 100644
--- a/hcid/dbus-device.c
+++ b/hcid/dbus-device.c
@@ -248,15 +248,22 @@ static DBusMessage* handle_dev_set_alias_req(DBusMessage *msg, void *data)
static DBusMessage* handle_dev_get_discoverable_to_req(DBusMessage *msg, void *data)
{
- /*FIXME: */
- return bluez_new_failure_msg(msg, BLUEZ_EDBUS_NOT_IMPLEMENTED);
+ const struct hci_dbus_data *dbus_data = data;
+ DBusMessage *reply = NULL;
+
+ reply = dbus_message_new_method_return(msg);
+
+ dbus_message_append_args(reply, DBUS_TYPE_UINT32, &dbus_data->discoverable_timeout,
+ DBUS_TYPE_INVALID);
+
+ return reply;
}
static DBusMessage* handle_dev_get_mode_req(DBusMessage *msg, void *data)
{
const struct hci_dbus_data *dbus_data = data;
DBusMessage *reply = NULL;
- const uint8_t hci_mode = dbus_data->path_data;
+ const uint8_t hci_mode = dbus_data->mode;
const char *scan_mode;
switch (hci_mode) {
@@ -288,7 +295,7 @@ static DBusMessage* handle_dev_is_connectable_req(DBusMessage *msg, void *data)
{
const struct hci_dbus_data *dbus_data = data;
DBusMessage *reply = NULL;
- const uint8_t hci_mode = dbus_data->path_data;
+ const uint8_t hci_mode = dbus_data->mode;
dbus_bool_t connectable = FALSE;
if (hci_mode & SCAN_PAGE)
@@ -306,7 +313,7 @@ static DBusMessage* handle_dev_is_discoverable_req(DBusMessage *msg, void *data)
{
const struct hci_dbus_data *dbus_data = data;
DBusMessage *reply = NULL;
- const uint8_t hci_mode = dbus_data->path_data;
+ const uint8_t hci_mode = dbus_data->mode;
dbus_bool_t discoverable = FALSE;
if (hci_mode & SCAN_INQUIRY)
@@ -328,8 +335,19 @@ static DBusMessage* handle_dev_set_class_req(DBusMessage *msg, void *data)
static DBusMessage* handle_dev_set_discoverable_to_req(DBusMessage *msg, void *data)
{
- /*FIXME: */
- return bluez_new_failure_msg(msg, BLUEZ_EDBUS_NOT_IMPLEMENTED);
+ struct hci_dbus_data *dbus_data = data;
+ DBusMessage *reply = NULL;
+ DBusMessageIter iter;
+ uint32_t timeout;
+
+ dbus_message_iter_init(msg, &iter);
+ dbus_message_iter_get_basic(&iter, &timeout);
+
+ dbus_data->discoverable_timeout = timeout;
+
+ reply = dbus_message_new_method_return(msg);
+
+ return reply;
}
static DBusMessage* handle_dev_set_mode_req(DBusMessage *msg, void *data)
@@ -341,7 +359,7 @@ static DBusMessage* handle_dev_set_mode_req(DBusMessage *msg, void *data)
const char* scan_mode;
uint8_t hci_mode;
uint8_t status = 0;
- const uint8_t current_mode = dbus_data->path_data;
+ const uint8_t current_mode = dbus_data->mode;
dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &scan_mode,