summaryrefslogtreecommitdiffstats
path: root/alsa-binding
AgeCommit message (Collapse)AuthorFilesLines
2019-10-02Add a definition to force status refreshJonathan Aillet1-0/+48
Add a 'FORCE_STATUS_REFRESH_MS' definition that can be use to force cards/PCM status refresh. Might be used in case of missed events using 'inotify'. BUG-AGL: SPEC-2849 Change-Id: I8de80a95b752e5e4a14ad433460598e371d3a39f Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-02Add function to deal with PCM availability eventJonathan Aillet1-52/+74
Add a dedicated function to refresh monitored PCM status and fire event if PCM availability has changed. BUG-AGL: SPEC-2849 Change-Id: I1358b4019d7da80a8055bfbcd0bbf3f55a2499e3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Add events when PCM availability changesJonathan Aillet1-1/+346
Add PCM availability application framework events to be notified when ALSA PCM availability changes. Use subscribe verb and json '{ "event" : "pcm", "name" : "hw:3,2,1", "stream" : 0 }' to subscribe to playback PCM 'hw:3,2,1' availability events. Use subscribe verb and json '{ "event" : "pcm", "name" : "hw:1,2,3", "stream" : 1 }'' to subscribe to capture PCM 'hw:1,2,3' availability events. from removed card events. To handle PCM events, inode notification (using inotify) is used on '/dev/snd/pcm*' file (e.g. '/dev/snd/pcmC0D0p') to monitor PCM availability. BUG-AGL: SPEC-2835 Change-Id: I5bfaef73b896fa7213e1308035eeaff1464f62f6 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Add verb to get PCM availabilityJonathan Aillet3-1/+152
Add verb to get PCM availability, this verb will return a boolean json. PCM can be specified using two ways : - card & device & subdevice & stream - pcmName & stream BUG-AGL: SPEC-2834 Change-Id: I176fdc261fa117906a2af069d3ddd07d5941904c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Add possibility to unsubscribe from eventsJonathan Aillet3-27/+70
Add possibility to unsubscribe from events using 'unsubscribe' verb with the same json payload used for subscribe. BUG-AGL: SPEC-2833 Change-Id: Ie01f36b2bf0a446cc80b09d79417a301ce9ecfff Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Add verb to remove custom ALSA controlJonathan Aillet3-56/+147
Add verb to remove previously added custom ALSA control. It can be done using 'removecustomctl' verb. BUG-AGL: SPEC-2836 Change-Id: I07b842e3425f6c176423473afcd8b3d18dcaa79b Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Rework subscription handlingJonathan Aillet1-239/+279
Rework subscription handling to : - use an "event" key to select which event type we want to subscribe to, this will allow an easier integration of new events. - merge 'soundcard-added' and 'soundcard-removed' cards events into one 'cards-monitoring' event. Will ease unsubscription. - remove concept of 'mode' in json sent by event, this will allow to avoid 'mode' conflicts when several bindings are subscribed to the same event. Also, normalize some syntax issues. SPEC-2832 Change-Id: Ief8b3065a3e18dc710ef5b951053f96459c65e0b Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Rework verb request json parsingJonathan Aillet4-123/+190
Rework verb request json parsing to allow having request without 'devid' key in json. BUG-AGL: SPEC-2832 Change-Id: Id937d98c29d30b9298be3a1972f1a2cf5d0b722c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Add a definition for subdevice maximumJonathan Aillet1-3/+4
Add a definition to define the maximum number of subdevices in an ALSA device. BUG-AGL: SPEC-2832 Change-Id: Id44d53252119319feb400f3b3fa59534392038af Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Correct the use of wrong variable typeJonathan Aillet1-2/+7
Correct the use of an 'unsigned int' instead of an 'int'. BUG-AGL: SPEC-2832 Change-Id: Iee374404c60698e9d243d0622eb1900c5cc8ae7e Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-10-01Correct errors in printed variablesJonathan Aillet1-2/+2
Before, the modified print was using '*currentDevice' variable which is an ALSA device number. As the print point was to show on which card the error happened, variable has been changed to print the ALSA card number. BUG-AGL: SPEC-2832 Change-Id: I7a8b85fba4f8aa9c37b4e5ee5d293b9a6b09a0e9 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-19Add events when ALSA card are added/removedJonathan Aillet1-2/+271
Add 'soundcard-added'/'soundcard-removed' application framework events to be notified when ALSA card are added/removed. Use subscribe verb and json '{ "devid" : "added" }' to subscribe to added card events. Use subscribe verb and json '{ "devid" : "removed" }' to subscribe to removed card events. Bug-AGL: SPEC-2749 Change-Id: Ia021d7f6984b2263a5011121a69f17bb4ee2bf9e Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-19Make a function to get card number from card pathJonathan Aillet2-22/+39
Make a function to get card number from card path, will be needed to for added/removed card events. Bug-AGL: SPEC-2749 Change-Id: Ic0cc6fd84a54432c696892772f2f66d1bde59a65 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-19Declare 'getCardInfo' function as publicJonathan Aillet2-1/+2
Declare 'getCardInfo' function as public, will be needed to get information about added/removed card events. Bug-AGL: SPEC-2749 Change-Id: Ic23542a64e92fd2b3f91853a968b3feff5b76cc5 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-19Rework ALSA card control events functionsJonathan Aillet1-66/+84
Rework ALSA card control events subscription and handling to: - Clean unnecessary part of codes. - Increase reliability of ALSA control events polling callback. Bug-AGL: SPEC-2749 Change-Id: I75dc90483254b1befdf83968c9032ec877c1d895 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-14Avoid epoll errors to be fired indefinitelyJonathan Aillet1-0/+6
When a audio card with control event generation is removed, avoid epoll errors to be fired indefinitely by event loop. Bug-AGL: SPEC-2749 Change-Id: I65dddc2f9714fa2303773b212bc3cad7cb164d73 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-08-14Minor syntax changes in get card info functionsJonathan Aillet1-23/+42
Minor syntax changes in get card info functions. Bug-AGL: SPEC-2749 Change-Id: I90c896618fca73dbae9e51ff996ac5613713d7b6 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-02-19Rework ALSA card get info functionJonathan Aillet2-99/+595
Rework ALSA card get info function to : - Be able to probe an ALSA card depending on multiple parameters (card number, card path, card id, card short name, card long name, card driver, card mixer name, card components). If several parameters are requested, all should be true to find a corresponding card. - Be able to add parameters about a playback device depending on multiple parameters (device number, device id, device name). The combination of all card parameters and all device parameters should be true to find a corresponding card/device. - If a corresponding card/device is found, information about it will be returned as a json object. - If multiple card/device are corresponding to the request, all cards information will be returned in a json array. - If no request json is available, all cards information will be returned (using a json array). - Add the possibility to ask for multiple card/device in one verb call using a json array in request json. Each case will be handled as an individual request. The response will be an array of the same length as the request json, with each response case corresponding to the request case. Change-Id: Ia71e40ce10c8bb10d51099832748c5621d202647 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-25Rework ALSA control set/get functionhalibut_7.90.0halibut/7.90.07.90.0Jonathan Aillet1-80/+134
Rework ALSA control set/get function to : - Improve malformed JSON request detection. - Optimize execution when an array of control to set/get is received. - Send back error when the control is not found (instead of a warning). - Send back errors when an error happened during call to ALSA set/get functions (instead of warnings). Change-Id: Id3c0092bfb50979cbec048fa431d989c3c34db33 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-25Improve prints when setting values of controlJonathan Aillet1-3/+8
Improve prints when setting values of control by : - Increasing print level of error print - Printing more information when sent values array is not corresponding to the number of values of the control. Change-Id: I1ffe4bce78921e885da9dced21bd3bbb4e1c2aa6 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-25Send back cardid only if request is validJonathan Aillet1-7/+9
When trying to get information about ALSA card, fail if request JSON is malformed. However, send back information about all ALSA cards when no request JSON has been transfered. Change-Id: I2d45abb59d00cea27bfb09e74b15cc82cf84a086 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-25Improve ALSA control creationJonathan Aillet1-30/+60
Improve ALSA control creation by : - Checking supported controls type at function start. - Prevent segfault when a none INTEGER control is updated. Change-Id: Icbff18ec6fc6c35938bf2945edc27c36fecf99d1 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2019-01-25Fix dbScale generation when adding custom controlJonathan Aillet1-22/+15
Fix dbScale generation when a custom INTEGER ALSA control is added. Change-Id: I935de59d1ca30466c071972939c8ef200007ceb3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-12-20alsaSetGetCtls: fixed a memory leakguppy_6.99.4guppy_6.99.3guppy/6.99.4guppy/6.99.36.99.46.99.3Thierry Bultel1-2/+5
By reading the sources of libasound, snd_ctl_elem_list_alloc_space needs a snd_ctl_elem_list_free_space to free the allocated memory Change-Id: I47280fa95c5a47a993c399329aaf655f8c83dd2a Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-10-31Migrate app-templates to CMake moduleRomain Forlot1-1/+0
Bug-AGL SPEC-1682 Change-Id: Ic4a8925d8be17ab6d53d18ca8abaf99ce348ded8 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-20Use some app-fwk macros to support v2 and v3Jonathan Aillet6-38/+42
Use some application framework macros to support both v2 and v3 compilation. Change-Id: I3051bbeff8788ea2c71545e5d253619d4749ff41 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-07-20Use app-fwk macro to get verbosity levelJonathan Aillet2-4/+1
Use application framework macro to get verbosity level instead of a legacy function. Change-Id: I925b2ccea3c7d58bc50281eb8d39f82dac1f49b4 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-07-20Correct warning that was raised at compilationJonathan Aillet3-6/+6
Correct warning that was raised at compilation concerning 3 subjects : - Too short strings for 'snprintf'. - Forget cast returns of 'json_object_array_length' function. - Checking return of 'asprintf' function. Change-Id: I0fc702750841a0f8da921c3c3b1453c5afee0fd8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-07-20Set afb version in cmake instead of in headerJonathan Aillet1-1/+0
Set application framework binding version in cmake instead of setting it before including binding header. Change-Id: Ic841069248d40fdd023c8056a614e484004be298 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-06-26Fixed crash when 'set' request is based on numidsflounder_5.99.1flounder/5.99.15.99.1Thierry Bultel1-3/+10
When numids are given, the 'tag' field is not initialized to NULL, and leads to a crash on strcasecmp. Change-Id: I23a1552bba565259280140a5e099be10613ab1bc Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-06-06Add an option to 'ctlget' verbJonathan Aillet2-1/+12
Add a new way to ask for alsa controls info by implementing the possibility to ask for alsa control using its label. It is a clean way to get control numid using control label. Bug-AGL: SPEC-1405 Change-Id: If5387c63a41a07d451a21edab86e9bb90b4908c4 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-06-06Add an option to 'infoget' verbJonathan Aillet2-20/+75
Add a new way to get card info when using 'infoget' verb : When the request contains a section 'devpath', the path specified will be used to search for the device. Bug-AGL: SPEC-1405 Change-Id: Idc99a27229f0db3484f62f8f761b7e0daee13a3c Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-06-06Update dB basic TLVJonathan Aillet1-8/+8
Handle volume in dB instead of absolute value. Allows a more natural augmentation/diminution of volume. Bug-AGL: SPEC-1405 Change-Id: If186c826e7008283f7c05599efa6158ac613a380 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2018-06-06Correct a segfault when using ping verbJonathan Aillet1-1/+1
When 'ping' verb is called, be sure that we won't generate a segfault by using 'json_object_get' before responding. Bug-AGL: SPEC-1405 Change-Id: I22fb8e1e492a33e7310d009998fd3c72383e702d Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
2017-11-30Change initial volume to be in % in place of absolute valuesFulup Ar Foll1-1/+12
Signed-off-by: Fulup Ar Foll <fulup@iot.bzh>
2017-11-05Fix Regression on Volume RampingFulup Ar Foll1-1/+1
2017-11-05Improve Sound Card By Driver Name DetectionFulup Ar Foll1-25/+36
2017-11-04Added PcmInfo APIFulup Ar Foll4-14/+188
Change HAL register to fallback to driver name when not direct match found
2017-11-02Fix double CloseFulup Ar Foll1-1/+0
2017-11-02Fix FD leaking on Alsa ControlFulup Ar Foll3-3/+8
2017-11-01Remove PS_SET, now should use afb-daemon --name optionFulup Ar Foll1-8/+0
2017-11-01Fix warning (minor)José Bollo1-1/+0
Change-Id: I0c29015e252d1091a9350fc85e05c1a444bb7579 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-11-01fix allocation sizeJosé Bollo1-5/+5
Change-Id: Ia1a2ed447fd9b5831eec58606a0f7694e6569017 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-24Initial working version as independent repoFulup Ar Foll8-0/+2279