summaryrefslogtreecommitdiffstats
path: root/4a-hal/4a-hal-controllers
AgeCommit message (Collapse)AuthorFilesLines
2018-12-20Add halmap controls events generation for all halflounder_6.0.5flounder_6.0.4flounder/6.0.5flounder/6.0.46.0.56.0.4flounderJonathan 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 Aillet5-0/+175
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 Aillet4-42/+185
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-06Move 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-12-06Force 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>
2018-10-08Move hal sections callbacks after plugin callbackJonathan Aillet1-2/+2
Into the controller section array, move hal sections callbacks after plugin callback so it will be executed before everything else. Change-Id: Id80063caae3b089e6ccef79a7b54a82b16600375 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Move mixer attach into its controller sectionJonathan Aillet2-17/+16
As the mixer section is obtained during a call of a controller section callback (during api pre-initilization), 'attach' call to 'mixer' has been moved in the same callback (called a second time during api initialization). Change-Id: I17f54aab1b9616649bfcb183297ba8128621a7c2 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Remove unnecessary 'function' string in printsJonathan Aillet5-102/+78
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-08Use correct file to include controllerJonathan Aillet2-2/+2
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-08Force hals init before ending hal-manager initJonathan Aillet1-1/+2
Force launched hals initialization before ending hal-manager initialization. This way, external api requiring 'hal-manager' will be sure that all launched hals are initialized. Change-Id: I00b9b14da623828d7cf7bc507873ad6de8ba2391 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Decrease level of a msg printed in event catcherJonathan Aillet1-5/+5
Decrease level of a message printed in event catcher to avoid polluting debug logs. Change-Id: Id222ddc958f9550da19507537944319888bac016 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct an error when unpacking alsacore responseJonathan Aillet1-1/+1
Correct an error when unpacking alsacore event subscription response. Change-Id: I39d331303d99363c36444fa642e8cb4ca16e84d8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct error print when attaching to mixerJonathan Aillet1-1/+1
Correct print when attach to mixer results in an call sync error. Change-Id: Id0c06d2c449d2b3dd56822674f496e0f52c31c27 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Remove boolean libraryJonathan Aillet6-7/+1
As it was almost never used in code, remove boolean library. Change-Id: I9264ffd5600a7d9526f4f4cfa8209a0cd0e5bb77 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Free json objects that should have been freedJonathan Aillet3-85/+122
Free json objects that should have been freed after use. Change-Id: Ifb3dab9672d0c039292ae05f23ade008fe82ade8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct handling of incomming json messagesJonathan Aillet3-6/+13
Correct handling of incomming json messages. An error occured when a received json object was an array containing only one item. Change-Id: I2c6f27f0fd87e11c356b8d4e6bd02d472bc3d60b Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Authorize launching 4a-hal with no config fileJonathan Aillet1-3/+3
Now, even if no json audio configuration files are found at binding launch, it won't fails to initialize and will be reachable nethertheless. Change-Id: If7dd0798ef4b262eda98c5dbcc7dd6d9b1b108b5 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct the request return when calling a streamJonathan Aillet1-8/+8
Correct the request return when someone tries to execute an action on a stream. Now, it is successfull if the mixer says so even if no response object was returned. Change-Id: Iee965db3e826ed9040c4b2bf50eaf9090584c1bc Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Delay event parsing to be the lastJonathan Aillet1-13/+18
Delay event parsing to be the last. This is to avoid receiving events before everything is parsed. Do some minor layout changes. Change-Id: I0fd3f8d387c27471657c58ca8c4ea5828c002e23 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Optimize alsacore event handlerJonathan Aillet1-18/+14
Optimize alsacore event handler by avoiding generating a string to detect an alsacore event. Change-Id: I7498e99741b2b7095076016143ec8be6520ee122 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Authorize empty response from mixerJonathan Aillet1-4/+4
Authorize empty response from mixer because a hal could configure no streams/captures/playbacks. Change-Id: I59b703aca72e8a70e10d41b28a95c3a022797a89 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Call onload section to before halmap sectionJonathan Aillet1-3/+3
Call onload section to before halmap section. This will be usefull if we want to execute action before the first alsa calls. Change-Id: Ia1b6428d322fb94538fee7b69b4886ab419a597c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Change verb prefix separator accroding to mixerJonathan Aillet1-1/+1
Change verb prefix separator charactor accroding to mixer. Change-Id: Ifbeb715490371ffdf835599b47076d8c17447571 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Auithorize sending empty json to verbsJonathan Aillet1-4/+2
Auithorize sending empty json to hal-manager 'loaded 'verb and to hal 'info' verb. Change-Id: Id664b0335ad80f88392dd24cd910016deaad25e3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Move onload section parsing lastJonathan Aillet1-1/+1
To avoid onload action to be launch before the configuration sets in other sections, parse onload section last. Change-Id: Icdc77239a9784e559bd9df130d3dc63c7ba5801b Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Revert "Move controller config exec before onload action"Jonathan Aillet1-8/+4
This reverts commit 19080e452e5ae909f64e09a4edfe9c57fbac43a4. Change-Id: I82c8f0a867a20995443f0cd600d5118ee9e3128d Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Return the result of call to mixerJonathan Aillet1-7/+20
Return the response field of mixer reponse to the caller of stream/capture/playback verbs. Force the verbose key in sent object. Change-Id: I5b87da0042c86c6b7dc8853af66cddd2f6819532 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct some compilation warningsJonathan Aillet4-6/+6
Correct some compilation warnings that appeared in some gcc versions. Change-Id: I846c573f3128f7d5d5da8b7d2eb1b63dc61af1ab Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct a cast errorJonathan Aillet1-1/+1
Correct a cast error that was causing a segfault in some unknown condition. Change-Id: I96c89c04d4f6bd5177446c56b4c50cbab30b4830 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Print some errors in info verbsJonathan Aillet3-11/+18
Print errors info when an error happen during call to mixer 'info' verb. Change-Id: Ic3b0b6312743af3ba41a7868d1347ce6b0fcc8cd Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Test 'asprintf' returnJonathan Aillet1-1/+4
Test 'asprintf' return to avoid compilation warning when building with yocto. Change-Id: I322890a149aff86c30afc7a654540d82dc0a8957 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Use structure defined in controller to load verbsJonathan Aillet1-1/+3
Use structure defined in controller to load verbs into an api using 'HalUtlLoadVerbs' function. Change-Id: I57aabf9ce2c580fc98b7ea8438cd01083e032ac2 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Rename files handling call/response of mixerJonathan Aillet4-4/+7
Rename files handling call/response of mixer. Change-Id: I070f109e2f0249b74548ae7dc7b84793926cb261 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Update 4a-hal to work with new 4a-softmixerJonathan Aillet4-124/+308
Update 4a-hal to work with new 4a-softmixer version : - Update audio configuration files to match the configuration format expected by the mixer. - Parse mixer attach response to get information about 'streams', 'playbacks', and 'captures'. store them in new field of controller hal data structure. - Create verb for each returned stream, but only one playback/capture verb even if threre are multiple playbacks/captures returned by the mixer attch verb. - Return 'streams', 'playbacks', and 'captures' when info verb is called. - If info verb is called with a json request, the request is transfered to the mixer. Change-Id: I65593281c34aa91ad87afbf8bebff755cc5cc6d0 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Correct a syntax mistake in function declarationJonathan Aillet1-1/+1
Correct a syntax mistake in 'HalCtlsNormalizeJsonValues' function declaration. Change-Id: If8f32c9f55a7c8b1075a5b493d467e66d4b2c1f6 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Change mixer data structures namesJonathan Aillet1-2/+2
Change mixer data structures names bacause we won't only stores streams data anymore. Change-Id: Id7e4482b6a69696d156c6a8bfc8f8d231dba9d2c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Change name of 'list' verb to 'info'Jonathan Aillet3-3/+3
Change name of 'list' verb to 'info'. Change-Id: I9062344b67cc2c19bce9a34d4ac7abfc1baa9428 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Move controller config exec before onload actionJonathan Aillet1-4/+8
Before, the onload action specified in the audio configuration file (see controller documention) was exectued before the sections configuration execution call. So, the onload action was launched before the hal was ready. Now, onload action is launched last. Change-Id: I05d46622b938ae5a818bd404779a2263ed334397 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Add search for a concurent hal at mixer attachJonathan Aillet1-3/+19
At hal mixer attach, add search for an already ready hal using the same alsa audio device id. If this concurent hal exists, return an error. Change-Id: Ia17738fe87c7bc82fa1867ecd031dd07ffa73714 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Return an error when hal attach to mixer fails.Jonathan Aillet1-1/+3
Return an error when hal is not successfully attach to mixer. Change-Id: Ibfacf405153e87d8005feba17f963b2f49caad7a Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-10-08Change paramters in functions handling hal dataJonathan Aillet1-1/+1
Change paramters in functions handling hal data structure. Now, the only thing you need to add/search for/remove something in hal data structure list is the address of the first element of the list instead of the address of the whole hal manager data structure. Change-Id: Iafa7428735c3aa418a6ef6564f9acde8f44e7dfe Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>