Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: Ifad933c3c5f574aad437a59708c01c6d674dc914
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
The sampling rate, for both SCO and A2DP, had been harcoded
for convenience. But this is not a constant, because it
depends on the connected handset.
This commit retrieves the sampling rate for each new transport
and uses that information as a parameter for the stream creation
in the softmixer.
Change-Id: I4d30eccba9cc63d7f4e618c571719996a136b4f5
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
The binder does not accept that synchronous calls are performed
in the context of a systemd event, it makes is abort.
To solve that, synchronous calls for creating/deleting bluetooth
streams in the softmixer are simply here replaced by asynchronous
calls.
BUG-AGL: SPEC-2162
Change-Id: I4916d11cc904622449930365c5c09f67fe74425f
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
By monitoring the changes of names on dbus, and
by asking dbus for the list of available names at startup,
the bluealsa plugin can now be started at whatever time,
and is also robust to bluealsa restarts.
Moreover, since the bluealsa name has the HCI interface
has a suffix (org.bluez-alsa.hci0, for instance), there
is not need to hardcode the hci name.
Even better, the plugin supports several instances of bluealsa
(since the daemon needs one instace per hci device), and will
add a watch for added transports for every instance it detects.
Complete cleanup of the created streams in softmixer is done
when one watched instance disappears.
Finnaly, there is a new cmd line '-DWITHOUT_BLUEALSA' option to CMake,
for developpers that want to use 4A on host, without the bluealsa
library. Default build (SDK, bitbake) consider that the bluealsa
shared library is always available.
Notice that in the future, the bluealsa library might disappeared,
to be replaced by a full dbus interface to bluealsa.
BUG-AGL:SPEC-2126
Change-Id: I67fc6edf5147c71dc97f1fc1257d3dadbdde20fc
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
Migrate from 'afb_api_call_sync_legacy' function to 'afb_api_call_sync'
function, therefore, handle function return and response json
differently from before.
Change-Id: Ia7fb42188b8d41e22db2d824459a0d10ed6d6a8e
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Change-Id: I5a3de70994374e9a447fde67eef5925915335863
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Change-Id: I1d554d29e11f7bac327ed65b4187dac3572ae0a6
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Move from controller 'afb-definitions.h' functions to
application framework 'afb/afb-binding.h' functions.
Change-Id: I4cd62af881ef8ac949b082ede9dfcc4736d1e12c
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
That way, includes will be cleaner and '4a-hal-utilities'
functions will be usable in plugin.
Change-Id: I8a2146bd4e5dd5ef449b9ba7f2b1eed4d59045d3
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Implements a new bluealsa plugin to the HAL manager,
reacting to the changes of the available transports.
This plugin is linked with the new bluealsa.so shared
library.
New transports (SCO & A2DP) result in softmixer invocations
of the "attach" verb, that creates the new capture
(eg, A2DP capture from bluealsa ioplug PCM, SCO microphone
capture), playbacks (SCO playback to a softmixer zone,
and SCO output to bluealsa iogplug PCM).
When a transport disappears, the hal manager calls the
transaction deletion verb that will tell the softmixer
to remove the created streams and associated objects.
Change-Id: I36037a4f14ef7fee38070fc0df66c40b4ce46e8b
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
Each hal bluetooth plugin instance has its own data structure.
It is made to have several hal working simultaneously with bluetooth.
Change-Id: I2175bcbb327f590a6098b68c206d1cf518c8fb74
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Use new controller functions to set/get controller configuration structure
external data field.
Change-Id: I0e1ce259fccbbd8b4054efbed07cef5c5b9243b5
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Use new function of controller to add actions to sections
(avoid compilation errors).
Changes of app-controller:
(33abde5 - Romain Forlot) Reworked pluginConfig function
(8094951 - Romain Forlot) Retrieve plugin list from api rather than a global
(871bd64 - Romain Forlot) Add setter/getter for user free defined pointer
(f543f05 - Romain Forlot) Pass the plugin to action.
(ce07538 - Romain Forlot) Abort if one required API is missing
Change-Id: Ic19d72776f00cfe5f8b8fcecff3ab46d42376dda
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Use controller 'afb-defintions.h' defines to call application
framework functions.
Change-Id: If9599b0397a593440ce2e08f039dc279c63f7428
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
44100 seems to be the most common sample rate.
Fis is a temporary fix, because the actual sample rate
may differ and depend on the information available at
the bluetooth transport level.
Handing it dynamically means some significant changes in
softmixer:
- instanciate the rate converter on playback in all the cases
- either been able to modify it after creation, or if not possible,
close and restart the output PCM plugin stack.
Change-Id: I6bd900fd539251b60b97bbaf15e1390bf49c13e0
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
In hal-bluetooth plugin, check that hal is available in plugin
initialization.
Move every data initialization after that everything is checked.
Change-Id: I8055dd17e75099a8009f21a1070d1de293682d4b
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Use hal-bluetooth plugin name definition in prints instead of plain text.
Change-Id: Idafbead6bdc510115ac0f7ebc06cfad79ceeceed
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Enrich 'halmixer' section with bluetooth specific 'source' and 'stream'
during hal-bt plugin initialization.
Some parameters must be passed to plugin using 'params' key in controller
json plugin section.
This allows to get rid of must of the additional configuration when using
bluetooth in a hal.
Change-Id: I5820e75307a3394eca80cf783e7bc4c31c2d7659
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
hal-bt: Use plugin name in onload/initialization prints to help
identify startup hal-bt plugin prints.
Change-Id: Ie065a127d0321d44e800828aab1994b35aeb5739
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Disable hal-bt plugin if no bluetooth receiver is connected at plugin
initialization.
To be bale to check if there is no connected bluetooth receiver,
use call to 'power' verb of 'Bluetooth-Manager' api.
Change-Id: Idd301d2106e8b2e79e25969cc2c1a2a4e4194711
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
In hal-bt plugin, move 'Bluetooth-Manager' require into
plugin 'initialization' instead of plugin 'onload'.
Change-Id: I52dab7631674b4139ad74d0de0825633ea5a5b91
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Function's names was printed using '__func__' when calling application
framework prints functions.
But, as the application framework prints functions already prints
them, '__func__' has been removed from print calls to avoid
duplicated information.
Change-Id: I0dea49a9d84b7ccdbdaecec67ced6c98b5ed26d6
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Add controller events/onloads actions needed by Hal-Bt plugin in
plugin initialization ('CTLP_INIT').
Therefore, these actions can be reomved from json files.
Change-Id: I67391abfc7d3fd0f8b9d4fbd0fe8698497da1393
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Handle error send by 'Bluetooth-Manager' when no bluetooth devices are
detected by discorvery.
Change-Id: Iadd2ef7dbd5aff59da62e50f99622a9aaf2627dc
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
In Hal-Bt plugin, get bluetooth device 'hci' interface
from 'Path' key send by 'Bluetooth-Manager'.
As, the 'Path' key contains the whole path of the device, some string
manipulations are necessary ...
Change-Id: I320a41fb1589214b0ae6999e1c8b793c7cdd41a7
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Correct a typo in debug print of Hal-Bt plugin.
Change-Id: I2fd2731853f865fcfa09dbe06d6f495ad449ff98
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Prevent segfault when receiving 'get_connected_bt_a2dp_devices'
and 'get_selected_bt_a2dp_device' requests in Hal-Bt plugin.
Change-Id: I1eb5dcab997ae77d8adc3cf28585c2449ec42a2e
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
just ignore devices that do not have any UUIDs
Change-Id: Ic3cb25d8f8521e8f6c73afa173745a26e9c873ce
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
Free forgotten application framework call sync json returned object
in Hal-Bt plugin.
Change-Id: Ic9680fd735154b21839fad93b4d13a7609009866
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Improve Hal-Bt print messages by changing the print level of messages,
by adding some messages, and by add information for
some existing messages.
Also improve response of requests.
Change-Id: Icf6dc9f4da1a2ee912dda2850464926c68f2eda6
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Consider an A2DP bluetooth device as connected only if
its seen as 'AVPConnected' by 'Bluetooth-Manager'.
Change-Id: I54511a193ebf64e35a7605723440f3a0fae2b2fd
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Hal-Bt plugin only keeps list of connected bluetooth A2DP devices
instead of a list of all connected bluetooth devices.
Change-Id: I6c06be78a927dcac32ed4683d44431514e7daf06
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Use correct file ('ctl-config.h') instead of (''ctl-plugin.h)
to include controller.
Change-Id: I93a1bcb5dab51211532fc59ffd979ea7acad1530
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Improve Hal-Bt plugin event catcher behaviour by :
- avoiding error generation when bluetooth device is changed.
- avoiding calling 'mixer' when the selected device is changed.
Change-Id: Ia7402f865551ff9df418269ac6927b66581bae9a
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Prevent Hal-Bt plugin from crashing 4A when 'Bluetooth-Manager' api
is not found.
Change-Id: Id8ecc3efcc36825abbb4a2bb8cf553327c45d173
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Correct an error in Hal-Bt plugin when calling 'mixer', response was
not correctly analyzed.
Change-Id: I719076c77501a9c6776559cd8acfcea033a26d1b
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Change-Id: I9daa5d665cd727cd26817645e4dd6b987e6f5b05
Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
|
|
In hal bluetooth plugin, implement all call to softmixer used to
enable/disable bluetooth stream and to set bt streamed device.
Change-Id: I16f6fbf6a02f34490876d390883bdd040661647e
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Get hal data in hal-bt plugin.
It will be used, for example, to get softmixer call information.
Change-Id: I3cb2fd8d2f3f656fb4a796e13c1f62e751675861
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Test afb require on 'Bluetooth-Manager' result at hal-bt plugin
load before keep going with plugin hal-bt load actions.
Change-Id: I19983d12ad6634acafc6cc32d96dbae554c70245
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Add handling of bluetoothg hci and bluetooth profile when keep bluetooth
connected devices up to date.
Change-Id: I49b3e67136168bcae711eb8f7ffb2e1ccdbad3ae
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Correct typo.
Remove an unnecessary message print.
Update returned error code.
Change-Id: If52965b8c7158dfd17bbba411d6dc2c4aafe970a
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Add first version of a hal plugin that will handle hal that
wants bluetooth as an audio device.
Change-Id: I4f5628ef9688c417b1b443fc3c4948cb23c17214
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|
|
Add compilation configuration for 4a-hal-gezneric project.
Change-Id: If5bc696cbf3170923ea67cef301c71720a70fe70
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
|