summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothserviceinfo_osx.mm
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Update commercial license headers"v5.15.3-lts-lgplTarja Sundqvist2021-03-241-21/+21
| | | | | | | | | | | This reverts commit 0db3b38521e11147cb802798a2cb7811a96029a9. Revert of commercial license headers is required for Qt 5.15.3 opensource release. Task-number: QTBUG-91108 Change-Id: Ie82dac4e6a4e2e0e1207d17a10c09701871d6875 Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
* Update commercial license headersTarja Sundqvist2021-02-021-21/+21
| | | | | | | | | | | | | | | Updated header.COMM to the files in tqtc-qtconnectivity. Examples, tests or documentation files are not updated. The commercial license header may contain some additional lines so that its line count equals with the earlier license header. Reason for this is that some autotests use hard coded line numbers and a change in the line count causes failures in test. Task-number: QTQAINFRA-4159 Change-Id: Icf450df25282ffadf5bcd0950753d17ba6ab57e3 Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* QBluetoothServiceInfo - remove the code-duplicate (macOS)Timur Pocheptsov2019-07-151-315/+71
| | | | | | | Task-number: QTBUG-75348 Change-Id: I5e2e08291cd17c1f1ef8639d422f4421520ed371 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QBluetoothServer - cleanup and de-duplicate codeTimur Pocheptsov2019-07-051-1/+1
| | | | | | | | | Some code can be re-used from the shared public implementation. *_osx_p.h is not needed either. Task-number: QTBUG-75348 Change-Id: If373b74edebe9a9db90e820016cf779a1726baed Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Ensure SDP records can be byte arrays/hex encodedAlex Blasche2019-02-151-23/+36
| | | | | | | | | | | | | | This addresses the issue on Bluez only. macOS ignore such attribute values and WinRT implicitly converts them to hex strings. The macOS debug stream operator produced slightly different output compared to the other platforms. The output between the platforms must match though. Therefore, the general version was copied over to macOS. Task-number: QTBUG-73328 Change-Id: Ieea2a3a559b5686f7f7d16d5c75dd9ef2782cdf5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Replace foreach with for loop and set QT_NO_FOREACHOliver Wolff2018-08-151-4/+7
| | | | | | | | To avoid unnecessary copies, const is used wherever possible. Change-Id: Ic743716512751cfd24fad5bd37c244b115dd26fe Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QBluetoothServiceInfo - disentangle q<->d madnessTimur Pocheptsov2018-08-091-61/+63
| | | | | | | | | | Having d_ptr as a shared pointer in a copyable q-object, and a q_ptr in this d-object was probably the dumbest idea ever, not sure how this happened at all. Task-number: QTBUG-69857 Change-Id: I845394604d42879ca36f0b376ba94819e223df77 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Replace Q_NULLPTR with nullptrKevin Funk2017-09-291-2/+2
| | | | | Change-Id: Ica194c2568465a94d851ddeaf62ca71b33fe4464 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'gerrit/5.7' into 5.8v5.8.0-beta1Alex Blasche2016-10-121-2/+1
|\ | | | | | | | | | | | | | | Conflicts: src/bluetooth/osx/osxbtledeviceinquiry.mm src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm Change-Id: I7dc75c187af73917f31c28b9edfaf8bcf9652a3e
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-051-2/+1
| |\ | | | | | | | | | Change-Id: Iff285e35cdca30fee28c7927bc01498d70f9de9e
| | * CoreBluetooth - fix broken builds (macOS, iOS, tvOS, watchOS)Timur Pocheptsov2016-10-041-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - With recent SDK changes CoreBluetooth is not in IOBluetooth anymore. This makes corebluetoothwrapper_p.h even uglier, now we have to care about v != 10.9 && v < 10.12; v == 10.9; v >= 10.12. - Using osxbluetooth_p.h we can get rid of forward declarations (for Obj-C classes) and weird includes like <IOBluetooth/IOBluetoothRFCOMChannel.h> - use osxbluetooth_p.h instead (and it will correctly include IOBluetooth/IOBluetooth.h etc.). Change-Id: Ia85ef2e2cc1ac7b15a58864ed25d85a0772e5c86 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | QtBluetooth - get rid of outdated Q_FUNC_INFO use patternTimur Pocheptsov2016-06-031-4/+4
| | | | | | | | | | | | | | | | | | | | | No Q_FUNC_INFO in qCDebug/Warning/Critical needed anymore. Change-Id: I0e47ccc7ffa971b8277b8d742e00319f4acef2f7 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | | QtBluetooth: remove outdate code (OS X/iOS)Timur Pocheptsov2016-06-021-87/+5
|/ / | | | | | | | | | | | | | | | | Since we now have OS X 10.9 and iOS 7.0 as the minimal required (SDK and deployment target) - get rid of outdated code-branches in _SDK_EQUAL_OR_ABOVE etc. Change-Id: I5f546e8bb746f6b94f26a40460b3caa0af6a531c Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* / Updated license headersAntti Kokko2016-01-201-14/+20
|/ | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I856c13e2a6d4d12c46e1286b0ca1c092ee4608f8 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* [Bluetooth] Optimize loopsKonstantin Ritt2015-09-161-1/+1
| | | | | | | | | | | | Decrease complexity from O(N+N*logN) to just O(N) for cases like foreach (Key key, map.keys()) Value value = map.value(key); , by rewriting with use of iterators. Change-Id: I81f1334797f16b624293fcebdee885b2be3c89f1 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-161-22/+14
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I3822a6484e8f7a420330de1cb1aeb0c3d1cf41b7 Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
* Bluetooth - add runtime OS version check (OS X)Timur Pocheptsov2015-02-061-24/+52
| | | | | | | | Compile time checks (SDK version) are not sufficient, add runtime checks also. Change-Id: I4214d0a32544883d07da06a2ce2db24ea42678cf Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* QBluetoothServiceInfo - cleanup (OS X)Timur Pocheptsov2014-12-181-17/+11
| | | | | | | Use Q_FUNC_INFO in asserts/messages. Change-Id: Ie766016a36c3cc47d4561a74ed8bf179357a19df Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* QtBluetooth - device discovery test on OS X.Timur Pocheptsov2014-10-161-26/+53
| | | | | | | | | | | | | | - Enable this auto test on OS X, requires a modification: 'stop' is synchronous and so cancelSpy.isEmpty() == false (the last QVERIFY fails. - Fix several problems with SDK versions (workarounds for non-existing methods in SDK < 10.9). - Change error handling: we set an error in a ctor _only_ if QBluetoothAddress parameter was not null (!isNull()) and we failed to find a local device with such an address. This is the only case documented/expected, all others _do_ _not_ set an error, even if a local adapter is off or does not exits. This fixes a failing (to integrate) auto-test. Change-Id: I9902211078330f296775f1c3249da166c19001a4 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* QtBluetooth - enable auto tests on OS X.Timur Pocheptsov2014-10-011-2/+43
| | | | | | | | | | | | The first patch to enable tests - does not require any modifications in tests, just enabling the test. Add fix for publishedRecordWithDictioinary - this function is new in 10.9, deprecating withSDPRe..., but it crashed the test on 10.7 (and the same must happen on 10.8). Change-Id: I38e92cbc6f72fcaf8034824ef734148111139e0a Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* QBluetoothServiceInfo - bugfix for OS X.Timur Pocheptsov2014-09-301-6/+4
| | | | | | | | | 1. Register service even if there is not server listening for a given PSM/channel - this works with IOBluetooth and we can return true as success. 2. In unregisterService - reset 'registered' data-member to false (found by auto/tests). Change-Id: Iecdb0dd3725cedb1411c49be77faa02b8e85d872 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Port QBluetoothServer to OS X.Timur Pocheptsov2014-09-261-33/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement QBluetoothServer using IOBluetooth framework. - Add empty (for now) implementation + modify .pro file. - Add a 'socket listener'. Actually, there are no sockets, no 'listen' but I still have to emulate this to make a server work. - Implement (to some degree) QBluetoothServer::listen member functions: on OS X QBluetoothServer::listen(address, port) does not really create a listening socket, it just checks that this port is not busy yet (IOBluetooth can either listen on a port you provide, or can listen on any port, but it can not select some port and listen on it. Only after service registered (with 'invalid' port first) - we have a real channelID or PSM. - Server port - either a "fake" port assigned by QBluetoothServer::listen, or a real port as registered by IOBluetooth. - Update a dependency. - Implement nextPendingConnection. - Implement fake server ports (something similar to Android version), but on OS X these fake ports can later be replaced with real ports. - Service info updates PSM/ChannelID with a real port and also starts a listener. - Unregister a server (dtor, close, etc.) - Do not update a 'fake' port with a real one: it can happen, that a real port is already taken by some 'fake' port and this will break the whole idea of fake ports. Let them be always fake, the real is required only when starting a 'listener'. - With 'fake' server ports '0' is not valid anymore (use serverPort() instead). Change-Id: I44537a35891c6806e58ec874a18bd938d4b41c53 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Port QBluetoothSocket to OS X.Timur Pocheptsov2014-09-261-5/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement QBluetoothSocket using IOBluetooth framework on OS X (will implement Qt's API as close as possible with a given Apple's API). Update 0: add (empty for now) delegate classes (L2CAP/RFCOMM). Update 1: add service discovery (called doDeviceDiscovery though). Update 2: implement the public class' logic (QBluetoothSocket, connectToService). Update 3: more public logic implemented (since it's easy :) ) Update 4: L2CAP delegate - initial logic. Update 5: connectToService - L2CAP "socket". Update 6: fix pivate header files. Update 7: fix dependency after the previous patch was merged. Update 8: writeData - initial version for L2CAP. Update 9: since RFCOM/L2CAP delegates have the same interface, no need in duplicating the same class - add a "generic" ChannelDelegate instead. Update 10: more RFCOMM logic. Update 11: function to build a service description from QBluetoothServiceInfo (to be registered on SDP server). Update 12: QBluetoothSocket::close/abort. Update 13: Create a dictioinary out of QBluetoothServiceInfo to register a service. Update 14: Add service registration. Update 15: Convert attributes (sequences and 'scalars') from QBluetoothServiceInfor into NSDictionary. Update 16: Update QBluetoothServiceInfo with a real PSM/ChannelID after a service was registered. Update 17: Move a private class (bluetooth socket) into the separate private header file (to make it visible for bluetooth_server_osx) Update 18: Add an interface to create a bluetooth socket (private class) from a channel, reported by a notification (found by a listening server). Update 19: Fix an invalid assert - any state (Inactive/ServiceDiscovery/DeviceDiscovery) is possible, not only Inactive. Implement the missing 'readData' and 'writeData' for RFCOMM. Set SDP query as non-active after query finished. Temporary (!) workaround - can not invokeMethod on a private socket (d_ptr). Update 20: When creating a socket wrapper from an incoming notification/channel, set: socket type + channel's delegate. Change-Id: Idd6d5478597206ed759f49e282baed948d105ddf Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Port QBluetoothServiceInfo and QBluetoothServiceDiscoveryAgent to OS X.Timur Pocheptsov2014-09-161-0/+332
QBluetoothServiceInfo and QBluetoothServiceDiscoveryAgent - version for OS X (IOBluetooth-based). Update 0: initial dummy version + mods to enable this new classes to be built with qtconnectivity. Update 1: SDP query + initial implementation of a services discovery agent. Update 2: aux functions to "parse" a service records once I got it. Update 3: extract services UUIDs on a discovered device, if any. Update 4: refactor Update 5: "fix" asserts Update 6: more asserts fixed. Update 7: add the ability to stop SDP query (to be tested!!!) Update 8: mods as suggested in review. Update 9: no reason to check the size of discoveredDevices after 'clear' call. Update 10: set an error and error description only if it's a 'singleDevice'. Update 11: fix private header (_p suffix). Update 12: on 10.7 (with quite old clang) there is no 'subscript operator' syntax for NSDictionary. Change-Id: Ib3b07b49e3ed6381af75fb8b1e29cdf1e7a11237 Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>