| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: Id8dffff9bb75db396aabf6da2a3acb78505a6476
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the model changes quickly from one discovery mode to the next, the
public device discovery agent and the internal device discovery agent
inside QBlutoothServiceDiscoveryAgent interact with each other. One agent
is shutting down while the other is starting. Since both instances
manage the same hardware, the resulting signals hit the agents in
unexpected states which even leads to random crashes.
The fix is to let one agent stop and only start the next one once the
first has properly shut down. Unfortunately the public BluetoothModel
API acts synchronously via its running property. Therefore the
synchronous running property must be mapped to asynchronous state changes
inside the agents. To achieve this the model uses an internal state
transition table which determines how the next setRunning(bool) call
is to be processed.
As a consequence it is possible to have a non-running BluetoothModel
but the internal agent is still shutting down. Another scenario
might exhibit a running model whereas one internal agent is still
finishing up and the next is waiting to start.
Task-number: QTBUG-51307
Change-Id: I0a471b913b8784d2218a797442cee7ee4d00edf3
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This may happen when the device discovery agent is quickly started and
stopped and started again. If the stop-start combination is happening
quicker than dbus can deliver the Discovering flag of the Adapter1
BlueZ interface, BlueZ's stop response will override the new start
discovery request.
Task-number: QTBUG-53715
Change-Id: I6a03fc525c7f390db009fc68a5313352ebba7f79
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PUBLIC_BROWSE_GROUP scans are not always supported. In such cases
more targeted service scans are to be used. This patch modifies
QBluetoothServiceDiscoveryAgent such that when a uuid filter
is set targeted service scans are used rather than generic
PUBLIC_BROWSE_GROUP ones.
QBluetoothSocket always scans with an applied uuid filter and
therefore directly benefits from the patch.
Change-Id: I94997d2cf8f70fa7db5422d78c8bfdbe2aa1dbbc
Task-number: QTBUG-53041
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-53749
Change-Id: I6e7832b4a5a70bed153fb8b0718b3c66177ffd58
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Multiple device discovery agents can influence each other as they
monitor the same DBus BlueZ adapter. When one agent started
and another just stopped/finished the discovery process, the newly
started agent is caught in an unprepared state.
The other use case where this might happen is when one agent stopped
the discovery and another agent goes through the same start/stop cycle
in very quick order, then the first agent may still have pending signals
despiter adapter being deleted.
In any case this patch simply ensures that an already inactive
agent doesn't go through the finishing process again.
Task-number: QTBUG-51307
Change-Id: If0e2b944f1ceadb9037179c4fde2f3f79741d0a5
Reviewed-by: dmnikola <dmitry.nikolaev@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The agent class constructors were initializing the q_ptr member of
their d_ptr; it is cleaner to pass this down to the d_ptr's
constructor and let it do this itself. This also lets Coverity know
that initialization actually does happen (CID 22330). In particular,
it makes sure we can't leave it uninitialized, if an agent
implementation happens to neglect to do so.
Change-Id: Ie01046a5a113b5669e8e63c6a22f692cd3943ac0
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This happens when the Android device does not support BTLE. Previously
the device search agent progressed even when it claimed that it was
done already.
Change-Id: If14df70bba02703f5feb8bc9c0569f596defede9
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The error(), finished() and canceled() signals notify the user about
internal state changes. Signal handlers may call back into the same
class instance that just emitted the signals. If the instance did not
cleanup its internal state then the sudden reentry can cause weird
behavior.
Adds a comment that the pendingCancel & pendingStart behavior is
to be removed in Qt6. It has little advantage and cuases lots of
headaches. Unfortunately all backends exhibit the behavior and
therefore every backend has to change accordingly.
Task-number: QTBUG-51307
Change-Id: Ia5bf9efd0ed27e015361b10499ced069d16a9c93
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The writer wasn't initialized; Coverity grumbled (CID 22323).
Various stanzas take for granted that one or other is set; assert
there. Various stanzas created each afresh, without considering they
might be leaking a prior one; delete first (could probably have
asserted == 0 instead).
Change-Id: I4c792fbbd611e06c28235ceafee40cc18268c60d
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: I33cfb293df15c82247561d3540a4513cdf63b910
|
| |\
| | |
| | |
| | | |
Change-Id: I666ffe72bed5b809d4214f0600da65f6bbfc4609
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bluetooth on iOS needs some of 'default' (or 'dummy') implementations,
but does not want warnings like 'Dummy backend running', as it's
not really dummy. Also, having printDummyWarning calls
can end-up in a linker error since we do not build dummy_helper.cpp on iOS.
The solution is to ifndef all these calls/includes.
Change-Id: I9c64f2bacbc6134ed30d75f85f9df0194add418d
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
Change-Id: Ia9bc69bf68eb40ceb9bd5bd63d96ab4dece43c00
|
| |\|
| | |
| | |
| | | |
Change-Id: I210f9a9a06e48a63073f0ef8474fc963ce24936d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix missing symbol problem on iOS and Android.
Change-Id: I055e0b9db8757ab0e92c640736e9bdb9de48e726
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Examples in binary packages now directly match the install path.
Change-Id: I8fc41af85033c88d6a3129efdb616dac6d99866d
Task-number: QTBUG-52953
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It seems that some BTLE devices require more than 10s to be found.
This timeout change increases the chances to find slow remote devices.
The user has to cancel if he doesn't want to wait the full 25s.
Task-number: QTBUG-53012
Change-Id: Id9bafbe09528619ac6dff17c33322ef90beb8829
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QBluetoothUuid.toUInt128() always returns big endian notation.
We have to convert it to host order before we convert to Bluetooth
order.
Task-number: QTBUG-53421
Change-Id: Ibab4f06fa70739adb163523c803a203608454427
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While I did not find anything in the spec that requires unused fields to
be zero, some controllers seem to require that.
Task-number: QTBUG-53224
Change-Id: I5ab05a6689f2632a1d60ee0f259cbdd792467729
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ie5088c2c3a9b4c44696ac84cff7ac0c8b03c735b
Task-number: QTBUG-45291
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/nfc/corkboard/corkboard.pro
Change-Id: I5d1ea0a8e21a1b55dbf744c2f4b469bc51f05c7a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There have been plenty of bugs where QtBluetooth was compiled
with the dummy backend and the API user reported bugs against it. So far
debug output was not able to identify the dummy backend which made
debugging of customer code more difficult.
This patch prints the name of the backend once shortly after the
application startup. The other backends like Bluez do that already.
Change-Id: I86353ef3c9c99cafac38805f253e20a3ad3e10a5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QBluetoothSocket::connectToService() performs its own service discovery
if the remote RFCOMM channel is not known. This may happen if the passed
in BluetothServiceInfo object was obtained via a minimal service
discovery (which does not perform a channel discovery) or if the
connectToService(const QBluetoothAddress &address, const QBluetoothUuid
&uuid, OpenMode openMode = ReadWrite);
overload was called.
This was not an issue with Bluez4 as every type of discovery
provided the RFCOMM channel id.
The internal discovery required at least the service's ServiceId to be
known. However a lot of SerialPort profiles do not set a custom service
uuid as ServiceId nor do they set the SerialPort UUID as ServiceId. Often they
provide the SerialPort uuid via the ServiceClassIds only.
This patch ensures that the internal service discovery is started if the
ServiceId is known or if the ServiceClassIds contains the SerialPort
uuid.
Furthermore the internal discovery did not apply the complete uuid filter.
If a ServiceClassId was added then the ServiceId was discarded which
could lead to services not being found.
Task-number: QTBUG-47593
Change-Id: Ia6e52d1a9def0f770080fd70e2b6deb40e69fa69
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
qDebug() << foobar << QBluetoothServiceInfo()
The above statement produced output where the QBluetoothServiceInfo
content was printed before foobar. This patch fixes the issue. The debug
operator uses the passed in debug object rather than creating a new
one when printing.
Change-Id: Ic92ca341baa8b4bce934a3895d2da77a2e17b5c3
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Better explains that the uuid filter is applied against two service
attributes rather than only one. The ServiceId and the ServiceClassIds
are used for matching purposes.
Change-Id: Ib301e438c27977288c56a2bb9dfe68e2d3f2a10d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It highlights the optional curly braces and the connection to QUuid.
Task-number: QTBUG-52685
Change-Id: Iebfa84dc7f83fd2ef0aa02cb5e21b3f62de84d24
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-52530
Change-Id: I6ae41b3f8998ffc18d8b8205c6bbe788e8c4898b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Android does not provide an API to detect when an NFC tag is removed
from the vincinity. To detect such a case the Android implementation
uses active polling. During each polling cycle the implementation
connects and disconnects from the tag. If it failed, the tag is assumed
to have been removed from the vincinity.
Such failed attempts cause an IOException which are printed to stderr. This
is confusing as the developer might mistake them for some other serious
problem. This change suppresses all related warnings.
Change-Id: I95cf57076139e7d0a5ad31d4cc770a81ced12242
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
Reviewed-by: Peter Rustler <peter.rustler@basyskom.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QNearFieldManager::registerNdefMessageHandler() is supposed to register
the current app as platform handler for certain tag types. The example
is written around this concept and doesn't start the target detection
when such a registration succeeded.
Unfortunately the Android implementation does something completely
different. Therefore the startTargetDetection() and connect() calls
after the current return is necessary to make the example useful.
For now we simply ignore the feature and always start target
detection. Since neither NEARD/Linux nor Android (the only two
supported platforms) have an implementation for the feature
the modified example works as expected.
Considering the current state it should be considered to remove
this NDEF message registration feature in Qt 6 altogether. The only platform
which ever supported the feature was BB10 and its implementation was
removed a long time ago.
Task-number: QTBUG-52154
Change-Id: Ibef9e77ac33b9629b6d81aa70eaa01ab1702cfcb
Reviewed-by: Peter Rustler <peter.rustler@basyskom.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since Android 6.0 Bluetooth device discovery requires
new permissions (ACCESS_FINE_LOCATION or ACCESS_COURSE_LOCATION).
Otherwise non-BTLE devices will no show up anymore. This patch adds the
required permissions to QtBLuetooth.
For details see
http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id
Task-number: QTBUG-52530
Change-Id: I7b64ab57c5c9ee2e08308eaa58d33708c5e31244
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
The address was fixed for privacy reasons.
Change-Id: Ifbdcb88d84215601bd202c0835237bb1c3100ca3
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The connectivity QML plugins increase their version along the Qt modules
version.
In addition the CXX_MODULE value was incorrect which caused broken
qmltype make targets (if IMPORT_VERSION is not defined).
The default value processing in qml_plugin.prf is sufficient.
Change-Id: Ia9a1446defaa29bb4408ac803e7fe856215f6b67
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I0358b76dd2b9fb2a6224c4b9b2082a748b2d5d7a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I77d7b5877ce36057c3882a0b397ff27d5c35ad53
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-serviceForUUID: fails to find included service and returns a nil
for a valid service previously discovered.
Task-number: QTBUG-52324
Change-Id: I9f4f8b1f3d3a78879344ace0170e23c03921d648
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I4bcaa2d27d0ac4c9d3ed5fc3800392ba73e77a89
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Subjects each *.png file that matched grep -law "sRGB" to:
pngcrush -ow -brute -rem allb -reduce -force
Change-Id: I621cb2437578c3f8a658e7c26a4de045825147ce
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Support was dropped from the Emulator in 2012.
Change-Id: I8cf75c368f1197a49bdc242c13408d0a2e6eda3d
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/bluetooth/qlowenergycontroller.h
Change-Id: I15571e47fbf06545d46d1b9a9b2b47bf815ae293
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use Q_GLOBAL_STATIC instead of simple static QMap object to avoid problems with
undefined initialization order for 'statics' from different translation units.
Task-number: QTBUG-51860
Change-Id: I6ce48f3c0770dc0ff125b443816f6b3b23ae809e
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-Wzero-as-null-pointer-constant
... or equivalent.
QtBase 5.6 headers already compile that way, so let the other
modules follow suit.
Added explicit where it was missing. This is not a source-
incompatible change, because code that breaks by this is
a bug. Let's not have this sitting around in an LTS.
Task-number: QTBUG-45291
Change-Id: I375361699615d0fc874e0b96a84543e233eff5f0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I4d125bbe7f18cb77dffc3747f33bba2b63b1a87d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The comparison operators usually have const& parameters.
Change-Id: Ibd8e7d1fe5704b4de3a0bfabe1bbc991411eecba
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/bluetooth/bluetooth.pro
Change-Id: Ied68947463e7eba418386a99903131d2cbdd458b
|
| |
| |
| |
| |
| | |
Change-Id: Ida2256e88c7ebe698f8b4734afc504dcef2da2d2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
this fixes static builds by ensuring that all dependencies are exported.
Task-number: QTBUG-51071
Change-Id: I3cdb59c65dbbf2b536ee927dd912349b4ceca335
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The specification says: "Only the significant part of the Advertising
Data is transmitted in the advertising packets". This seems to refer to
the data that is actually sent by the hardware and not to the data used
in the HCI command, as our original implementation assumed. At least
there seem to be controllers who won't accept such "short" packets.
Change-Id: I732cfc1e05fc135fd336d832e725d969c98b60cf
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I9800e80b455c14f0e6086b1d9e21e2b26a385ebe
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When given the choice, devices will try to establish the GATT connection
over BR/EDR, which we don't offer. It also makes little sense,
considering we advertise over an LE mechanism only.
This patch makes connections from e.g. Android and iPhone work.
Change-Id: I7a224ab20a50c1c6ead698ea864b1ec13bca3851
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|