summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* winrt: Check for valid m_socketObject before accessing socket informationOliver Wolff2017-08-021-0/+15
| | | | | | | | | | If the socket was created without giving the socket type, ensureNativeSocket was not called and thus m_socketObject is 0. Calling localName and friends caused a crash because they accesses the object unconditionally. Change-Id: I442e3d1492458161fb8660f1b2f17d52b37a2935 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Use QSharedPointer::create() moreMarc Mutz2017-07-311-1/+1
| | | | | | | | | | | This is the result of running the (experimental) clang-tidy check qt-modernize-qsharedpointer-create Discarded changes: none. Change-Id: I58a0f230516e836df62b40cf8ec38a6b3d7122db Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Windows: Fix namespaced buildOliver Wolff2017-07-264-10/+12
| | | | | Change-Id: I9f6a7c3884c2d7c9b0856a0e9a689ad88cca59fe Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Android: Avoid hanging in desc or char read during service discoveryAlex Blasche2017-07-181-4/+5
| | | | | | | | | | | If the last entry of a service is a descriptor or characteristic and the read attempt fails early (the read could not even be initiated) ensure that the discovery state machine properly exists. So far the exit was only ever triggered by a successful read or if the async callback for the read returned with an error or timed out. Change-Id: I495982a82819aab985bc91a7e63c530b52355d9d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add ability to negotiate the MTU on BTLE AndroidAlex Blasche2017-07-181-29/+125
| | | | | | | | | | | | | | There are cases where peripherals use a larger MTU than the default MTU on Android. This forces the MTU negotiation to always been done once the service discovery has been done. This patch requires Android API v21 (or Android v5+). If the local Android version is below 5 this feature becomes a noop. The related bug cannot be addressed on Android version below 5.0. Task-number: QTBUG-61755 Change-Id: I6521b5dad05da5e3e533ef2af56ee649b1b79730 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* BTLE (CoreBluetooth) - prospective fixTimur Pocheptsov2017-07-162-8/+2
| | | | | | | | | | The type of manage.state has changed on macOS (like on iOS before), making an declataion invalid. (cherry-picked from qtconnectivity/0c3cc5374d2703fde6a99d301fcff974122d057d) Change-Id: I55caa32fa9f0a85090506cfbd788c1a80d41e8ce Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* winrt: Do not emit canceled in timeout case in device discoveryOliver Wolff2017-07-042-17/+1
| | | | | | | | | canceled should only be emitted if stop was used to abort a running device discovery. A timeout happening has to cause a normal finished. Change-Id: I1072c14a44b84da0cb93420cf7344b8bc56b523e Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Update doc for QBluetoothDeviceDiscoveryAgent::deviceDiscovered()Alex Blasche2017-06-291-1/+9
| | | | | | | | | | lowEnergyDiscoveryTimeout affects the emission behavior of deviceDiscovered(). This behavior change should be explicitly documented. Task-number: QTBUG-57847 Change-Id: I94bd7cb36935b376c34ba90f5de4e3084e87e883 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Device discovery (CoreBluetooth): report duplicates in case LE scan has ↵Timur Pocheptsov2017-06-291-1/+1
| | | | | | | | | | | | timeout 0 If we have a never-ending LE scan, we should report even complete duplicates. The original bug-report has a scenario with a long-running application, that records a data from BTLE scales once a day. Task-number: QTBUG-57847 Change-Id: If5e4828f119d5f4e4418cfe60fa518b583210a14 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Continuously emit deviceDiscovered() signal during never-ending dev discoveryAlex Blasche2017-06-292-2/+2
| | | | | | | | | | | | If the user chooses to do a BTLE device discovery with QBluetoothDeviceDiscoveryAgent::setLowEnergyDiscoveryTimeout being set to 0, we should continuously emit the deviceDiscovered() signal and not only once per device. This patch checks the timeout value before triggering the duplication detection for deviceDiscovered() signals. Task-number: QTBUG-57847 Change-Id: I0e43b779a89b918640fe3d812d2500ed0a016cc3 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Android: Do not emit QBluetoothSocket::bytesWritten() if write() failedAlex Blasche2017-06-291-1/+1
| | | | | | | | | | QBluetoothSocket::write() emits the bytesWritten(int) signal when the write was successful. java.io.OutputStream.write() returns an exception when it fails. We should not emit bytesWritten() if such an exception occurred. Change-Id: I76e7a85188102e8227d586450c3e733c046e9957 Reviewed-by: Christian Stromme <christian.stromme@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add indirection for QBluetoothSocket::bytesToWrite()Alex Blasche2017-06-296-1/+22
| | | | | | | | | | | | | | | | | | Not all platforms use txbuffer for writes. Fortunately those platforms who do not use it do not use any buffering at all. Hence bytesToWrite() returned the correct value as txbuffer always had size zero. Therefore this patch is effectively a NOP. Nevertheless this patch encourages the right implementation across the platform. This does not affect macOS as it has a separate implementation for QBluetoothSocket::bytesToWrite(). Task-number: QTBUG-58190 Change-Id: Ic05f4358b079f612ee7e0e4dbb7fb9aa78fd6556 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix concurrent access to QBluetoothSocket::canReadLine() on AndroidAlex Blasche2017-06-298-1/+33
| | | | | | | | | | | | | | | | | | | | | On Android, the socket's read buffer is managed in the Java thread. QBluetoothSocket::canReadLine() is public API (most likely) being called by in the main Qt thread though. The function directly called into the Java buffer instance without proper locking. This can create race conditions. Starting with this patch canReadLine() calls another QBluetoothSocketPrivate indirection to allow a platform specific implementation. This affects WinRT, BlueZ and the dummy backend too. This is not an issue on macOS as its implementation of QBluetoothSocket is separate and does not have to deal with multiple QBluetoothSocketPrivate implementations. Task-number: QTBUG-58190 Task-number: QTBUG-60830 Change-Id: Idae19f1aee6f809699d36519b01a3c68ad9c563d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Provide a way to define GAP/GATT services for central rolesAlex Blasche2017-06-283-13/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | Some devices require the Generic Access (GAP) and Generic Attribute (GATT) services to be defined. Otherwise they refuse a proper interaction. This is done implicitly by Android and BlueZ. The reason why BlueZ does not do this for QtBluetooth is because QtBluetooth sets up its own GATT infrastructure. Normally a QLEController in central role cannot do that via public API as the QLEController::addService() function blocks on peripheral use cases. This patch sets the profiles up. In the future the feature really requires a better form of API (beyond the above env variable) or should be enabled by default but since we need this earlier than Qt 5.10 a more subtle approach was chosen. For now the feature can only be enabled if the QT_DEFAULT_CENTRAL_SERVICES was set. Another limitation is that the characteristics of the added services are completely static. Task-number: QTBUG-61554 Change-Id: Id03bddb2e54cc4f0869838e13ddf281311ad3a26 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix QNdefNfcActRecord::action for platforms with unsigned charSami Nurmenniemi2017-06-271-1/+1
| | | | | | | | | | | | | QByteArray operator [] has return type of char whose signedness is dependendent on platform and compiler. Casting char to an enum with negative value does not work on configurations with unsigned char type. Fixed by explicitly casting action to signed char before converting it to enum. Task-number: QTBUG-60268 Change-Id: I733520a70c321c3b8dac9c67cfb096ac97a64b94 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Improve qmlchat doc describing the BluetoothSocket handling snippetAlex Blasche2017-06-201-1/+3
| | | | | Change-Id: I1028bd21ed0950b35ef59598a48e0b274a849d89 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Android: Don't miss services if the last device discovery failedAlex Blasche2017-06-161-0/+4
| | | | | | | | | | | | | | | | | Android collects the SDP information for all devices and puts them into an sdp cache. Only when the discovery finishes the sdp cache is evaluated and the serviceDiscovered() signal is sent. The evaluation is triggerd by _q_fetchUuidsTimeout(). If it is not possible to retrieve uuids or an address for the last discovered device, the old code never triggered _q_fetchUuidsTimeout(). As a consequence QBluetoothServiceDiscoveryAgent appeared to never find any service. This patch ensures that if the last SDP discovery failed we still trigger the final UUID evaluation and subsequent serviceDiscovered() signal emissions. Change-Id: I8454dc3f7cf3688110e6c86af324d797351b5b33 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Obtain random bt address flag via Bluetooth Mgmt APIAlex Blasche2017-06-168-11/+455
| | | | | | | | | | | | | | | DBus does not expose this information. The Bluetooth Management API advertises the information but requires CAP_NET_ADMIN. The Management class monitors DEVICE FOUND events and records the random bit flag of each new device. QBluetoothDeviceDiscoveryAgent can subsequently add this information to the internal data set. Ultimately this makes QLowEnergyController::setRemoteAddressType obsolete. This function was only ever required on Linux. Task-number: QTBUG-46776 Change-Id: If10df86d332dfc7cc98b7c783eb28487c3fa9045 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Handle Android's BluetoothGatt.GATT_FAILURE in QLowEnergyControllerAlex Blasche2017-06-161-0/+2
| | | | | | | | | The above error code is the equivalent of Android's Unknown error. Therefore we map the code to QLowEnergyController::UnknownError. Task-number: QTBUG-61321 Change-Id: I614c1557c453cd5426f5fa0af69011c4e768657b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Workaround for Android SDP discovery bugAlex Blasche2017-06-162-12/+114
| | | | | | | | | | | | | | | | | | | | | Due to an Android platform bug, SDP discovery may return the wrong uuid for the remote service. This bug was introduced by Android 6.0.1 and tracked by https://issuetracker.google.com/issues/37076498. The returned UUID is byte swapped. To increase the QBluetoothSocket::connectToService() convenience QBluetoothSocket uses a fallback which attempts to connect to the remote service assuming the uuid was byte swapped. This will only happen if the uuid is not derived from the official Bluetooth base UUID (aka the given UUID is truly custom). There is the slight chance that the reversed UUID is a different service but that chance is very marginal when considering the amount of possible custom UUIDs. Task-number: QTBUG-61392 Change-Id: Ia41d670ab8d0666628f067e174965b698d0f26b0 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Android: Remove QBluetoothSocket fallback when Android SDK 23+Alex Blasche2017-06-161-2/+6
| | | | | | | | | The private BluetoothDevice.getServiceChannel() is no longer available since Android release 6.0+ (v23+). We silently skip it on those platforms. Change-Id: Ia924f1c2fe81ccfb50b8abcfb682c350e9ce49ff Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Apple: Do Classic dev discovery inside QBluetoothServiceDiscoveryAgentAlex Blasche2017-06-151-1/+1
| | | | | | | This was missed when doing the same change for the non-Apple platforms. Change-Id: Ib1ef55acc82d98def4e1fc1ca228dabe6a13f241 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Only do Classic device discovery inside QBluetoothServiceDiscoveryAgentAlex Blasche2017-06-141-1/+1
| | | | | | | | | | | QBluetoothServiceDiscoveryAgent performs SDP based Bluetooth service discovery. There is no need to do a BTLE discovery for the purpose of triggering an SDP service discovery. Change-Id: I16448b603e80e778b71ee397c0db14d0502d3acf Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add more details about BlueZ GPL usage in QtBluetoothAlex Blasche2017-06-141-4/+8
| | | | | | | | The sdpscanner tool was separated and talks to QtBLuetooth via stdin/stdout. This limited the GPL to the sdpscanner tool only. Change-Id: Id4849cc17945642a1c5708811d34f38128d42316 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove last qdoc warning from qtconnectivityAlex Blasche2017-06-141-1/+1
| | | | | | | | | | | src/bluetooth/android/devicediscoverybroadcastreceiver.cpp:240: warning: Cannot tie this documentation to anything [I found a /*! ... */ comment, but there was no topic command (e.g., '\fn', '\page') in the comment and no function definition following the comment.] The file referenced in the warning does not contribute to the QtBluetooth documentation. The patch removes qdoc annotation from the file. Change-Id: Ie5699d79a12e5fc1851a924adbf50ebcb5059454 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix memory overrun due to wrong header size definition being usedAlex Blasche2017-06-121-7/+4
| | | | | | | | | | | | | | | | At the same time we remove the redudant and temporary packet variable. This was highlighted by a compiler warning: In function void* memcpy(void*, const void*, size_t), inlined from void qToUnaligned(T, void*) [with T = short unsigned int] at /home/ablasche/dev/qt/qt59/qtbase/include/QtCore/../../src/corelib/global/qendian.h:82:5, inlined from void qToLittleEndian(T, void*) [with T = short unsigned int] at /home/ablasche/dev/qt/qt59/qtbase/include/QtCore/../../src/corelib/global/qendian.h:227:3, inlined from void putBtData(T, void*) [with T = short unsigned int] at bluez/bluez_data_p.h:196:5, inlined from void QLowEnergyControllerPrivate::readServiceValuesByOffset(uint, quint16, bool) at qlowenergycontroller_bluez.cpp:1692:34: /usr/include/x86_64-linux-gnu/bits/string3.h:53:71: warning: call to void* __builtin___memcpy_chk(void*, const void*, long unsigned int, long unsigned int) will always overflow destination buffer return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest)); Change-Id: I5b8d7781b78ea3e07e30b9b830a4d8885bb8c989 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Merge remote-tracking branch 'origin/5.9.0' into 5.9Liang Qi2017-05-311-0/+1
|\ | | | | | | Change-Id: I60b91ca386c04a7710f50c5442982f41299d4f8e
| * Make heart rate game a highlighted exampleAlex Blasche2017-05-081-0/+1
| | | | | | | | | | | | | | | | | | This shows the example prominently on the Qt Creator Welcome screen. Change-Id: I6f207e888e6129235356b839a2bb7fecc1fe28a4 Reviewed-by: Nico Vertriest <nico.vertriest@qt.io> Reviewed-by: Sami Makkonen <sami.makkonen@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Avoid bluetoothd and QtBluetooth collision when connecting to BTLE devAlex Blasche2017-05-295-3/+331
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BlueZ's improving support for BTLE creates a new collision when attenpting to connect to remote BTLE devices. There can only ever be one connection. This patch ensures that when QtBluetooth attempts to connect we do not have a pending BTLE connection. This could have been caused via other QtBLuetooth based processes or applications such as bluetoothctl or bluetoothd in general. If a connection is pending we close the connection external to the current QtBLuetooth instance. This is not an ideal situation as several processes can potentially fight over btle access. The long term solution is a port of QtBluetooth to BlueZ's new DBus API. Task-number: QTBUG-55150 Change-Id: I96b30ae180d1348027e8f9f09c997f44409dfc48 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Make it more obvious that another active BTLE connection prevents connectAlex Blasche2017-05-234-0/+63
| | | | | | | | | | | | | | Task-number: QTBUG-55150 Change-Id: I223e2b2015e210162e59fb994b9352e790b036d4 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix GCC 7 warnings about implicit fallthroughsThiago Macieira2017-05-192-2/+4
| | | | | | | | | | | | | | Make them explicit. Change-Id: I9bf1e35bffb044dcbf62fffd14bfe71bc374febf Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | BlueZ: Ensure stop advertisement calls are actually sent when issuedAlex Blasche2017-05-151-0/+1
| | | | | | | | | | | | | | The command queue was not flushed out to the HCI socket. Change-Id: Ic249fc6d7c93c8ca1026ec010f667b7e155d9c46 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix readvertisement failure on peripheral restart on BlueZAlex Blasche2017-05-152-10/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When the QLowEnergyController disconnects and immediately restarts the re-advertisement, it fails when sending the OcfLeSetAdvEnable ocf command. Subsequenly an advertisement error is thrown which stops the QLowEnergyCOntroller instance itself. Starting with this patch we choose to ignore failures when trying to disable advertisement. The API cannot report the error back anyway. Task-number: QTBUG-58941 Change-Id: Ifd6b43193c41e6cdc22d4876441bcdcbcc2ca7b6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Doc: iOS does not have support for classic bluetoothAndy Shaw2017-05-091-1/+1
|/ | | | | Change-Id: Ieefa1cf6f07b05d12e2381d6c72ab56d78b3e7fd Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix licensingv5.9.0-beta4Jani Heikkinen2017-04-283-42/+60
| | | | | | | | | - Remove unused license files - Switch old LGPLv21 license headers with LGPL one Task-number: QTBUG-57147 Change-Id: If7e286d2ce33077de2d9edfb14ecddfa5cd3027e Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix build for -no-feature-textcodecStephan Binner2017-04-251-0/+10
| | | | | Change-Id: I5d5834733e53ac59f8e889481e04fa7acd184628 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix build for -no-feature-concurrentStephan Binner2017-04-252-2/+3
| | | | | Change-Id: I57b18167dacb776a00d406e3faba6e780c764771 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Work around Android security permission bug when reading GATT fieldsAlex Blasche2017-04-251-2/+14
| | | | | | | | | | Android throws a security exception (BLUETOOTH_PRIVILEGED) when reading HID services. Since the permission is not available for 3rdparties this is never obtainable by apps. We need to skip over those cases. Task-number: QTBUG-59917 Change-Id: I09b55740287812b0697b857d7eb8a77190d36e44 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Support for Q_OS_ANDROID_EMBEDDED and android-embedded buildsOtto Ryynänen2017-04-242-2/+2
| | | | | | | | | | | | The Embedded Android build (Boot to Qt Android injection) is defined by having both Q_OS_ANDROID and Q_OS_ANDROID_EMBEDDED flags defined, as well as having Qt config android-embedded. Those flags are set in mkspecs when building for embedded Android. This commit enables the possibility to build embedded Android builds. (i.e. Qt build for Android baselayer only, without JNI) Change-Id: I2ded43d7ed46a99ba70301f07a791ed4a148c6c0 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9v5.9.0-beta3Liang Qi2017-04-182-6/+4
|\ | | | | | | | | | | | | Conflicts: src/bluetooth/qbluetoothsocket_bluez.cpp Change-Id: I37e21b3c636a241a357bc81fc23da51303b94623
| * LE/Android: fix status code descriptions5.8Konstantin Ritt2017-04-101-2/+2
| | | | | | | | | | Change-Id: Iee2f8e02a926129dfdd1c82d0fa84dfbb45303d3 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * QBluetoothSocket/bluez: fix QString::arg() usageMarc Mutz2017-03-241-4/+2
| | | | | | | | | | | | | | | | | | QString::arg() returns the new value but leaves *this unchanged. Found by GCC 7 (-Wunused-result). Change-Id: I8a0ddb801ded94365f0e9a7ae13a37a96c7f437a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Remove heartlistener exampleAlex Blasche2017-04-072-2/+1
| | | | | | | | | | | | | | | | The heartrate game is the replacement example. Change-Id: Ib51be2467c49075d34e6bea003e69453f0801dfc Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Use heartrate-game example for snippets in BTLE overviewAlex Blasche2017-04-071-14/+13
| | | | | | | | | | | | | | | | | | heartlistener example will be removed. Change-Id: Iaa5c5f629cf351b97c18f61b4fab2cbbd8d0744c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | Fix undocumented parameter warning from qdocAlex Blasche2017-04-061-3/+4
| | | | | | | | | | | | | | Undocumented parameter 'isPersistent' in QNearFieldTarget::setKeepConnection() Change-Id: I8959af52d1f966c2951c17528776ef2c8183fc07 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Ensure that QLowEnergyController::connected() is emitted on BlueZAlex Blasche2017-04-061-0/+3
| | | | | | | | | | | | | | | | This singal was never emitted. Task-number: QTBUG-59754 Change-Id: I5f6aba3f995933dc8a8c7b80492e1726a3177b54 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Replace custom QT_BLUEZ_BLUETOOTH against the related feature defineAlex Blasche2017-04-0616-31/+31
| | | | | | | | | | Change-Id: I4fbb948841a610640acaf87364e2157e31782836 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | The BlueZ feature implies that QtDBus is enabledAlex Blasche2017-04-053-3/+3
| | | | | | | | | | | | | | | | | | | | The QtBluetooth library only builds the bluez backend when qtdbus is enabled. Previously it was possible that dbus was disabled but the bluez feature flag is still set. This patch prevents this gap by directly binding the bluez feature to the dbus feature. Change-Id: I173d51f27f5b1a78241548617f602830fec7bb14 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Permit BlueZ platforms to set the address type in heartrate-gameAlex Blasche2017-04-052-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BlueZ is the only platform that requires to set the BTLE address type. The patch introduces a new UI button which allows the user to toggle the address type. The UI element is disabled on all platforms but Linux/BlueZ systems. The number of devices returned in simulator mode is reduced to four devices. This was done purely for esthetical reasons as the additional address type button takes screen real estate away and five simulator devices require more screen real estate than the remaining space for device list. This avoid the need for scrolling. Change-Id: I14cf26b3c821db7768b9d018c2d09441cd97679a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add documentation for the HeartRate game exampleAlex Blasche2017-04-041-0/+1
| | | | | | | | | | | | | | Change-Id: I0f0a82be359fc49becd1eccc67697d5177d73bb1 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>