Stream should only be closed if sep is unlocked otherwise there is a
possibility that sep reconfiguration is triggered although the sep is in
use by the user application.
Memory allocated for pending authorizations were not freed when
removing/unregistering an audio device, this could also cause a crash
if the core doesn't automatically cancel pending requests.
If for some reason there is not enough data provided to the function
bluetooth_a2dp_write() and there are leftovers to handle, the ALSA
module will segfault.
Audio.conf is updated to support fast connectable mode. Set
FastConnectable to true to enable and to false to disable. Headset
initialization and call indicators are updated respectively. It is
disabled by default.
Set fast connectable added to audio manager interface. Enables
fast connectable mode for all audio adapters or sets respective
values to default when disabled. It does not interfere with any
other audio manager's interfaces, modes, or states.
Some headsets expect incoming call indication before they can send ATA
command. In current implementation of telephony we do not send outband
notyfication about incoming call when call previously was in WAITING
state. And without that kind of notyfication BH-108 and BackBeat 903
headset cannot send ATA command - user is unable to answer to that call
from headset.
Added handling for that case in func handle_call_status(). When phone now
is in CSD_CALL_STATUS_MT_ALERTING and previously was in
CSD_CALL_STATUS_WAITING that means we need to send incoming call
notyfication (it was not sent earlier because new call was waiting for end
of active call). This will send RING commands to headset if it is needed.
This patch simplifies and makes maemo6 telephony driver code consistent
with libscnet API regarding SignalBarsChanged. RSSI percents and RSSI
dBs are not among the parameters when SignalBarsChanged emited.
Therefore, these parameters are removed. Names are changed to reflect
libscnet d-bus interface notations. Comments and debug information are
updated in places where units or operations are unclear.
Signal strength in terms of bars units is updated by emited
SignalBarsChanged instead of SignalStrengthChanged from libscnet library.
It contains required number of bars to display in scale 0..5. Conversion
from percent or decibel units to bars is not needed and therefore removed.
Same holds when initializing by request of SignalBars, where bars are in
0..5 range. Conversion from percents is removed. Sanity check is done to
prevent -1 that may be returned when the property is unavailabe (modem
state off).
RSSI percents and dBs are neither present among SignalBarsChanged
properties nor requested during initialization and, therefore, removed.
sbc structure gets leaked each time when there is no data or SBC
syncword, because sbc_finalize is not called. Call sbc_init after
checking the data for syncword.
Both D-Bus signals and +VG command are being sent without checking if their
values have really changed, this is similar to ignore redundant option used
in telephony indicators so we don't disturb the connections with redundant
information.