diff options
author | Alex Blasche <alexander.blasche@theqtcompany.com> | 2016-06-10 13:10:59 +0200 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> | 2016-06-16 19:07:08 +0000 |
commit | cb0975669e136acf2bca30d75cc9ff94f9d778f2 (patch) | |
tree | 2c9c8687abe45ac832aae5d37fcabad5bce35dc0 /src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp | |
parent | 05a809736706db8536302e1588f81d7fa2eb93e6 (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.cpp | 11 |
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() |