summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2018-03-07 15:05:03 +0100
committerAlex Blasche <alexander.blasche@qt.io>2018-03-08 15:51:38 +0000
commit24a07f0a94a0ac036866c18ef415f06dd1fb8bbe (patch)
tree990ede1194ddf315f33fb472cf3537f26e2eb976
parent0a97e6cd908995699793b8513d3c7ef8020c2e32 (diff)
Enable new DBus LE backed for central role use casesv5.11.0-beta2
The manual override env variable was renamed. The new name is more fitting for the use case. Task-number: QTBUG-46819 Task-number: QTBUG-66908 Change-Id: I9202ebf3f847d5c7dcc9e3c84b060b35343dd2fd Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
-rw-r--r--src/bluetooth/bluez/bluez5_helper.cpp5
-rw-r--r--src/bluetooth/qlowenergycontroller.cpp16
2 files changed, 12 insertions, 9 deletions
diff --git a/src/bluetooth/bluez/bluez5_helper.cpp b/src/bluetooth/bluez/bluez5_helper.cpp
index 90b7e5e0..f798088e 100644
--- a/src/bluetooth/bluez/bluez5_helper.cpp
+++ b/src/bluetooth/bluez/bluez5_helper.cpp
@@ -197,8 +197,9 @@ QVersionNumber bluetoothdVersion()
if (bluezDaemonVersion()->isNull()) {
qCDebug(QT_BT_BLUEZ) << "Detecting bluetoothd version";
//Order of matching
- // 1. Pick whatever the user decides via BLUETOOTH_USE_BLUEZ_DBUS_LE
- const QString version = qEnvironmentVariable("BLUETOOTH_USE_BLUEZ_DBUS_LE");
+ // 1. Pick whatever the user decides via BLUETOOTH_FORCE_DBUS_LE_VERSION
+ // Set version to below version 5.42 to use custom/old GATT stack implementation
+ const QString version = qEnvironmentVariable("BLUETOOTH_FORCE_DBUS_LE_VERSION");
if (!version.isNull()) {
const QVersionNumber vn = QVersionNumber::fromString(version);
if (!vn.isNull()) {
diff --git a/src/bluetooth/qlowenergycontroller.cpp b/src/bluetooth/qlowenergycontroller.cpp
index 3be1aed3..caa6c3fa 100644
--- a/src/bluetooth/qlowenergycontroller.cpp
+++ b/src/bluetooth/qlowenergycontroller.cpp
@@ -292,11 +292,13 @@ void registerQLowEnergyControllerMetaType()
}
}
-static QLowEnergyControllerPrivate *privateController()
+static QLowEnergyControllerPrivate *privateController(QLowEnergyController::Role role)
{
#if QT_CONFIG(bluez) && !defined(QT_BLUEZ_NO_BTLE)
- // for now Bluez DBus disabled
- if (false && bluetoothdVersion() >= QVersionNumber(5, 42)) {
+ // The new DBUS implementation only supports Central role for now
+ // For Peripheral role support see QTBUG-66909
+ if (role == QLowEnergyController::CentralRole
+ && bluetoothdVersion() >= QVersionNumber(5, 42)) {
qCWarning(QT_BT) << "Using BlueZ LE DBus API";
return new QLowEnergyControllerPrivateBluezDBus();
} else {
@@ -329,7 +331,7 @@ QLowEnergyController::QLowEnergyController(
QObject *parent)
: QObject(parent)
{
- d_ptr = privateController();
+ d_ptr = privateController(CentralRole);
Q_D(QLowEnergyController);
d->q_ptr = this;
@@ -358,7 +360,7 @@ QLowEnergyController::QLowEnergyController(
QObject *parent)
: QObject(parent)
{
- d_ptr = privateController();
+ d_ptr = privateController(CentralRole);
Q_D(QLowEnergyController);
d->q_ptr = this;
@@ -391,7 +393,7 @@ QLowEnergyController::QLowEnergyController(
QObject *parent)
: QObject(parent)
{
- d_ptr = privateController();
+ d_ptr = privateController(CentralRole);
Q_D(QLowEnergyController);
d->q_ptr = this;
@@ -436,7 +438,7 @@ QLowEnergyController *QLowEnergyController::createPeripheral(QObject *parent)
QLowEnergyController::QLowEnergyController(QObject *parent)
: QObject(parent)
{
- d_ptr = privateController();
+ d_ptr = privateController(PeripheralRole);
Q_D(QLowEnergyController);
d->q_ptr = this;