aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2019-05-24Reorganize repository directoriesJonathan Aillet26-1/+23
Reorganize repository directories to clarify code use. BUG-AGL: SPEC-2329 Change-Id: Ia9be0c1818cb2e331e75b51a87fcb2820407c1d8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Clarify internals hal functions and files namesJonathan Aillet21-575/+631
The purpose of this commit is to have of a more standard way to name files and functions used to generate/handle hal api (generated from hal json configuration file). It occurred to me that 'hal-controller' was not a good name because it is harder for people who don't know about the app-controller to understanded what is the purpose of these files/functions. It was renamed to 'internal-hal' because it's about hal that are all handle/load by hal-manager in opposition of external-hal that are independant binding/binder that can register themselves to hal-manager. BUG-AGL: SPEC-2329 Change-Id: I11b7efe64ec474b004a2a15ed8969b9db95d428f Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-22Clarify use of linked listJonathan Aillet8-82/+85
Clarify use of linked list by renaming some variables and functions. BUG-AGL: SPEC-2329 Change-Id: I21ada0b2914c99dfeecfcb6b55c8976dee1a0cd7 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-04-19Remove unused 4a-hal-manager events handler filesJonathan Aillet4-58/+0
Remove unused 4a-hal-manager events handler files. BUG-AGL: SPEC-2329 Change-Id: Ic0d02e93641f3ae9ec6ba2e7134987770987b1ca Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-04-19Rename misnamed var in values changing functionJonathan Aillet1-9/+9
Rename misnamed variable in function used to change ALSA values using percentage. BUG-AGL: SPEC-2329 Change-Id: I7ba630f591d0d1af0c7f021002493a80817b27a1 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-04-19Rename misnamed var name in hal manager load funcJonathan Aillet1-3/+3
Rename misnamed variable name in hal manager load function. BUG-AGL: SPEC-2329 Change-Id: I47922c3df935ad0f59eb62ac9d521e076893b0fb Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-04-19Rename misnamed param in 'halmap' config functionJonathan Aillet1-1/+1
Rename misnamed parameter in function used to parse and handle 'halmap' section. BUG-AGL: SPEC-2329 Change-Id: I5b0e17665ac4580c4efb2931cb1fc2d6da52e87e Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-04-19Rename misnamed function used to search for halJonathan Aillet3-4/+3
Rename misnamed function used to search for ready hal using its audio card id. BUG-AGL: SPEC-2329 Change-Id: I62ad371f10bff2e23e059b4020fbe16ece6e87c9 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-02-19Updates for latest alsacore changesJonathan Aillet1-17/+16
Updates calls to 'infoget' of 'alsacore' due to recent changes in alsacore. Change-Id: If7259c50cceac26fea6e0966eaccb5a1ed5d132b Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-02-18.gitignore: added wildcard for build directoryThierry Bultel1-1/+1
Change-Id: I5ce4ec091b60a62414f0f8cdce829feba0d8c212 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2019-02-18bluealsa plugin: do not do anything when the HAL is not readyThierry Bultel1-7/+21
Change-Id: Ifad933c3c5f574aad437a59708c01c6d674dc914 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2019-02-13bluealsa plugin: get the sampling rate from the transportThierry Bultel2-9/+32
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>
2019-02-07hal-bluealsa: fixes the abort due to sync call in io eventhalibut_7.90.0halibut/7.90.07.90.0Thierry Bultel1-17/+4
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>
2019-01-29bluealsa plugin: monitor the state of service via dbusThierry Bultel4-29/+219
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>
2019-01-28Migrate to newer application framework callsJonathan Aillet9-397/+220
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>
2019-01-28Migrate app-controller from submodule to libraryJonathan Aillet6-13/+1
Change-Id: I5a3de70994374e9a447fde67eef5925915335863 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-28Migrate afb-helpers from submodule to libraryJonathan Aillet6-7/+2
Change-Id: I1d554d29e11f7bac327ed65b4187dac3572ae0a6 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-28Move from controller functions to afb functionsJonathan Aillet27-808/+791
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>
2019-01-28Create 'halmap' ALSA controls events earlierJonathan Aillet1-13/+13
Create 'halmap' ALSA controls events earlier to avoid errors at 4a-hal-generic binder startup. Change-Id: I5976f5d4c358b21108ec136f791841b4ea15c666 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-28Add event to indicate hal stream changesJonathan Aillet4-0/+52
This event can be used to be notified when a stream has been added/removed from hal. Change-Id: I0511b948accf4d3dc25e5603cbaaf5f1da741b49 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-28Improve stream creation/deletion functionsJonathan Aillet7-251/+388
Add functions to add/remove stream verb while adding/deleting stream data. Use them to create streams when mixer response is received. Change-Id: I158b04cef7f6ce4f58a9c7481b6ebad00de989e3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-28Use linked-list to handle hal stream listJonathan Aillet6-144/+268
Use linked-list instead of an array to handle hal stream list. Usefull to add/remove dynamic stream (e.g. bluetooth). Change-Id: I39bbf0f16941f1c4642c916fdc5143a683c6460c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-28Turn '4a-hal-utilities' into an internal libraryJonathan Aillet22-91/+195
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>
2019-01-23Use latest version of app-controller submodule.Thierry Bultel1-0/+0
Changes of app-controller: (f8531f9 - Thierry Bultel) ctl-action: fixed the calculation of the number of actions (f1c3b6b - Romain Forlot) Message deprecating the submodule usage (2e97ca3 - Frederic Marec) docs: add yaml book Change-Id: Iff9b67f8dc3ddc91090750af4fd5fdada7d167fe Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
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 Bultel14-1199/+983
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-12-20Remove old comments not true anymoreJonathan Aillet3-3/+0
Remove old comments not true anymore about moving to application framewrok v3 functions but it has already be done some weeks ago. Change-Id: Ia5dfc7a47d9e9eb929fa6c79fa37686206131301 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Update version of app-controller submodule.Jonathan Aillet1-0/+0
Changes of app-controller: (48196b8 - Romain Forlot) Reformating lines to be 80 characters long maximum (574c0b3 - Romain Forlot) Detail configuration key and goal of a controller (0e395a6 - Romain Forlot) memleak fixes (f332501 - Romain Forlot) Retrieve by default an int64 instead of int (c3fa161 - Romain Forlot) New function to retrieve Api's name from LUA (8bef6c3 - Romain Forlot) Handle number and boolean to subcall an api's verb (3344fe2 - Romain Forlot) Fix: compiling a controller without LUA support (70e1d98 - Frederic Marec) Fix Parse plugin (309003b - Clément Bénier) AFB:servsync: add string for query argument Change-Id: Idb3793a8d3bd6ea34dc8c0d0209757c3aa231ba1 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Add halmap controls events generation for all halJonathan Aillet2-3/+59
Each hal will now allow other bindings to subscribe to halmap ALSA controls events to be notified when a modification happened on a control. Bug-AGL: SPEC-1313 Change-Id: Ia6a019b254c78e5e752b0d39a7cf35114c1fc460 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Add streams events generation for each halJonathan Aillet6-0/+176
Each hal will now have subscribe/unsubscribe verbs to allow other bindings to be notified when a modification (volume, mute, ...) happened on a stream. Bug-AGL: SPEC-1313 Change-Id: If68d3b4b4e39385c1fffdd04b9f3e2b7fa5ae108 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Rework calls to mixer streamsJonathan Aillet5-48/+193
When using 'playback'/'capture' verbs, call all associated controls. When at least one stream has been created by the mixer, a verb called 'all-streams' is added to transfer a request to all the streams. Bug-AGL: SPEC-1313 Change-Id: Ie574e2ef0dcae8abbd45523b49093ec2ed1413cf Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Add 'halmap' controls in hal 'info' verb responseJonathan Aillet2-21/+77
Add 'halmap' controls verbs (specified in json configuration file) in the response of verb 'info'. Bug-AGL: SPEC-1313 Change-Id: I4e7ec5c3d23fd505da1eb233c1da63708024912d Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Add setting values of a ALSA control using a +/-Jonathan Aillet3-4/+118
Add the possibility to change halmap ALSA controls values using a +/- percentage string. Bug-AGL: SPEC-1313 Change-Id: I3b2cf141fc01171fd403c2602fb3805e654e8d68 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Send back control previous and current valuesJonathan Aillet1-5/+36
Send back control previous and current values if the value(s) specified in request json has been applied correctly when calling halmap verbs. Bug-AGL: SPEC-1313 Change-Id: Ie190b4749a6739945a82532909281fb70c92df5d Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Send back control current values if no request jsonJonathan Aillet1-4/+31
Return current ALSA control values if no request json is specified when calling halmap verbs. Bug-AGL: SPEC-1313 Change-Id: I74cc03cdcbe975979be4ad2d353ee44cf8cc13ed Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Add a function to get values of an alsa controlJonathan Aillet3-25/+86
Rework communication with 'alsacore' binding to be able to get current ALSA controls values. Bug-AGL: SPEC-1313 Change-Id: If1b4b9bdc49849772075e184768f572ac88fe6c3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Improve ALSA controls volume values conversionJonathan Aillet4-66/+192
Rework halmap ALSA controls volume conversion to be able to add new types of volume conversions easily. Bug-AGL: SPEC-1313 Change-Id: I0949f25c24a349e7409233f51b3d5738ebc43a8a Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Update syntax of a request of an halmap verbJonathan Aillet1-1/+1
Update syntax of a request of an halmap verb : Use key 'value' instead of 'val'. Change-Id: Iadbb05f0bf70c689e1657f065a8f3b1ae31a8849 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Typo fix in halmap call responseJonathan Aillet1-2/+2
Change-Id: I6bc9ba16ec22a21e43221d335bd61bacae197a14 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20Correct halmap calls request json syntaxJonathan Aillet1-8/+3
Correct halmap calls request json syntax : The request json must be a json_object type. Change-Id: If443b5480678354193c2419a72ffb711fadd416f Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-18Move hal configuration files into 4a-hal-configs repositoryJan-Simon Möller14-2282/+2
The configuration files should not be shipped with the sources. Therefore we created a 4a-hal-configs repository as the central place for configs. Move the configs there but leave and example in 4a-hal-cfg-example. Bug-AGL: SPEC-2011 Change-Id: If3bed9a05955b9c6458656fabbe3ee12d1c5015b Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2018-12-03Add master branch into .gitreview fileJonathan Aillet1-0/+1
Change-Id: I7f4cc024c40aa2b2cc3eba12dd576f7d36408ce0 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-11-30Merge "Add autobuild to top tree"guppy_6.99.2guppy/6.99.26.99.2Jan-Simon Moeller3-1/+150
2018-11-27Move hal controls actions at the end of hal initJonathan Aillet1-1/+1
Move hal controls actions at the end of hal initialization to avoid calling halmap controls before handling controller actions (onload, events). Change-Id: Id3896b9497985d7a82242d719551a507a0ca74c5 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-11-22Add autobuild to top treeFrederic Marec3-1/+150
Remove autobuild in gitignore Bug-AGL: SPEC-495 Change-Id: I79e4d41ff3bd188598906c96351b0f4c7d2eb72b Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
2018-11-22Add tests for 4a-hal-genericguppy_6.99.1guppy/6.99.16.99.1Frederic Marec10-0/+627
Add test tree Add test part in README.md Bug-AGL: SPEC-1796 Change-Id: I3d42bfe3170bfaef819bb2028887869dd603bc97 Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
2018-11-21Change .gitmodules following submodule migrationFrederic Marec1-3/+0
Remove app-template in .gitmodules Change-Id: Ibd44e1c76a638c6a21272da2116fb638eb560dc9 Signed-off-by: Frederic Marec <frederic.marec@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 Aillet5-10/+10
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 Aillet2-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-02Force each hal to have its own ctl section dataJonathan Aillet1-2/+6
Force each hal api to have its own controller section data, it is very usefull if different hals don't have the same onload/events/... actions. Change-Id: Iaf3c2059a774ef8ec4f7262064d1cfa8d8159d91 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>