New pa_shared based API for calling HAL functions so that other modules
needing these functions don't need to link with libdroid.
[common] New API for calling HAL functions. JB#55832
When a profile doesn't have any supported channels, pa_conversion_parse_*_channels
returns false even though the parsing itself succeeded.
This in turn makes the parsing to be aborted altogether.
Handle this case by properly ignoring the profile.
This commit changes the pa_conversion_parse_*_channels functions so that
they return the channel count, or -1 if the parsing has been unsuccessful.
[common] Handle profiles with no supported channels
Signed-off-by: Eugenio Paolantonio (g7) <me@medesimo.eu>
Some adaptations don't check for NULL before using the address which
leads to a crash. Let's just use empty string for address.
[common] Fix segfault with adaptations which assume empty adress is not NULL. Fixes JB#55831
Use updated functions from common which utilize proplist when reconfiguring
input stream.
[source] Use source-output proplist when reconfiguring input stream. JB#55711
When reconfiguring input stream set custom audio source if one
is defined in droid.input.source property. Allowed values are
audio source fancy names listed in
string_conversion_table_audio_source_fancy.
[common] Allow custom audio source based on property. JB#55711
Set route to speaker before changing audio mode to AUDIO_MODE_IN_CALL.
Some devices don't get routing right if the route is something else
(like AUDIO_DEVICE_OUT_WIRED_HEADSET) before calling set_mode().
[common] Add quirk speaker_before_voice. JB#53992
Some devices don't like to receive set_parameters() call while they
are in write(), even if it seems the mutexes are correctly in place.
Standby is another synchronization point which seems to work better.
[common] Add quirk standby_set_route. JB#53992