summaryrefslogtreecommitdiffstats
path: root/plugins/lib/bluetooth/hal-bt.c
AgeCommit message (Collapse)AuthorFilesLines
2018-12-20Adds support for bluetooth audio through bluez-alsaguppy_6.99.4guppy_6.99.3guppy/6.99.4guppy/6.99.36.99.46.99.3Thierry Bultel1-437/+0
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>
2018-11-02hal-bt : Each plugin has its own data structureJonathan Aillet1-68/+94
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>
2018-11-02Use new ctl functions to set/get ctl external dataJonathan Aillet1-1/+1
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>
2018-11-02Update version of app-controller submodule.Jonathan Aillet1-2/+2
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>
2018-11-02Use ctl defines to call afb functionsJonathan Aillet1-36/+41
Use controller 'afb-defintions.h' defines to call application framework functions. Change-Id: If9599b0397a593440ce2e08f039dc279c63f7428 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08hl-bt: Check that hal is available in initJonathan Aillet1-9/+16
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>
2018-10-08hal-bt: Use plugin name definition in printsJonathan Aillet1-3/+3
Use hal-bluetooth plugin name definition in prints instead of plain text. Change-Id: Idafbead6bdc510115ac0f7ebc06cfad79ceeceed Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08hal-bt: Enrich 'halmixer' section in plugin initJonathan Aillet1-7/+72
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>
2018-10-08hal-bt: Use plugin name in onload/init printsJonathan Aillet1-5/+5
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>
2018-10-08hal-bt: Check presence of a bluetooth receiverJonathan Aillet1-5/+26
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>
2018-10-08hal-bt: Move bluetooth api require into initJonathan Aillet1-27/+15
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>
2018-10-08Remove unnecessary 'function' string in printsJonathan Aillet1-6/+6
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>
2018-10-08Add ctl actions needed by Hal-Bt in plugin initJonathan Aillet1-4/+65
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>
2018-10-08Handle error send by Bluetooth-ManagerJonathan Aillet1-9/+18
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>
2018-10-08Free afb call sync json returned object in Hal-BtJonathan Aillet1-1/+6
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>
2018-10-08Improve Hal-Bt print messagesJonathan Aillet1-7/+18
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>
2018-10-08HalBt plugin keeps list of connected A2DP devicesJonathan Aillet1-12/+12
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>
2018-10-08Use correct file to include controllerJonathan Aillet1-1/+1
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>
2018-10-08Improve Hal-Bt plugin event catcher behaviourJonathan Aillet1-6/+9
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>
2018-10-08Prevent Hal-Bt plugin from crashing 4AJonathan Aillet1-4/+16
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>
2018-10-08hal-bt! display error messages of sync callsThierry Bultel1-5/+7
Change-Id: I9daa5d665cd727cd26817645e4dd6b987e6f5b05 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-10-08Implement link with softmixer in hal-bt pluginJonathan Aillet1-15/+29
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>
2018-10-08Get hal data in hal-bt pluginJonathan Aillet1-0/+12
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>
2018-10-08Test afb require result at hal-bt plugin loadJonathan Aillet1-1/+4
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>
2018-10-08Fix little mistakes/typo in hal bluetooth pluginJonathan Aillet1-13/+11
Correct typo. Remove an unnecessary message print. Update returned error code. Change-Id: If52965b8c7158dfd17bbba411d6dc2c4aafe970a Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Add bluetooth hal pluginJonathan Aillet1-0/+195
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>