| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This ensures that the timer is not only set when we requested the
suspend but also when the other side requested the suspend.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It's very tricky to get the multiple connected HSP/HFP devices use case right.
E.g. in the case of in-band ringtone the specification mandates us to open SCO
to the HFP before sending RING indications. So, in the case of multiple
connected devices we would have to open multimple simultaneous SCO connections
which simply isn't a wise thing to do.
|
|
|
|
|
|
| |
Without this fix sending invalid arguments to telephony-dummy causes libgdbus
to return NO_MEMORY to libdbus which in turn causes the method handler to be
called in an infinite loop.
|
| |
|
| |
|
|
|
|
|
| |
If the remote end sends a START_CMD while we're setting up the stream
use it to notify the stream requestor (unix.c) of success.
|
|
|
|
|
|
|
| |
This could happen if both peers send START_CMD at the same time and the
SNK peer doesn't reject the command (as it should according to the
spec). This behaviour can be seen e.g. when using pulseaudio and the
Mororola S9 headset.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some time back the INT role OPEN transition was moved from receiving the OPEN
response to actually having the stream L2CAP channel ready. Unfortunatly this
patch forgot to change the ACP case so the code has so far attempted a double
->OPEN transition. According to the AVDTP spec the transition should happen
before the stream L2CAP transport but this doesn't really make sense since
several places want to have the stream fd ready when we go to the OPEN state.
Therefore, this patch removes the ACP role OPEN transition from receiving the
OPEN command and lets the state change be in having the stream L2CAP transport
established.
|
| |
|
|
|
|
|
| |
This error code doesn't appear in the CME error table in the HFP spec but there
are references to it in a couple of other places in the spec.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
There's something broken in the "profile enabled" logic at the moment which
makes server_is_enabled return FALSE sometimes when it shouldn't which causes
the necessary interface not to be added to remote device objects. Use simply
the config file values for now since we don't support per-adapter server
configuration anyway.
|
|
|
|
|
|
|
| |
Previously the avctp session would be free'd and the connect callback would try
to access this free'd memory. Now we detect this situation properly but the
fundamental problem remains that the bt_l2cap_connect API doesn't allow
aborting the connect procedure.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Remove the stream state callback if stream start fails. Without this patch the
callback could still be called after a unix client has disconnected which in
turn would cause a double-free to occur. There is code to remove the callback
also in client_free() but it won't work since we remove any references to the
session and stream in the resume callback.
|
|
|
|
|
|
| |
With this patch drivers can notify the core daemon that a device supports some
UUID. This is useful in case we don't have a service record for a profile which
the remote device initiates a connection for.
|
|
|
|
|
| |
This is preparation for allowing the device object to be correctly set up even
when we don't have the full service records but only the remote UUID's.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
In theory a headset could be in a connected state when the driver for it gets
unregistered. Do proper cleanup in this case (call headset_set_state(hs,
DISCONNECTED)). Currently this happens even in practice due to a bug where we
incorrectly assume that a device has removed a profile when in fact it's just
hiding it while it's connected.
|
| |
|
|
|
|
|
|
|
| |
We can't initialize dev->sink in the AVDTP server callback since at this point
we don't know if the remote device will be acting in audio source or audio sink
role. So, do the initialization when we get the SetConfiguration command since
then we can check the type of the SEP that was selected.
|
|
|
|
|
|
| |
If we haven't done SDP yet the data structures will be uninitialized. This
patch makes sure that the structures are properly initialized if we get an
incoming connection before service discovery has been done.
|
|
|
|
|
| |
This is needed in preparation of supporting remotely initated audio device
pairing and connections (when we haven't done SDP to the remote device yet).
|
|
|
|
|
|
| |
Basicly reverts the previous commit since data calls just don't make sense with
HFP. Check for proper voice call dial string and pass the number without the
terminating semicolon to the telephony driver.
|
| |
|
|
|
|
|
|
|
| |
Voice call ATD requests have a semicolon at the end of the string while data
call requests don't. So detect this and don't copy the semicolon to the
currently active number (possible sent back to the headset in subsequent
operations).
|
|
|
|
|
|
| |
Without this fix we segfault if a device pairs and connects to us before we
have completed service discovery to it. Underneath is a more fundamental
problem of how we initialize our data structures and this still needs fixing.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We got one segfault due to hs == NULL but I couldn't figure out how on earth in
could happen. The best I can do right now is to have an assert to catch it
instead of a direct segfault.
|
| |
|