diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2018-10-05 13:44:26 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2018-10-08 06:23:03 +0000 |
commit | 35a97ca4b43b4dc481b907d37204613460b07bbd (patch) | |
tree | c173cf6eee628fbe3e3079a2dd34acf0cb24ff0b | |
parent | 54f9fe2c230963797dd4f0f9efed7132b0dc429e (diff) |
Permit adjusting of advertisement data
Prior to this change subsequent calls to
QLowEnergyController::startAdvertising() failed to update the
to-be-advertised information.
Fixes: QTBUG-70754
Change-Id: I594f4f916307e12be6be17d50497aea324520620
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r-- | src/bluetooth/qleadvertiser_p.h | 5 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller_bluez.cpp | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/bluetooth/qleadvertiser_p.h b/src/bluetooth/qleadvertiser_p.h index e8f55bda..9b8ffbb5 100644 --- a/src/bluetooth/qleadvertiser_p.h +++ b/src/bluetooth/qleadvertiser_p.h @@ -73,13 +73,14 @@ public: signals: void errorOccurred(); -protected: +public: QLeAdvertiser(const QLowEnergyAdvertisingParameters ¶ms, const QLowEnergyAdvertisingData &advData, const QLowEnergyAdvertisingData &responseData, QObject *parent) : QObject(parent), m_params(params), m_advData(advData), m_responseData(responseData) {} virtual ~QLeAdvertiser() { } +protected: const QLowEnergyAdvertisingParameters ¶meters() const { return m_params; } const QLowEnergyAdvertisingData &advertisingData() const { return m_advData; } const QLowEnergyAdvertisingData &scanResponseData() const { return m_responseData; } @@ -106,7 +107,7 @@ public: const QLowEnergyAdvertisingData &advertisingData, const QLowEnergyAdvertisingData &scanResponseData, HciManager &hciManager, QObject *parent = nullptr); - ~QLeAdvertiserBluez(); + ~QLeAdvertiserBluez() override; private: void doStartAdvertising() override; diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp index 2b979244..65f4e0c2 100644 --- a/src/bluetooth/qlowenergycontroller_bluez.cpp +++ b/src/bluetooth/qlowenergycontroller_bluez.cpp @@ -810,8 +810,11 @@ void QLowEnergyControllerPrivateBluez::resetController() if (role == QLowEnergyController::PeripheralRole) { // public API behavior requires stop of advertisement - if (advertiser) + if (advertiser) { advertiser->stopAdvertising(); + delete advertiser; + advertiser = nullptr; + } localAttributes.clear(); } } |