summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2015-05-07 14:03:23 +0200
committerAlex Blasche <alexander.blasche@theqtcompany.com>2015-05-12 09:00:45 +0000
commit193ed20a9d6f4b65fdffd4d3c43d7824eb450089 (patch)
tree08f42394b5fbc9d8a18acff92cd122f3b96e6d32
parent26009d55b503e4bffbddf1f68530797ef81a1127 (diff)
Reduce platform specific code lines
QLEController(QBluetoothAddress) ctor is not usable on iOS and OSX. On those platforms we have to use QLECOntroller(QBluetoothDeviceInfo). We mark the QBluetoothAddress based ctors of QLEController obsolete and remove most uses of them. This cleans up some ifdefs throughout the QtBluetooth code base. Change-Id: Ibe1e3fa271a29461e39fc3c0eeba7a910a250077 Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
-rw-r--r--examples/bluetooth/heartlistener/heartrate.cpp10
-rw-r--r--examples/bluetooth/lowenergyscanner/device.cpp11
-rw-r--r--src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp4
-rw-r--r--src/bluetooth/qlowenergycontroller.cpp4
-rw-r--r--src/bluetooth/qlowenergycontroller.h4
-rw-r--r--tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp13
-rw-r--r--tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp98
7 files changed, 57 insertions, 87 deletions
diff --git a/examples/bluetooth/heartlistener/heartrate.cpp b/examples/bluetooth/heartlistener/heartrate.cpp
index b4496925..fe53a740 100644
--- a/examples/bluetooth/heartlistener/heartrate.cpp
+++ b/examples/bluetooth/heartlistener/heartrate.cpp
@@ -152,15 +152,7 @@ void HeartRate::connectToService(const QString &address)
}
//! [Connect signals]
-#ifdef Q_OS_MAC
- // with CoreBluetooth controller requires QBluetoothDeviceInfo to connect:
- m_control = new QLowEnergyController(m_currentDevice.getDevice(),
- this);
-
-#else
- m_control = new QLowEnergyController(m_currentDevice.getDevice().address(),
- this);
-#endif
+ m_control = new QLowEnergyController(m_currentDevice.getDevice(), this);
connect(m_control, SIGNAL(serviceDiscovered(QBluetoothUuid)),
this, SLOT(serviceDiscovered(QBluetoothUuid)));
connect(m_control, SIGNAL(discoveryFinished()),
diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp
index a95bc48b..5ef2cf76 100644
--- a/examples/bluetooth/lowenergyscanner/device.cpp
+++ b/examples/bluetooth/lowenergyscanner/device.cpp
@@ -158,12 +158,7 @@ void Device::scanServices(const QString &address)
setUpdate("Back\n(Connecting to device...)");
-#ifdef Q_OS_MAC
if (controller && m_previousAddress != currentDevice.getAddress()) {
- m_previousAddress = currentDevice.getAddress();
-#else
- if (controller && controller->remoteAddress() != currentDevice.getDevice().address()) {
-#endif
controller->disconnectFromDevice();
delete controller;
controller = 0;
@@ -172,11 +167,7 @@ void Device::scanServices(const QString &address)
//! [les-controller-1]
if (!controller) {
// Connecting signals and slots for connecting to LE services.
-#ifdef Q_OS_MAC
controller = new QLowEnergyController(currentDevice.getDevice());
-#else
- controller = new QLowEnergyController(currentDevice.getDevice().address());
-#endif
connect(controller, SIGNAL(connected()),
this, SLOT(deviceConnected()));
connect(controller, SIGNAL(error(QLowEnergyController::Error)),
@@ -195,6 +186,8 @@ void Device::scanServices(const QString &address)
controller->setRemoteAddressType(QLowEnergyController::PublicAddress);
controller->connectToDevice();
//! [les-controller-1]
+
+ m_previousAddress = currentDevice.getAddress();
}
void Device::addLowEnergyService(const QBluetoothUuid &serviceUuid)
diff --git a/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp b/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp
index 0c017e45..1eec9206 100644
--- a/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp
+++ b/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp
@@ -190,7 +190,7 @@ void MyClass::characteristicChanged(const QLowEnergyCharacteristic &, const QByt
void MyClass::btleSharedData()
{
- QBluetoothAddress remoteDevice;
+ QBluetoothDeviceInfo remoteDevice;
//! [data_share_qlowenergyservice]
QLowEnergyService *first, *second;
@@ -213,7 +213,7 @@ void MyClass::btleSharedData()
void MyClass::enableCharNotifications()
{
- QBluetoothAddress remoteDevice;
+ QBluetoothDeviceInfo remoteDevice;
QLowEnergyService *service;
QLowEnergyController *control = new QLowEnergyController(remoteDevice, this);
control->connectToDevice();
diff --git a/src/bluetooth/qlowenergycontroller.cpp b/src/bluetooth/qlowenergycontroller.cpp
index 0953ad5d..ee8ff180 100644
--- a/src/bluetooth/qlowenergycontroller.cpp
+++ b/src/bluetooth/qlowenergycontroller.cpp
@@ -385,6 +385,8 @@ quint16 QLowEnergyControllerPrivate::updateValueOfDescriptor(
The controller uses the local default Bluetooth adapter for
the connection management.
+
+ \obsolete
*/
QLowEnergyController::QLowEnergyController(
const QBluetoothAddress &remoteDevice,
@@ -435,6 +437,8 @@ QLowEnergyController::QLowEnergyController(
\a localDevice specifies a local device that is not a local Bluetooth
adapter, \l error() is set to \l InvalidBluetoothAdapterError once
\l connectToDevice() is called.
+
+ \obsolete
*/
QLowEnergyController::QLowEnergyController(
const QBluetoothAddress &remoteDevice,
diff --git a/src/bluetooth/qlowenergycontroller.h b/src/bluetooth/qlowenergycontroller.h
index f3a6603e..c5a4acd3 100644
--- a/src/bluetooth/qlowenergycontroller.h
+++ b/src/bluetooth/qlowenergycontroller.h
@@ -71,12 +71,12 @@ public:
};
explicit QLowEnergyController(const QBluetoothAddress &remoteDevice,
- QObject *parent = 0);
+ QObject *parent = 0); // TODO Qt 6 remove ctor
explicit QLowEnergyController(const QBluetoothDeviceInfo &remoteDevice,
QObject *parent = 0);
explicit QLowEnergyController(const QBluetoothAddress &remoteDevice,
const QBluetoothAddress &localDevice,
- QObject *parent = 0);
+ QObject *parent = 0); // TODO Qt 6 remove ctor
~QLowEnergyController();
QBluetoothAddress localAddress() const;
diff --git a/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp b/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
index ffed9f6f..de77046e 100644
--- a/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
+++ b/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
@@ -75,7 +75,7 @@ private slots:
void tst_assignCompare();
private:
- QSet<QString> remoteLeDevices;
+ QList<QBluetoothDeviceInfo> remoteLeDevices;
QLowEnergyController *globalControl;
QLowEnergyService *globalService;
};
@@ -121,9 +121,10 @@ void tst_QLowEnergyCharacteristic::initTestCase()
// find first service with descriptor
QLowEnergyController *controller = 0;
- foreach (const QString &remoteDevice, remoteLeDevices.toList()) {
- controller = new QLowEnergyController(QBluetoothAddress(remoteDevice), this);
- qDebug() << "Connecting to" << remoteDevice;
+ foreach (const QBluetoothDeviceInfo &remoteDevice, remoteLeDevices) {
+ controller = new QLowEnergyController(remoteDevice, this);
+ qDebug() << "Connecting to" << remoteDevice.name()
+ << remoteDevice.address() << remoteDevice.deviceUuid();
controller->connectToDevice();
QTRY_IMPL(controller->state() != QLowEnergyController::ConnectingState,
20000);
@@ -158,7 +159,7 @@ void tst_QLowEnergyCharacteristic::initTestCase()
if (!ch.descriptors().isEmpty()) {
globalService = leService;
globalControl = controller;
- qWarning() << "Found service with descriptor" << remoteDevice
+ qWarning() << "Found service with descriptor" << remoteDevice.address()
<< globalService->serviceName() << globalService->serviceUuid();
break;
}
@@ -191,7 +192,7 @@ void tst_QLowEnergyCharacteristic::cleanupTestCase()
void tst_QLowEnergyCharacteristic::deviceDiscovered(const QBluetoothDeviceInfo &info)
{
if (info.coreConfigurations() & QBluetoothDeviceInfo::LowEnergyCoreConfiguration)
- remoteLeDevices.insert(info.address().toString());
+ remoteLeDevices.append(info);
}
void tst_QLowEnergyCharacteristic::tst_constructionDefault()
diff --git a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
index 5faf5fee..50ecc099 100644
--- a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
+++ b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
@@ -156,8 +156,8 @@ void tst_QLowEnergyController::initTestCase()
// On OS X/iOS the only way to find the device we are
// interested in - is to use device's name.
if (info.name().contains("Sensor") && info.name().contains("Tag")) {
- remoteDeviceInfo = info;
#endif
+ remoteDeviceInfo = info;
deviceFound = true;
break;
}
@@ -249,31 +249,23 @@ void tst_QLowEnergyController::tst_connect()
{
QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices();
-#ifndef Q_OS_MAC
- if (localAdapters.isEmpty() || remoteDevice.isNull())
-#elif defined(Q_OS_OSX)
- if (localAdapters.isEmpty() || remoteDeviceInfo.deviceUuid().isNull())
-#elif defined (Q_OS_IOS)
- if (remoteDeviceInfo.deviceUuid().isNull())
+#ifdef Q_OS_IOS
+ if (remoteDeviceInfo.isValid())
+#else
+ if (localAdapters.isEmpty() || !remoteDeviceInfo.isValid())
#endif
QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
-#ifndef Q_OS_IOS
- const QBluetoothAddress localAdapter = localAdapters.at(0).address();
-#endif
-
-#ifndef Q_OS_MAC
- QLowEnergyController control(remoteDevice);
-#else
- // Create a low energy controller using Apple's
- // uuid (NSUUID).
QLowEnergyController control(remoteDeviceInfo);
-#endif
-
QSignalSpy connectedSpy(&control, SIGNAL(connected()));
QSignalSpy disconnectedSpy(&control, SIGNAL(disconnected()));
+ if (remoteDeviceInfo.name().isEmpty())
+ QVERIFY(control.remoteName().isEmpty());
+ else
+ QCOMPARE(control.remoteName(), remoteDeviceInfo.name());
#ifndef Q_OS_IOS
+ const QBluetoothAddress localAdapter = localAdapters.at(0).address();
QCOMPARE(control.localAddress(), localAdapter);
QVERIFY(!control.localAddress().isNull());
#endif
@@ -417,16 +409,14 @@ void tst_QLowEnergyController::tst_concurrentDiscovery()
{
#ifndef Q_OS_MAC
QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices();
- if (localAdapters.isEmpty() || remoteDevice.isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
+ if (localAdapters.isEmpty())
+ QSKIP("No local Bluetooth device found. Skipping test.");
+#endif
- // quick setup - more elaborate test is done by connectNew()
- QLowEnergyController control(remoteDevice);
-#else
- if (remoteDeviceInfo.deviceUuid().isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
+ if (!remoteDeviceInfo.isValid())
+ QSKIP("No remote BTLE device found. Skipping test.");
QLowEnergyController control(remoteDeviceInfo);
-#endif
+
QCOMPARE(control.state(), QLowEnergyController::UnconnectedState);
QCOMPARE(control.error(), QLowEnergyController::NoError);
@@ -1659,16 +1649,13 @@ void tst_QLowEnergyController::tst_writeCharacteristic()
{
#ifndef Q_OS_MAC
QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices();
- if (localAdapters.isEmpty() || remoteDevice.isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
+ if (localAdapters.isEmpty())
+ QSKIP("No local Bluetooth device found. Skipping test.");
+#endif
- // quick setup - more elaborate test is done by connect()
- QLowEnergyController control(remoteDevice);
-#else
- if (remoteDeviceInfo.deviceUuid().isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
+ if (!remoteDeviceInfo.isValid())
+ QSKIP("No remote BTLE device found. Skipping test.");
QLowEnergyController control(remoteDeviceInfo);
-#endif
QCOMPARE(control.error(), QLowEnergyController::NoError);
@@ -1836,14 +1823,14 @@ void tst_QLowEnergyController::tst_readWriteDescriptor()
{
#ifndef Q_OS_MAC
QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices();
- if (localAdapters.isEmpty() || remoteDevice.isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
- QLowEnergyController control(remoteDevice);
-#else
- if (remoteDeviceInfo.deviceUuid().isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
- QLowEnergyController control(remoteDeviceInfo);
+ if (localAdapters.isEmpty())
+ QSKIP("No local Bluetooth device found. Skipping test.");
#endif
+
+ if (!remoteDeviceInfo.isValid())
+ QSKIP("No remote BTLE device found. Skipping test.");
+ QLowEnergyController control(remoteDeviceInfo);
+
// quick setup - more elaborate test is done by connect()
control.connectToDevice();
{
@@ -2259,17 +2246,13 @@ void tst_QLowEnergyController::tst_errorCases()
{
#ifndef Q_OS_MAC
QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices();
- if (localAdapters.isEmpty() || remoteDevice.isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
-
- // quick setup - more elaborate test is done by connect()
- QLowEnergyController control(remoteDevice);
-#else
- if (remoteDeviceInfo.deviceUuid().isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
+ if (localAdapters.isEmpty())
+ QSKIP("No local Bluetooth device found. Skipping test.");
+#endif
+ if (!remoteDeviceInfo.isValid())
+ QSKIP("No remote BTLE device found. Skipping test.");
QLowEnergyController control(remoteDeviceInfo);
-#endif
QCOMPARE(control.error(), QLowEnergyController::NoError);
control.connectToDevice();
@@ -2485,17 +2468,14 @@ void tst_QLowEnergyController::tst_writeCharacteristicNoResponse()
{
#ifndef Q_OS_MAC
QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices();
- if (localAdapters.isEmpty() || remoteDevice.isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
-
- // quick setup - more elaborate test is done by connect()
- QLowEnergyController control(remoteDevice);
-#else
- if (remoteDeviceInfo.deviceUuid().isNull())
- QSKIP("No local Bluetooth or remote BTLE device found. Skipping test.");
+ if (localAdapters.isEmpty())
+ QSKIP("No local Bluetooth device found. Skipping test.");
+#endif
+ if (!remoteDeviceInfo.isValid())
+ QSKIP("No remote BTLE device found. Skipping test.");
QLowEnergyController control(remoteDeviceInfo);
-#endif
+
QCOMPARE(control.error(), QLowEnergyController::NoError);
control.connectToDevice();