summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;