summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@gmail.com>2013-11-25 22:15:51 +0000
committerJohan Hedberg <johan.hedberg@intel.com>2013-11-27 11:29:31 +0200
commit7c6acd4cad31994c5a4b3ba623f6d9eb39304ca2 (patch)
tree0180a93a6fa76c74be165834f0e93c3f03adb79d /src
parent8b9bd382ec06ff8c6966ccf1b090ce566e2824b0 (diff)
device: Add device_discover_services function
This will allow to query remote services from plugins for not yet discovered devices.
Diffstat (limited to 'src')
-rw-r--r--src/device.c17
-rw-r--r--src/device.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/src/device.c b/src/device.c
index 4e952c5b4..847ffad5b 100644
--- a/src/device.c
+++ b/src/device.c
@@ -3524,6 +3524,23 @@ static int device_browse_sdp(struct btd_device *device, DBusMessage *msg)
return err;
}
+int device_discover_services(struct btd_device *device)
+{
+ int err;
+
+ if (device_is_bredr(device))
+ err = device_browse_sdp(device, NULL);
+ else
+ err = device_browse_primary(device, NULL);
+
+ if (err == 0 && device->discov_timer) {
+ g_source_remove(device->discov_timer);
+ device->discov_timer = 0;
+ }
+
+ return err;
+}
+
struct btd_adapter *device_get_adapter(struct btd_device *device)
{
if (!device)
diff --git a/src/device.h b/src/device.h
index a0d25fedb..c3fea4ab7 100644
--- a/src/device.h
+++ b/src/device.h
@@ -131,5 +131,7 @@ bool device_remove_svc_complete_callback(struct btd_device *dev,
struct btd_service *btd_device_get_service(struct btd_device *dev,
const char *remote_uuid);
+int device_discover_services(struct btd_device *device);
+
void btd_device_init(void);
void btd_device_cleanup(void);