diff options
author | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-05-07 14:03:23 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-05-12 09:00:45 +0000 |
commit | 193ed20a9d6f4b65fdffd4d3c43d7824eb450089 (patch) | |
tree | 08f42394b5fbc9d8a18acff92cd122f3b96e6d32 | |
parent | 26009d55b503e4bffbddf1f68530797ef81a1127 (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.cpp | 10 | ||||
-rw-r--r-- | examples/bluetooth/lowenergyscanner/device.cpp | 11 | ||||
-rw-r--r-- | src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp | 4 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.cpp | 4 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.h | 4 | ||||
-rw-r--r-- | tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp | 13 | ||||
-rw-r--r-- | tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp | 98 |
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(); |