summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2018-10-05 13:44:26 +0200
committerAlex Blasche <alexander.blasche@qt.io>2018-10-08 06:23:03 +0000
commit35a97ca4b43b4dc481b907d37204613460b07bbd (patch)
treec173cf6eee628fbe3e3079a2dd34acf0cb24ff0b
parent54f9fe2c230963797dd4f0f9efed7132b0dc429e (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.h5
-rw-r--r--src/bluetooth/qlowenergycontroller_bluez.cpp5
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 &params,
const QLowEnergyAdvertisingData &advData,
const QLowEnergyAdvertisingData &responseData, QObject *parent)
: QObject(parent), m_params(params), m_advData(advData), m_responseData(responseData) {}
virtual ~QLeAdvertiser() { }
+protected:
const QLowEnergyAdvertisingParameters &parameters() 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();
}
}