diff options
author | Nedim Hadzic <nhadzic@blackberry.com> | 2013-08-29 12:46:56 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-05 10:23:47 +0200 |
commit | ecb93e0f63f317039c0bba2c6c754c67b80a9d5e (patch) | |
tree | b98cc16f8d5416e4dabc9dce101ab068136cecf5 /examples | |
parent | fcb5d4d992b660305c764d54ee70d977c0833602 (diff) |
Make Bluetooth adapter choosable for device and service search
In case there are more Bluetooth adapter, device and service search
might give different results.
Addition to Change-Id: Ideddb39460985c18547baec986b15e43946c85de - added option
for setting the device adapter for service search. QBluetoothLocalDevice was used
in both classes (device and service search) for passing an argument for setting
adapter. The reason for this to keep the same approach, because in
QBluetoothServiceDiscoveryAgent class there is already a constructor
with QBluetoothAddress argument.
Auto tests and examples updated.
Change-Id: Ib5d7ff23e4846d9d42dae68d8d424031748811e5
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/bluetooth/btchat/remoteselector.cpp | 20 | ||||
-rw-r--r-- | examples/bluetooth/btfiletransfer/remoteselector.cpp | 16 | ||||
-rw-r--r-- | examples/bluetooth/btscanner/device.cpp | 14 | ||||
-rw-r--r-- | examples/bluetooth/btscanner/service.cpp | 21 | ||||
-rw-r--r-- | examples/bluetooth/bttennis/tennis.cpp | 19 |
5 files changed, 81 insertions, 9 deletions
diff --git a/examples/bluetooth/btchat/remoteselector.cpp b/examples/bluetooth/btchat/remoteselector.cpp index 50bebcd3..ee195413 100644 --- a/examples/bluetooth/btchat/remoteselector.cpp +++ b/examples/bluetooth/btchat/remoteselector.cpp @@ -43,15 +43,30 @@ #include <qbluetoothdeviceinfo.h> #include <qbluetoothaddress.h> +#include <qbluetoothlocaldevice.h> QT_USE_NAMESPACE_BLUETOOTH RemoteSelector::RemoteSelector(QWidget *parent) -: QDialog(parent), ui(new Ui::RemoteSelector), - m_discoveryAgent(new QBluetoothServiceDiscoveryAgent) +: QDialog(parent), ui(new Ui::RemoteSelector) { ui->setupUi(this); + //Using default Bluetooth adapter + QBluetoothLocalDevice localDevice; + QBluetoothAddress adapterAddress = localDevice.address(); + + /* + * In case of multiple Bluetooth adapters it is possible to + * set which adapter will be used by providing MAC Address. + * Example code: + * + * QBluetoothAddress adapterAddress("XX:XX:XX:XX:XX:XX"); + * m_discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + */ + + m_discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + connect(m_discoveryAgent, SIGNAL(serviceDiscovered(QBluetoothServiceInfo)), this, SLOT(serviceDiscovered(QBluetoothServiceInfo))); connect(m_discoveryAgent, SIGNAL(finished()), this, SLOT(discoveryFinished())); @@ -60,6 +75,7 @@ RemoteSelector::RemoteSelector(QWidget *parent) RemoteSelector::~RemoteSelector() { delete ui; + delete m_discoveryAgent; } void RemoteSelector::startDiscovery(const QBluetoothUuid &uuid) diff --git a/examples/bluetooth/btfiletransfer/remoteselector.cpp b/examples/bluetooth/btfiletransfer/remoteselector.cpp index 70cde972..b148dab4 100644 --- a/examples/bluetooth/btfiletransfer/remoteselector.cpp +++ b/examples/bluetooth/btfiletransfer/remoteselector.cpp @@ -59,10 +59,24 @@ QT_USE_NAMESPACE_BLUETOOTH RemoteSelector::RemoteSelector(QWidget *parent) : QDialog(parent), ui(new Ui::RemoteSelector), - m_discoveryAgent(new QBluetoothServiceDiscoveryAgent), m_localDevice(new QBluetoothLocalDevice), m_pindisplay(0) + m_localDevice(new QBluetoothLocalDevice), m_pindisplay(0) { ui->setupUi(this); + //Using default Bluetooth adapter + QBluetoothAddress adapterAddress = m_localDevice->address(); + + /* + * In case of multiple Bluetooth adapters it is possible to + * set which adapter will be used by providing MAC Address. + * Example code: + * + * QBluetoothAddress adapterAddress("XX:XX:XX:XX:XX:XX"); + * m_discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + */ + + m_discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + connect(m_discoveryAgent, SIGNAL(serviceDiscovered(QBluetoothServiceInfo)), this, SLOT(serviceDiscovered(QBluetoothServiceInfo))); connect(m_discoveryAgent, SIGNAL(finished()), this, SLOT(discoveryFinished())); diff --git a/examples/bluetooth/btscanner/device.cpp b/examples/bluetooth/btscanner/device.cpp index 1437f612..732eb371 100644 --- a/examples/bluetooth/btscanner/device.cpp +++ b/examples/bluetooth/btscanner/device.cpp @@ -48,12 +48,22 @@ #include <QDebug> DeviceDiscoveryDialog::DeviceDiscoveryDialog(QWidget *parent) -: QDialog(parent), discoveryAgent(new QBluetoothDeviceDiscoveryAgent), - localDevice(new QBluetoothLocalDevice), +: QDialog(parent), localDevice(new QBluetoothLocalDevice), ui(new Ui_DeviceDiscovery) { ui->setupUi(this); + /* + * In case of multiple Bluetooth adapters it is possible to set adapter + * which will be used. Example code: + * + * QBluetoothAddress address("XX:XX:XX:XX:XX:XX"); + * discoveryAgent = new QBluetoothDeviceDiscoveryAgent(address); + * + **/ + + discoveryAgent = new QBluetoothDeviceDiscoveryAgent(); + connect(ui->inquiryType, SIGNAL(toggled(bool)), this, SLOT(setGeneralUnlimited(bool))); connect(ui->scan, SIGNAL(clicked()), this, SLOT(startScan())); diff --git a/examples/bluetooth/btscanner/service.cpp b/examples/bluetooth/btscanner/service.cpp index 7718f518..10df64c5 100644 --- a/examples/bluetooth/btscanner/service.cpp +++ b/examples/bluetooth/btscanner/service.cpp @@ -43,15 +43,32 @@ #include <qbluetoothaddress.h> #include <qbluetoothservicediscoveryagent.h> #include <qbluetoothserviceinfo.h> +#include <qbluetoothlocaldevice.h> ServiceDiscoveryDialog::ServiceDiscoveryDialog(const QString &name, const QBluetoothAddress &address, QWidget *parent) -: QDialog(parent), discoveryAgent(new QBluetoothServiceDiscoveryAgent(address)), - ui(new Ui_ServiceDiscovery) +: QDialog(parent), ui(new Ui_ServiceDiscovery) { ui->setupUi(this); + //Using default Bluetooth adapter + QBluetoothLocalDevice localDevice; + QBluetoothAddress adapterAddress = localDevice.address(); + + /* + * In case of multiple Bluetooth adapters it is possible to + * set which adapter will be used by providing MAC Address. + * Example code: + * + * QBluetoothAddress adapterAddress("XX:XX:XX:XX:XX:XX"); + * discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + */ + + discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + + bool set = discoveryAgent->setRemoteAddress(address); + setWindowTitle(name); connect(discoveryAgent, SIGNAL(serviceDiscovered(const QBluetoothServiceInfo&)), diff --git a/examples/bluetooth/bttennis/tennis.cpp b/examples/bluetooth/bttennis/tennis.cpp index bec62aa0..32c6cf44 100644 --- a/examples/bluetooth/bttennis/tennis.cpp +++ b/examples/bluetooth/bttennis/tennis.cpp @@ -66,8 +66,8 @@ //#include <qllcpsocket.h> Tennis::Tennis(QWidget *parent) -: QDialog(parent), ui(new Ui_Tennis), board(new Board), controller(new Controller), socket(0), - m_discoveryAgent(new QBluetoothServiceDiscoveryAgent)//, m_handover(0) +: QDialog(parent), ui(new Ui_Tennis), board(new Board), controller(new Controller), socket(0) + //, m_handover(0) { // start Bluetooth if not started QBluetoothLocalDevice *device = new QBluetoothLocalDevice(); @@ -75,6 +75,21 @@ Tennis::Tennis(QWidget *parent) delete device; device = 0; + //Using default Bluetooth adapter + QBluetoothLocalDevice localDevice; + QBluetoothAddress adapterAddress = localDevice.address(); + + /* + * In case of multiple Bluetooth adapters it is possible to + * set which adapter will be used by providing MAC Address. + * Example code: + * + * QBluetoothAddress adapterAddress("XX:XX:XX:XX:XX:XX"); + * m_discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress); + */ + + m_discoveryAgent = new QBluetoothServiceDiscoveryAgent(adapterAddress, this); + //! [Construct UI] ui->setupUi(this); |