Age | Commit message (Collapse) | Author | Files | Lines |
|
Remove unnecessary trailing newlines (already added by DBG()) and
rewrite debug messages to become more useful.
|
|
This prevent using status and signal from previous active modem
|
|
Indicators may have invalid values set from the last time they were used
|
|
A2DP sink endpoint shall not be created if A2DP sink interface is disabled.
Same holds for A2DP source endpoint and A2DP source interface.
Such fixes bluetoothd crash when SDP record is registered and remote
device tries to connect and stream to A2DP sink which is not initialized.
Dereferencing of NULL happens in source_new_stream since device->source
was not created.
|
|
This may cause indicators to not be reported correctly when adapter is
reset.
|
|
This can cause problem if the adapter is reset in the middle of a call
the indicators won't be update properly.
|
|
This can happen if there is a call with a status different than idle when
adaptor is turned on the call indicators weren't updated.
|
|
This may cause invalid values to be reported since the status of call can
change during the time adaptor was off.
|
|
|
|
When gateway_suspend_stream is called it should change the
gateway state machine from PLAYING to CONNECTED.
|
|
This fixes bluetoothd exit when AT+VTS command is badly formatted,
e.g. as AT+VTS\xfe\xfe[...]=1
Verification it done for the numeric value to be larger than 0x23,
that corresponds to the hash '#', and to be lower than 0x44, that
corresponds to 'D', such that the tone is in {0-9, *, #, A, B, C, D}.
|
|
It makes sense to try to reuse the same SEP whenever possible when
reconfiguring streams. In fact this is even necessary with a particular
BMW car kit which doesn't allow a new stream to be set up to any other
SEP.
|
|
When parsing endpoint properties application my not have set some of the
mandatory properties, also the size of capability is now initialized with
0 so if the codec doesn't have any capabilities (e.g. pcm) the variable
won't be used uninitialized.
|
|
|
|
This fixes possible bluetoothd crash on AVDTP Suspend request timeout
if A2DP client was destroyed after the request was sent but before its
timeout handled.
If Suspend request times out due to any reason, then references to A2DP
session and stream are cleared in unix_client. Therefore, callback cannot
be removed when unix_client is destroyed (e.g. on incomming call).
After that, consequent Abort request is sent. If the request times out
as well, than stream_state_changed callback is invoked to change AVDTP
state to Idle, which causes crash due to NULL dereferencing.
Therefore, it is important to keep references to AVDTP session and stream
in unix_client until it is destroyed.
|
|
|
|
|
|
NREC may change during the connections so it has to be tracked in order
to signal changes to applications.
|
|
This should indicate to the endpoint what routing the transport is using
|
|
This should make Acquire blocking friendly since the client no longer has
to call GetProperties to discover how much it can write/read when using
the acquired file descriptor.
|
|
|
|
When passing allocated memory to avdtp_service_cap_new it needs to be
freed since avdtp_service_cap_new copies the memory.
|
|
Setup capabilities were not freed when capabilities were automatically
generated and not just taken as it used to be with old unix socket
clients.
|
|
When acting as initiator stream io already has a reference to io channel
to be able to cancel if necessary.
|
|
The pending call must be unrefed in those cases
|
|
The Three Way Calling additionally support AT+CHLD values 0,3 and 4.
|
|
The Enhanced Call Control feature is simply an extension of the current
AT+CHLD command:
- Release Specified Call: AT+CHLD=1<idex>
- Private Consultation Mode: AT+CHLD=1<idex>
The new arguments for this command include an index of a specific call as
indicated in the +CLCC response.
|
|
|
|
|
|
In some extreme cases such as modem removal ofono may not have a chance
to set the call to disconnected state so indicators would not be update
properly.
|
|
This should make sure a modem is only used if a network is available
|
|
|
|
|
|
|
|
|
|
Ofono API has changed, modem list is no longer a property
|
|
|
|
|
|
|
|
When connection is started via headset_config_stream there is no D-Bus
message to reply to.
|
|
HFP/HSP can be connected when registering an endpoint which is different
than on a2dp where the sep cannot be configured already since it wasn't
available before.
|
|
Ultimately manager_get_adapters shouldn't be needed at all. By
introducing manager_foreach_adapter most instances can be removed.
|
|
Functions get_send_buffer_size and set_send_buffer_size are added to
avdpt.c.
get_send_buffer_size returns size of send buffer for a given socket
on success or error code on failure. set_send_buffer_size sets size
of send buffer for a given socket, and returns 0 on success or error
code on failure.
Size of send buffer for L2CAP socket for SRC AVDTP stream is verified
during establishment of a new transport channel. If the size is less
than twice of outgoing L2CAP MTU, then it is considered as being
insufficient to handle streaming data reliably.
In this case buffer size is increased to be twice of MTU size. Such
fixes some IOP problems with car-kits that use large MTU for music
playback.
|
|
|
|
|
|
|
|
Current code only prevent duplicate D-Bus signals, so in case headset
changes the volume a client may set the same volume level again which
would be send as new volume level.
To fix this headset_set_gain now return -EALREADY if nothing has changed
so code using it can just ignore the change instead of sending to remote
device.
|
|
This cause some clients like PulseAudio to fail to find a proper
transport since connected state is send before transport configuration
is set.
To fix this now SetConfiguration is called early on when headset is still
in connecting phase, this matches sink/source where SetConfiguration is
also called before connected.
|
|
Remove old dbus error report function. This patch doesn't make things
really really better, but is a start.
|
|
|