summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2016-06-10 13:10:59 +0200
committerTimur Pocheptsov <timur.pocheptsov@theqtcompany.com>2016-06-16 19:07:08 +0000
commitcb0975669e136acf2bca30d75cc9ff94f9d778f2 (patch)
tree2c9c8687abe45ac832aae5d37fcabad5bce35dc0 /src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
parent05a809736706db8536302e1588f81d7fa2eb93e6 (diff)
Allow adjustment of device search timeout on BlueZ
BlueZ 4 does not support timed device search as the relevant API comes back on its own. BlueZ 5 already had such a timer which we just connect to the new API elements. Task-number: QTBUG-53012 Change-Id: Id23fb31aca97932b6a898687fda0970e7d58d95f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Diffstat (limited to 'src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp')
-rw-r--r--src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
index add6624d..43f5ce1d 100644
--- a/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
+++ b/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
@@ -68,11 +68,12 @@ QBluetoothDeviceDiscoveryAgentPrivate::QBluetoothDeviceDiscoveryAgentPrivate(
adapterBluez5(0),
discoveryTimer(0),
useExtendedDiscovery(false),
- lowEnergySearchTimeout(-1), //TODO change when implemented
+ lowEnergySearchTimeout(-1), // remains -1 on BlueZ 4 -> timeout not supported
q_ptr(parent)
{
Q_Q(QBluetoothDeviceDiscoveryAgent);
if (isBluez5()) {
+ lowEnergySearchTimeout = 20000;
managerBluez5 = new OrgFreedesktopDBusObjectManagerInterface(
QStringLiteral("org.bluez"),
QStringLiteral("/"),
@@ -274,16 +275,18 @@ void QBluetoothDeviceDiscoveryAgentPrivate::startBluez5()
}
}
- // wait 20s and sum up what was found
+ // wait interval and sum up what was found
if (!discoveryTimer) {
discoveryTimer = new QTimer(q);
discoveryTimer->setSingleShot(true);
- discoveryTimer->setInterval(20000); // 20s
QObject::connect(discoveryTimer, SIGNAL(timeout()),
q, SLOT(_q_discoveryFinished()));
}
- discoveryTimer->start();
+ if (lowEnergySearchTimeout > 0) { // otherwise no timeout and stop() required
+ discoveryTimer->setInterval(lowEnergySearchTimeout);
+ discoveryTimer->start();
+ }
}
void QBluetoothDeviceDiscoveryAgentPrivate::stop()