Age | Commit message (Collapse) | Author |
|
audio/unix.c: In function ‘client_cb’:
audio/unix.c:1078:20: error: ‘a2dp’ may be used uninitialized in this function
audio/unix.c:1154:20: error: ‘a2dp’ may be used uninitialized in this function
make[1]: *** [audio/unix.o] Error 1
|
|
Since there is only one pending request and is directly acessible via
owner pointer there is no need for media_owner_remove to take the
request as parameter.
|
|
If there are pending start or suspend requests they should all fail since
once close indication return the state will be changed to closing and
remote stack can then disconnect cleanly.
This also follow what specs says about connection release:
"When the Upper Layer has completed releasing all resources allocated to
the stream, an AVDTP_CLOSE_RSP is sent back to the INT."
|
|
Request must be replied before removed.
|
|
This should avoid doing too much implicity and should improve the
readability of the code.
|
|
Instead of directly add/remove and owner to transport list do it in a
separate function.
|
|
This make it possible for the owners to synchronize its state if the
transport is going to be suspended.
Note that client which don't want to wait for Release can just ignore/
not wait for its reply.
|
|
Response on AT+BLDN command in maemo6 telephony driver is added to be
sent after confirmation from csd back-end. Both ERROR or OK codes are
sent only after asynchronous response on D-Bus call is available.
|
|
Handling of pending D-Bus calls to csd back-end is added maemo6
telephony driver.
|
|
In situations where application wants to switch profiles e.g HFP to A2DP
it normally needs to wait SCO to be disconnected to resume A2DP due to
resource limitations on headset.
There seems to be an issue in the kernel side which prevent this to work
properly, apparently shutdown does not wait the link to be disconnected,
but it is under investigation.
|
|
After releasing the endpoint should not be used anymore.
|
|
|
|
g_dbus_unregister_interface is removed from maemo6 telephony driver.
Interface com.nokia.MaemoTelephony is not used as result of changes
in csd back-end. CreateWith was replaced by Create and CreateFromLast
method calls, and set last number is implemented directly in csd.
Registration of this interface was removed due to these changes.
|
|
Since media driver uses a2dp to register its sep and store a pointer,
this pointer may be invalid/freed when media driver is unregistered.
To fix this now a2dp will also release any sep registered using media
API.
It also protect from future changes on the order of drivers removal by
checking if pointers (sep or endpoint) are still available in the list
before removing them.
|
|
This forces recalculating the remote SEP if the local SEP's codec type
is no longer the same as the remote SEP's codec type. This can happen
after we issue a BT_STOP_STREAM+BT_CLOSE followed by a
BT_SET_CONFIGURATION with a new SEID.
|
|
'Protocol not supported' error code is added to the registration of A2DP
end-points. Error response org.bluez.Error.NotSupported instead of
org.bluez.Error.InvalidArguments is used when SEP registration fails due
to disabled corresponding interface in audio.conf.
|
|
last_dialed_number and callerid are not used after changing CreateWith
to Create and CreateFromLast csd method calls, and therefore can be
removed.
|
|
Dial and re-dial to last number functions are changed in maemo6
telephony driver accordingly to updated API in csd back-end. CreateWith
method call is replaced by Create and CreateFromLast.
After such modification callerid and last dialed number are not used
and hence removed in sucessive patch.
|
|
telephony_last_dialed_number_req function moved to be after
send_method_call. It is used in successive commit.
|
|
At least one headset with both A2DP and PBAP sends delayed responses
to AVDTP requests when it is doing PBAP queries (typically at the
beginning of the connection).
Increasing the timer by two seconds to give the headset more time to
reply, to avoid aborting the AVDTP connection.
|
|
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.
|