For dual mode devices there are several state variables that are
independent for each bearer. This patch splits these states up into two
separate variable groups in btd_device and tracks the values based on
what kind of connection is in question.
The information is also used to select which bearer to use with
Device1.Connect and Device1.Pair. The basic rule is that the bearer
that's not connected/paired is selected, or then the bearer over which
the device was last seen is selected.
Since we combine LE and BR/EDR into a single device we need a way to
decide which bearer to use when Device1.Pair() or Device1.Connect() are
called. Simplest way is to use the last discovery moment as a factor in
the decision making.
This patch adds simple downmix support from stereo to mono in order to
support mono channel mode as it's mandatory for SBC codec. It uses
simple (L+R)/2 calculation which should be good enough.
This removes start discovery returned status check what derives double
check of expected status. Returned status should be only checked for cancel
discovery.
Tester setup result is set to pass after set to fail because of missing
function return. This adds return from function after setting of setup
result to fail.
With this patch, deamon will not ask kernel to resolve name of remote
device during inquiry in case device name is already in the local cache.
Instead Android will be updated with already known device name.
The dev->bdaddr_type indicates the LE address type in case a device
suppors LE. If we've determined that we want to pair over BR/EDR we
should just pass an explicit BDADDR_BREDR value.
Typically a device address gets updated when we go from RPA to Identity
Address. Since storing data is not permitted for RPA force the storing
after the address has changed.
The patch makes AVRCP to be transport agnostic so that it can be used in
with socket pair to build unit tests.
The idea is that all AVRCP specific logic will stay on avrcp-lib until it
receives proper unit tests and then eventually will be used by audio
plugin as well.
This adds support for suspending/resuming GET requests GET when SRM is
active, in this case suspending the TX queue wont stop the remote
to continue sending packets, to do that SRMP header should be set to wait
so the remote should wait.