summaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2019-10-17Add function to 'detach' dependency from mixerJonathan Aillet1-1/+3
Add function to perform a 'detach' verb call to mixer to detach a dependency. This will be useful for 'dynamic' dependency handling. BUG-AGL: SPEC-2888 Change-Id: I4468b9fb0dedb79b637883ef88683274713765fa Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Rework mixer calls to handle dependenciesJonathan Aillet1-0/+9
Rework 'attach' mixer calls to handle dependencies individually. That means that an attach call will be performed for each dependency. To avoid errors when calling mixer, complete list of dependencies should be send to it, but we can specify which dependency we want to be processed using 'handled' key. BUG-AGL: SPEC-2887 Change-Id: I9db7391fe7a44ba045fd82d94221a1442b7c2198 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Improve json dependency list generation functionJonathan Aillet2-0/+62
Add function to generate json dependency list while indicating which dependency is handled (using dependency 'uid'). Will be useful for mixer calls. BUG-AGL: SPEC-2886 Change-Id: I2d23845af00796d73ce641e8c33a0e880f50c8b3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Add 'available' info in dependency jsonJonathan Aillet1-1/+2
Add boolean 'available' info in dependency json to indicate if a dependency is resolved. This json is used when calling mixer, therefore this information will be usefull for mixer. BUG-AGL: SPEC-2886 Change-Id: I957c23c8c22b77fa187d3fe505d6944d8047ed84 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Add a function for dynamic dependencies handlingJonathan Aillet2-0/+21
Add a function to get number of dynamic dependencies in dependency list. BUG-AGL: SPEC-2886 Change-Id: Ieb912bdb476c833c9f9c71710690b83976fc3d73 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Allow use of dependency free function for everyoneJonathan Aillet1-0/+1
Allow use of 'HalUtlFreeSelectedProbedDeviceDataAllocation' function available in '4a-hal-utilities' for everyone. This function can be used to free allocated content stored in dependency data structure after a successfully search for dependency. BUG-AGL: SPEC-2886 Change-Id: I1c68b32fc7adc0191ee05ce4b9fdc54db2f8b105 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Remove useless things about ping functionJonathan Aillet1-2/+0
Remove useless things about 'HalUtlPing' function. BUG-AGL: SPEC-2884 Change-Id: I8ad30e91ac45d340a5f64922da6a87658a3cd2b3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-17Prevent binder exit when hal initialization failsJonathan Aillet1-3/+4
No longer returns an error in hal api initialization function when an non-blocking error happens (e.g. card-sound not found). This will prevent application framework binder exit. BUG-AGL: SPEC-2906 Change-Id: I0ef5e5f624fc0021771f40f37ce5663510a7e03e Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-12Move ping function in 4a-hal-utilitiesJonathan Aillet4-2/+83
Move ping function in 4a-utilities and register it as verb into 4a-hal-manager and into each created 4a-hal-*. Updates 4a-hal json configuration files to match these modifications. BUG-AGL: SPEC-2733 Change-Id: If93a31296206923860262b225a8c7e0e8a6fd521 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-12Create 'all_streams' verb at binding startupJonathan Aillet1-5/+5
Create 'all_streams' verb at binding startup, that way, it will always be created. Generate a request fail when a call is done when no streams are created. BUG-AGL: SPEC-2733 Change-Id: I1b7ec3b8ed0fcd617e4a016e455beb447d233c82 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-12Optimize hal 'info' response json allocationJonathan Aillet2-11/+59
Optimize hal 'info' response json allocation by removing empty objects/arrays from response. BUG-AGL: SPEC-2733 Change-Id: I521626b67076b603ab1caa974b697246c8fff759 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-07-18Add hal api handler utilities filesJonathan Aillet3-0/+197
Add utilities files to create/delete hal apis while adding hal data to hal data list. Use it to create new hal apis. BUG-AGL: SPEC-2652 Change-Id: I62e99cda31bb2c6f597da27960102c036a25b733 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-07-18Correct typo in stream handling filesJonathan Aillet2-4/+4
Correct typo in stream handling files. BUG-AGL: SPEC-2652 Change-Id: I3a1ee384dabf564b9d4903e2bac51210d357ff8f Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-26Remove global card number of halhalibut_7.99.3halibut_7.99.2halibut/7.99.3halibut/7.99.27.99.37.99.2Jonathan Aillet1-2/+0
As we are now using haldependencies to get hal card number(s), it does not make sense to store a global card number for a hal. BUG-AGL: SPEC-2329 Change-Id: If5beb84b71b5e5e67aeabd947b5c3edbf154fa3c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-26Use haldependencies to process and handle halmapJonathan Aillet3-10/+55
Use haldependencies section definition to process and to handle halmap section. That means that each 'halmap' control can use its own probed audio device card number using a targeted dependencies. Also, change halmap section definition to be able to handle several halmap defined with the same dependencies. Update example hal to match new json file format. BUG-AGL: SPEC-2329 Change-Id: I31997a037ee8f0e727e0a67866d651b988b85260 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-25Use a dynamic allocation for halmap data storageJonathan Aillet2-1/+12
Use a dynamically allocated structure to store properties about ALSA controls (halmap). BUG-AGL: SPEC-2329 Change-Id: I691648452d6c950d201bc25977a493608fede197 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-25Use of linked list for 'halmap' dataJonathan Aillet5-133/+152
Use of linked list for 'halmap' data instead of a fixed array. It uses the same mechanism already implemented for other linked list. BUG-AGL: SPEC-2329 Change-Id: I2ff9c9a797a5547cd74f0240c5b7573a02c90781 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-25Rework json strings allocation/freeingJonathan Aillet1-29/+89
Rework json strings allocation/freeing because : - Some json strings are freed twice. - Some containing strings json are not correctly freed. BUG-AGL: SPEC-2329 Change-Id: I90f9470c6a4bc4b1641a01dd2da5051da1ff9547 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-25Add function to get probed device card numberJonathan Aillet2-0/+13
Add function to get probed device card number using its uid. BUG-AGL: SPEC-2329 Change-Id: I75bd368d0b1d0ab6d41fc0d75b30511fa7e8584f Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-18Refactoring 'hal data' linked listJonathan Aillet2-128/+61
Refactoring 'hal data' linked list code using liburcu. BUG-AGL: SPEC-2329 Change-Id: Ia51d362f96838f4b5bb77e8d1b85fa8d1ab4bed1 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-18Refactoring 'streams data' linked listJonathan Aillet3-204/+207
Refactoring 'streams data' linked list code using liburcu. BUG-AGL: SPEC-2329 Change-Id: Idf9367c015d73574d96d83c82a9e8f5b7588a45d Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-18Refactoring 'probed devices' linked listJonathan Aillet2-128/+163
Refactoring 'probed devices' linked list code using liburcu. BUG-AGL: SPEC-2329 Change-Id: I4d0255bc020733b1abbea1f3e6195c73cf8da8f6 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-18Move function about dependency selectionJonathan Aillet1-27/+27
Move function used to test if a dependency is selected. BUG-AGL: SPEC-2329 Change-Id: Ic577a33741d705e09dd14a48dde0483db792b97d Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-06Add func to generate 'hal-dependencies' info jsonJonathan Aillet2-7/+389
Add functions to generate 'hal-dependencies' information json. Provide two type of json generation ('compact' with only extended card number info, and 'full' with all ALSA card info). Provide function to get information about all 'hal-dependencies' and another function to get information about validated 'hal-dependencies'. BUG-AGL: SPEC-2329 Change-Id: If04cbbab7c79a066d2d03fa5ff16ea698de9b018 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-06Move functions used to generate jsonJonathan Aillet4-2/+134
Move functions used to generate hal information json into there corresponding files in hal-utilities. BUG-AGL: SPEC-2329 Change-Id: Id518e7f732ef393bbf98f3b3a32edf01ec81f70c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-06-06Split too long function declarationsJonathan Aillet2-8/+19
Split too long function declarations in hal-utilities. BUG-AGL: SPEC-2329 Change-Id: Ia8a18844dd7db52b19db366d737240286d04f9cd Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Add function to handle probed audio device listJonathan Aillet2-0/+242
Add function to handle probed audio device list. This list will be used to store incoming 'haldependencies' section data. It will also be used to store audio card information resulting from probing requested audio devices specified in 'haldependencies' section. BUG-AGL: SPEC-2329 Change-Id: Iaa9aaba7a01263ca2d17be01c32803702568d614 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Store 'uid' metadata in hal data structureJonathan Aillet1-0/+1
'uid' field is currently used to store the audio device to search for the hal. But with haldependencies' feature, 'uid' field won't be used to search for the audio device anymore. So, 'uid' field is stored elsewhere into the hal data structure (returned when asking for hal informations). BUG-AGL: SPEC-2329 Change-Id: Ib3b2b3bacaecfa80a51f94f9d6874789baba0224 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Rework mixer answer handlingJonathan Aillet2-22/+87
Rework mixer answer handling to make it simpler and to avoid fanciful returns. Add some error prints to help diagnostic in case of mixer answer handling error. BUG-AGL : SPEC-2329 Change-Id: I14fe86496585bdc66b8aa761f4ff2c56333c5515 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Remove obsolete links to softmixer controlsJonathan Aillet4-44/+3
Remove obsolete links to playbacks/captures softmixer controls. These links are not used anymore (only 'halmap' controls are used). It also means that references to controls in 'halmixer' section of json configuration files must be removed (as it's done for example json configuration file in this commit). BUG-AGL : SPEC-2329 Change-Id: Ic5a7f055d09b44021d817c04d56023fed3c0e478 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Improve search for mixer data in linked listJonathan Aillet1-4/+5
Improve search for specific mixer data in linked list when the search is using stream properties. BUG-AGL: SPEC-2329 Change-Id: Idd5ea0540ace508b8b8351f38a3832f7d0f8a760 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Improve static verbs loadingJonathan Aillet3-80/+1
Improve static verbs loading by using 'afb_api_set_verbs_v3' application_framework function. BUG-AGL: SPEC-2329 Change-Id: I3fe5397316d4a582635da637ab6a207b606c496e Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Add forgotten verifications of allocation resultsJonathan Aillet1-15/+41
Concern several types of allocation such as : - malloc/calloc - json_object_new_* - wrap_json_pack - strdup BUG-AGL: SPEC-2329 Change-Id: Iffe2a6a44ef4df2ed0ec4d159682159db5e78cfb Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Correct mistakes due to use of unsigned returnsJonathan Aillet6-29/+29
Correct mistakes due to use of unsigned returns. Also, simplify use of int by replacing 'int8_t' and 'int64_t' types by plain 'int' type. BUG-AGL: SPEC-2329 Change-Id: I24fe273c5a233762c072f7bc9e79eab32a1c824c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Add forgotten freeing of hal dataJonathan Aillet1-0/+3
Add forgotten freeing of hal data when removing hal from linked list. BUG-AGL: SPEC-2329 Change-Id: Iddef1c1f23be587792907f4ab009a2567f4b7834 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Normalize coding style among repositoryJonathan Aillet2-24/+20
Normalize coding style among project : - When possible, set the variable outside test in 'if' statement. - Remove fanciful returns. - Split too long lines. - Remove unnecessary '\n' into prints. - Normalize use of tabulation. - Use 'afb_req_fail' instead of 'afb_req_fail_f' when possible. - Add some error prints. BUG-AGL: SPEC-2329 Change-Id: I14867e05e02b4c4c0389108c335fec2d2aa27495 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-05-24Reorganize repository directoriesJonathan Aillet10-0/+1124
Reorganize repository directories to clarify code use. BUG-AGL: SPEC-2329 Change-Id: Ia9be0c1818cb2e331e75b51a87fcb2820407c1d8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>