diff options
-rw-r--r-- | src/bluetooth/bluez/bluez5_helper.cpp | 5 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.cpp | 16 |
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; |