summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Merge remote-tracking branch 'origin/dev' into wip/winOliver Wolff2019-08-0794-4282/+3576
| |\ \ \ | | | | | | | | | | | | | | | Change-Id: I83175151c0eef1a11d2f21648cc04c86e46777c1
| * | | | Enable the use of the Win32 Bluetooth backendAndre de la Rocha2019-08-0522-297/+497
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change enables the optional use of the Win32-based Bluetooth backend on Windows. By default, the WinRT backend is used, if supported by the platform. The use of the Win32 backend must be selected by the -native-win32-bluetooth configuration option. Task-number: QTBUG-40698 Change-Id: I6904bf077467d826e3ff5ad026ebae5f955f2e37 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | win32-bt: fix warnings related to comparisons and initializersLubomir I. Ivanov2019-02-133-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Silence a couple of type of warnings: 1) warning: missing initializer for member '_BLUETOOTH_DEVICE_INFO::Address' [-Wmissing-field-initializers] BLUETOOTH_DEVICE_INFO deviceInfo = {0}; Unlike C, C++ is not happy about this type of initializer Use '{}' instead to init all members to zero or 'NULL' properly. 2) warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (socket != INVALID_SOCKET) { 'socket' is defined as 'int', while 'INVALID_SOCKET' is derived from 'SOCKET' which is of type UINT. Cast 'socket' to 'SOCKET' before performing the comparison. Change-Id: I9fcbff1c60ae36b8a8fed63382a8ffc0157f4923 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | Merge remote-tracking branch 'gerrit/dev' into wip/winAlex Blasche2019-02-1145-277/+392
| |\ \ \ \ | | | | | | | | | | | | | | | | | | Change-Id: I3402f42380068e3e6e7b3df8b15a712f0d86a3cd
| * \ \ \ \ Merge remote-tracking branch 'gerrit/dev' into win32Alex Blasche2018-11-22142-872/+4383
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Change-Id: Ie99a67b63f8259227f42f5b464c6bbc16e79313b
| * | | | | | qbluetoothservicediscoveryagent_win: use lowercase importLubomir I. Ivanov2018-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The import of "WinSock2.h" fails on MXE environments because cross building from Linux to Windows makes it so that the filesystem is case sensitive. Change-Id: I6d89530f430eb45bf07154cffb5938eb3761ee1e Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | win32-ble: store service handles until a service is destroyedLubomir I. Ivanov (VMware)2018-08-012-37/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently, a problem was discovered that adding event registration on a descriptor does not work because the associated service handle is closed right after. For events to work a service should remain open if an event is registered for it. Store service handles (hService) is QLowEnergyServicePrivate. A handle is opened by QLowEnergyControllerPrivateWin32::discoverServiceDetails() and remains open until the device is disconnected. This removes the need to open/close services each time a Write/Read operation is performed on GATT characteristics / descriptors. Move the creation of the worker thread to connectToDevice(). Quit the thread in disconnectFromDevice() and also close any open service handles. Change-Id: Ia634af2e4225f5c1be93b0ddd17639c2dbd70c21 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | win32: implement QBluetoothSocketEric Lemanissier2018-07-262-28/+358
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ib2b33490694c8608edda3eb0cbe7b8d0dd233254 Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | Port win32 port to new QBluetoothSocketBasePrivate patternAlex Blasche2018-07-255-25/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If3fc4e1078c63d7ca2af0e79353a62b9a9bb0c6f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | Merge remote-tracking branch 'gerrit/dev' into wip/winAlex Blasche2018-07-2587-903/+2584
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia5d83a88d6231984d9745d1c64f03553499a5882
| * | | | | | | win32: inline unnecessary functions in qbluetooth*discoveryagentEric Lemanissier2018-06-254-80/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by migrating to templated QMetaObject::invokeMethod Change-Id: I79e2dec7aa81987894a26859648d31da60cf47ee Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | win32: fix QBluetoothServiceDiscoveryAgent cleanupEric Lemanissier2018-06-211-37/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove calls to WSACleanup, because it terminates use of the Winsock 2 DLL, including sockets operations. WSALookupServiceEnd only is needed. add missing WSALookupServiceEnd if pendingStop or error remove useless parameters of findFirst/NextService Change-Id: I587987b77c1be8f05a840e4333c31fd79af06ed3 Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | win32: make bluetooth tst_startStopDeviceDiscoveries passEric Lemanissier2018-06-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QVERIFY(discoveryAgent.errorString().isEmpty()) was failing Change-Id: I7b45db5b1af1ee3da75569d8855487c771cb29ed Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | win32: modernize qbluetooth*discoveryagentEric Lemanissier2018-06-214-34/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arguments pass by ref NULL and 0 replaced with nullptr ::ZeroMemory replaced by default initialization range based for loop Change-Id: I393806f19155ee31e4ebe7f33ce22e9d14eafe40 Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | win32: remove usage of QFuture in qbluetoothservicediscoveryagentLubomir I. Ivanov (VMware)2018-06-183-56/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce usage of QThread for service discovery instead of QFuture. Details: - Make _q_nextSdpScan() accept arguments. - Make QBluetoothServiceDiscoveryAgentPrivate inherit QObject for QT_WIN_BLUETOOTH. - Remove usage of the member variables 'systemError', 'hSearch'. Pass values around, instead. - Add the helper structs 'FindServiceArguments' and 'FindServiceResult'. Change-Id: I4e2178b2a7b333c30a235a02807dd64526db4685 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | win32: remove usage of QFuture in qbluetoothdevicediscoveryagentLubomir I. Ivanov (VMware)2018-05-293-26/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a couple of QThread instances and workers for the Bluetooth Classic and BLE device discovery. Replaces the usage of QFuture for this file. Remove includes of QtConcurrent. This introduced some errors which are solved by including: - QLoggingCategory in qbluetoothdevicediscoveryagent_win.cpp - QDataStream and QCoreApplication in qlowenergycontroller_win.cpp Change-Id: Iba2cbc147c714ae87515294d50cb4e502edd00a7 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | Fix namespaced buildOliver Wolff2018-04-051-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If20574e7bc182e5ee3d5adf6cc6d63cf9ee9d0ef Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | qlecontroller_win: read descriptors in a separate threadLubomir I. Ivanov (VMware)2018-03-292-26/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for the ThreadWorkerJob type ReadDesc in QLowEnergyControllerPrivateWin32. This type of job is responsible for reading GATT descriptors in a separate thread using the previously implemented ThreadWorkerJob scheme: - ThreadWorker::runPendingJob() - QLowEnergyControllerPrivateWin32::jobFinished() The blocking function in this case is getGattDescriptorValue(). Change-Id: I19298323f8ebc630b4dc34ae2e71c7e3c603beae Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | | qlecontroller_win: write descriptors in a separate threadLubomir I. Ivanov (VMware)2018-03-292-62/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for the ThreadWorkerJob type WriteDesc in QLowEnergyControllerPrivateWin32. This type of job is responsible for writing GATT descriptors in a separate thread using the previously implemented ThreadWorkerJob scheme: - ThreadWorker::runPendingJob() - QLowEnergyControllerPrivateWin32::jobFinished() The blocking function in this case is setGattDescriptorValue(). Change-Id: Ib221862d50cdbe5af951d4ad82850bea4f9a6645 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | | qlecontroller_win: read characteristics in a separate threadLubomir I. Ivanov (VMware)2018-03-292-23/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for the ThreadWorkerJob type ReadChar in QLowEnergyControllerPrivateWin32. This type of job is responsible for reading GATT characteristics in a separate thread using the previously implemented ThreadWorkerJob scheme: - ThreadWorker::runPendingJob() - QLowEnergyControllerPrivateWin32::jobFinished() The blocking function in this case is getGattCharacteristicValue(). Change-Id: Idc87267a44aab51febae4addaca4b61d7e582a8a Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | | Add a thread for QLowEnergyControllerPrivateWin32Lubomir I. Ivanov (VMware)2018-02-282-29/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a re-usable thread ('thread') and worker ('treadWorker') in QLowEnergyControllerPrivateWin32 that have the same lifespan as the controller object. Add "job" support (ThreadWorkerJob) for the thread so that jobs are scheduled and executed sequentially. Each job should have a data struct. For writing that is WriteCharData. Handle writing of characteristics in: QLowEnergyControllerPrivateWin32::writeCharacteristic() QLowEnergyControllerPrivateWin32::jobFinished() ThreadWorker::runPendingJob() The above jobFinished() and runPendingJob() use a `switch` to determine the ThreadWorkerJob type. Change-Id: I3331e0d4adc29565a88fd792f9a54833881ea694 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | qlecontroller_win: use lastIndexOf() in getDeviceAddress()Lubomir I. Ivanov (VMware)2018-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getDeviceAddress() does not work for all path cases, thus instead of using: firstbound = servicePath.indexOf(...) use: firstbound = servicePath.lastIndexOf(...) Example path that breaks the current code: "\\\\?\\bthledevice#{00001800-0000-1000-8000-00805f9b34fb}_dev_vid&01008f_pid&b00d_rev&0100_00802534ce0e#8&5481851&5&0001#{00001800-0000-1000-8000-00805f9b34fb}" The current code works with paths of this format: "\\\\?\\BTHLEDevice#{00001800-0000-1000-8000-00805f9b34fb}_7c669d8a6d7a#8&35290589&1&0001#{00001800-0000-1000-8000-00805f9b34fb}" Notice that there are more than one "_" in the path that breaks. Change-Id: I5f081b78d8f5bc5693ba05c8e73d4dcf0b42b6b2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | qlecontroller_win: fix GetLastError() bug in getServiceSystemPath()Lubomir I. Ivanov (VMware)2018-02-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix strange bug in getServiceSystemPath() where after the first call to SetupDiGetDeviceInterfaceDetail(), GetLastError() returns 0 instead of ERROR_INSUFFICIENT_BUFFER (122). A fix is to use a `const DWORD` for the error immediately after the SetupDiGetDeviceInterfaceDetail() call. Possibly a compiler issue. Target toolchain is: gcc version 5.3.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project) Change-Id: Id197201e9e161f7240c339231990196f58cb87eb Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | | Reduce quantity of "reinterpret_cast" callsDenis Shienkov2018-02-281-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... that simplified a code a bit. Change-Id: Ice7d082f005bfc36e86909784fb6fe38c6f6811f Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | Use WIN32_FROM_HRESULT macro to decode BLE system errorsDenis Shienkov2018-02-282-47/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GetLastError() function always returns the NO_ERROR code when any of the BluetoothGATTXXX() function fails. The reason is that the BluetoothGATTXXX() function uses the COM API, but the GetLastError() function uses the WIN32 API. We need to convert the HRESULT error code to the WIN32 error code directly, using a macro such as WIN32_FROM_HRESULT. Note: At least, it is reproduced with BluetoothGATTSetCharacteristicValue() function on Windows 10. Change-Id: I548e90bb16647c885b06c32397c277255fd362f4 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Lubomir I. Ivanov <neolit123@gmail.com>
| * | | | | | | Update license information for Windows filesLubomir I. Ivanov (VMware)2018-02-209-113/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iec42df246c5faec4260bbeb0dbf806477530d30f Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | Merge remote-tracking branch 'gerrit/dev' into winAlex Blasche2018-02-2046-91/+1476
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I4e86dcfe5088b0bd5087de309c435250c76d4718
| * | | | | | | | Add warning to private header qwinlowenergybluetooth_p.hLubomir I. Ivanov2017-11-221-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this warning the build would not succeed. Change-Id: Ie43c494d80db2dfffa1f45c8896d996928678df0 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | Merge remote-tracking branch 'gerrit/dev' into winAlex Blasche2017-11-1579-1144/+2501
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3a3557c6b8d565322358825d4b07c61cf6b97c9f
| * \ \ \ \ \ \ \ \ Merge "Merge remote-tracking branch 'gerrit/dev' into win" into ↵Alex Blasche2017-10-24152-537/+2136
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refs/staging/wip/win
| | * \ \ \ \ \ \ \ \ Merge remote-tracking branch 'gerrit/dev' into winAlex Blasche2017-10-17152-537/+2136
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I28ee9f95cc0fb85a36b5bd7b2ad87e0179446995
| * | | | | | | | | | | Make QtBluetooth on Win32 compile (following merge from dev)Alex Blasche2017-10-241-0/+10
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Idfc9f44cd9ab6064448804ed3a5d9fb81e644281 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | | | | | | | | Improve processing of discovered deviceDenis Shienkov2017-06-201-33/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... where now we use std::find_if algorithm instead of indexed container enumeration. Change-Id: I081dcc92e7b6c1d7a160e62d32ba2cc1182cf43a Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Fix classic and LE devices discoveryDenis Shienkov2017-06-192-71/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Devices discovery was broken due to merging from 5.9 branch. Where were introduced new QBluetoothDeviceDiscoveryAgent::DiscoveryMethods feature. But now, this code is refactored and adjusted in completelly asynchronous manner. Change-Id: I9b7c4cbe27066ed05d1ed4546f71ea559544f6f5 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Fix crash at access to unexistent controller objectDenis Shienkov2017-06-131-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes are possible a situations when triggered event callback function contains a pointer with a context of unexistent controller's object (f.e. this controller can be already deleted). That causes a crash at trying to access by this pointer. Solution is to append a pointer of each created object (or to remove a pointer of each destroyed object) to (from) some guarded vector of pointers. And then to check every received context with pointers inside of this vector. If a context does not contains in a vector, then skip any actions with this context. Change-Id: I94e237c41028724307f58bb09235299eae15d6b5 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Pass a device address to correctly search its service system pathDenis Shienkov2017-06-131-11/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to check on a device address from the returned system path and to return matched path. Otherwise always returns a first found system path for devices with same service UUID. Change-Id: Iccfae4d7b19451b4fa19fce9bbd1ab9b749cd5bb Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Fix possible leaking of system handlesDenis Shienkov2017-06-131-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ib702e7aa95a26212e1713b514adb5e6c81e9bbd7 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | | | | Get rid of QList in favor to QVector where possibleDenis Shienkov2017-06-121-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I872e7d6bc4371beed0b80eb1ebb374d2c48c9167 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Use 'const' keyword a bit moreDenis Shienkov2017-06-082-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If735ef8abf793fed46c43f692d413e76013a899e Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Replace 'foreach' macro with range-based 'for'Denis Shienkov2017-06-073-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7010ff54a146a9d70029e2607b415e0e1dcc1d78 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Use std::find_if to check for local adapter addressDenis Shienkov2017-06-071-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I53af8c2a5dc848d1f90221d036c59f17c44921dc Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Replace 'forever' macro with 'for (;;)' statementDenis Shienkov2017-06-074-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I402b856be06db0e55ec2efb21fc6cb8f35e57a0c Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | | | | | | | | Initialize lowEnergySearchTimeout with -1Denis Shienkov2017-06-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .. that allows to pass the tst_discoveryTimeout() test. Change-Id: I1af53c8186151fcb6017b07b28f4b8355d91d072 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | | | | | | Merge remote-tracking branch 'gerrit/5.9' into wip/winAlex Blasche2017-05-12311-7024/+22019
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia247c260a9fa27df79d18e5397eba5918d626684
| * \ \ \ \ \ \ \ \ \ \ Merge remote-tracking branch 'gerrit/dev' into wipAlex Blasche2015-12-0364-445/+967
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I6acdeda9ec2a69d237e49c8ee53fde4e8696d19e
| * | | | | | | | | | | | Windows: Use Qt::HANDLE instead of typedef void*Denis Shienkov2015-11-172-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I4f2194501f652c38cff43ac1716a5853cd1e1b13 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
| * | | | | | | | | | | | Windows: Use QT_WIN_BLUETOOTH macro where it is possibleDenis Shienkov2015-11-174-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I77811a65b530c8994b622d4d18718c50ec629684 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
| * | | | | | | | | | | | Windows: Implement the descriptor reading and writingDenis Shienkov2015-11-033-7/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also is supported the notification when characteristic value changes. Change-Id: Ic50ea7e6bf53db60180cbe2fcd72439b048747ef Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| * | | | | | | | | | | | Bluetooth - service discovery on WindowsEric Lemanissier2015-10-294-7/+398
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on previous change by Philip Schuchardt Change-Id: If27e1fce63f2a832d19965219f1a5567f76ab770 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| * | | | | | | | | | | | Windows: Detect the end handle of a serviceDenis Shienkov2015-10-281-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I03f02c376f2cd9e83b7e2559c2becb80ff307435 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>