diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2014-05-26 14:56:49 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@digia.com> | 2014-05-26 14:56:49 +0200 |
commit | f334ea4b196950c4074e7513626aabeef3d99d7f (patch) | |
tree | ccb07d59afbb60a92b80a061645c8013aab9b96c /src/bluetooth/qbluetoothservicediscoveryagent.cpp | |
parent | 3910d9ffcc11db7b3beb7f2b6f0c1754103cfacb (diff) | |
parent | 552f1a164d627720942414915fb56ae7d3b7ef22 (diff) |
Merge branch 'dev' into btle
Conflicts:
examples/bluetooth/bluetooth.pro
src/bluetooth/bluez/bluez.pri
src/bluetooth/doc/src/bluetooth-index.qdoc
src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
src/bluetooth/qbluetoothdeviceinfo.cpp
src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
src/bluetooth/qbluetoothservicediscoveryagent_p.h
src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp
Change-Id: I88b22c51a4ee95b067ef8d2b2fddb5cbff4566f8
Diffstat (limited to 'src/bluetooth/qbluetoothservicediscoveryagent.cpp')
-rw-r--r-- | src/bluetooth/qbluetoothservicediscoveryagent.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent.cpp b/src/bluetooth/qbluetoothservicediscoveryagent.cpp index 615d0f4a..1d8809a8 100644 --- a/src/bluetooth/qbluetoothservicediscoveryagent.cpp +++ b/src/bluetooth/qbluetoothservicediscoveryagent.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtBluetooth module of the Qt Toolkit. @@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE \li and call start(). \endlist - \snippet doc_src_qtbluetooth.cpp discovery + \snippet doc_src_qtbluetooth.cpp service_discovery By default a minimal service discovery is performed. In this mode, the QBluetotohServiceInfo objects returned are guaranteed to contain only device and service UUID information. Depending @@ -178,6 +178,8 @@ QBluetoothServiceDiscoveryAgent::~QBluetoothServiceDiscoveryAgent() that if a remote Bluetooth device moves out of range in between two subsequent calls to \l start() the list may contain stale entries. + \note The list of services should always be cleared before the discovery mode is changed. + \sa clear() */ QList<QBluetoothServiceInfo> QBluetoothServiceDiscoveryAgent::discoveredServices() const @@ -276,6 +278,11 @@ void QBluetoothServiceDiscoveryAgent::start(DiscoveryMode mode) if (d->discoveryState() == QBluetoothServiceDiscoveryAgentPrivate::Inactive && d->error != InvalidBluetoothAdapterError) { +#ifdef QT_BLUEZ_BLUETOOTH + // done to avoid repeated parsing for adapter address + // on Bluez5 + d->foundHostAdapterPath.clear(); +#endif d->setDiscoveryMode(mode); if (d->deviceAddress.isNull()) { d->startDeviceDiscovery(); @@ -501,6 +508,21 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_serviceDiscoveryFinished() startServiceDiscovery(); } +bool QBluetoothServiceDiscoveryAgentPrivate::isDuplicatedService( + const QBluetoothServiceInfo &serviceInfo) const +{ + //check the service is not already part of our known list + for (int j = 0; j < discoveredServices.count(); j++) { + const QBluetoothServiceInfo &info = discoveredServices.at(j); + if (info.device() == serviceInfo.device() + && info.serviceClassUuids() == serviceInfo.serviceClassUuids() + && info.serviceUuid() == serviceInfo.serviceUuid()) { + return true; + } + } + return false; +} + #include "moc_qbluetoothservicediscoveryagent.cpp" QT_END_NAMESPACE |