aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-02-21Merge "Allow specifying bind address"HEADmasterScott Murray1-2/+24
2024-02-21Allow specifying bind addressScott Murray1-2/+24
Add support for specifying the bind address via the optional configuration file. This is required for the KVM demo usecase where the service runs on the host and the homescreen in the guest needs to connect to it. Bug-AGL: SPEC-5082 Change-Id: I0af843f1ef55ef1d857730fbdec17163c6d88b4b Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2024-02-13Add gitlab issue/merge request templatesricefish_17.90.0ricefish/17.90.017.90.0Jan-Simon Moeller2-0/+6
Add template files for gitlab Bug-AGL: SPEC-4474 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Change-Id: I544727acb121d94f0ad01d5424758d9b3f73f132
2023-01-19Repurpose into gRPC serviceScott Murray33-601/+962
Repurpose repository into a spiritual successor of the previous binding. The backend code is retained behind a new gRPC API defined in protos/radio.proto. The simpler synchronous gRPC API had been used for expediency, this may warrant revisiting to rework into an async or callback API based server instead. As well, authentication has been left until some consensus on an approach can be worked out. Bug-AGL: SPEC-4665 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I28b122ce6e0ecfc7504aa08b90394cb1b9e22976 (cherry picked from commit dd23c157bdba1b25bbb50cdb99a60aa597735f43)
2021-10-20Correction of comments about radio model number in agl-service-radioneedlefish_13.93.0needlefish/13.93.0marlin_12.93.0marlin_12.92.0marlin_12.91.0marlin_12.90.1marlin/12.93.0marlin/12.92.0marlin/12.91.0marlin/12.90.113.93.012.93.012.92.012.91.012.90.1duerpei1-1/+1
Bug-AGL:SPEC-4116 Signed-off-by: duerpei <duep.fnst@fujitsu.com> Change-Id: Ic5a2f88a3d17743e960d38b0553e735a5b001867
2021-05-11radio: use pipewiresrc instead of alsasrc on kingfishermarlin_12.90.0marlin/12.90.0lamprey_11.92.0lamprey_11.91.0lamprey/11.92.0lamprey/11.91.012.90.011.92.011.91.0George Kiagiadakis1-1/+3
This fixes the synchronization issues that prevent the radio from working nicely on the kingfisher Bug-AGL: SPEC-3844 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I5132a135b8203a1f1ceb7cfe5f01d8676e786de4
2021-03-12radio: s/pwaudiosink/pipewiresink/George Kiagiadakis3-4/+4
This is the one and only pipewire sink now. Bug-AGL: SPEC-3844 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: If7c69f9c944f92006bde1aa3b9745b7966501a65
2020-12-06Fix scan start behavior in Kingfisher backendkoi_10.93.0koi_10.92.0koi_10.91.0koi/10.93.0koi/10.92.0koi/10.91.010.93.010.92.010.91.0Scott Murray1-1/+1
Add missing check for playing status in Kingfisher backend "scan_start" function. Bug-AGL: SPEC-3716 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I74a9221b6d2a89a052009a279dd74166569d4766
2020-12-06Rework hardware probing and RTL-SDR helper startupScott Murray6-120/+192
The lazy startup of the separate helper program for the RTL-SDR backend on playback start was incorrect with respect to the expected behavior the frequency setting verbs. This was not visible during usage by the radio application, but was triggering failures in several tests in the pyagl binding wrapper test suite. To facilitate starting the helper during backend initialization, the probing part of the backend "init" has been split into a separate "probe" function, and all backends have been updated to reflect this change. Logic has been added to enforce that "init" is only called after "probe" has succeeded for a backend, and a comment has been added to radio_impl.h to document this intended behavior. Bug-AGL: SPEC-3717 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ic37331a92bae7cc01ee448e69894fa5f49d08a74
2020-10-28Add support for tuning to alternative frequencyEhsan Takalloo4-146/+240
-Add a new verb for handling alternative frequency. -Add a new structure (station_quality_t) and use it for sharing quality parameters. -Make tef665x implementations compatible with new structure. -Update README.md file to cover new verbs. Change-Id: Id78e3b9aa8896eca9ef44222657f21246de9914f Signed-off-by: Ehsan Takalloo <ehsan.takalloo@gmail.com>
2020-10-06Fix frequency verb invalid frequency behaviorScott Murray3-7/+28
The frequency verb was not checking if a frequency corresponds to the frequency band step the binding provides to users, add logic to do so and return an error if the frequency is invalid. While this is a change in behavior, it is believe it should not impact users, as the binding is intended to reflect user facing radio application usage. Additional tweaks: - fix error invalid frequency error message in reply JSON. - add the same band limit checks to the null implementation's frequency setting function that the other implementations do. - fix a couple of issues in README.md; the "rds" verb was missing, and the value key name for the "frequency" event was incorrect. Bug-AGL: SPEC-3620 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I2adfc10448546264110f6d854f02d677087f1e47
2020-09-25Rename COPYING to LICENSE.GPL-2.0-onlyLi, Xiaoming1-0/+0
It's better to lay the main licence in the LICENSE file, and other subordinate licenses in LICENSE.xxx, which will be easy for future licence clearing work. Bug-AGL: SPEC-3440 Change-Id: I0eb82c7c9c975dd26f538279fa4e0f650bd9fbcd Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com>
2020-09-18Merge "Remove deprecated html5 code"Jan-Simon Moeller7-439/+0
2020-09-16Remove deprecated html5 codeLi, Xiaoming7-439/+0
Bug-AGL: SPEC-3582 Change-Id: Ie2e66cc2b15f5b4310316d38eb93f7fb68b4b548 Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com>
2020-09-08Add null backendjellyfish_9.99.4jellyfish/9.99.49.99.4Scott Murray6-10/+312
Changes: - Add null radio implementation that acts as the fallthrough default when the hardware implementations are not detected. - Tweaked the probing in the tef665x implementation to not return an error if the I2C node is not even present. This cleans up the logs on start up on most platforms. These changes include some minor whitespace consistency clean ups. - Added the run-by-default widget permission now that the binding should always work. This will ease testing, and potentially decrease app start up time. Bug-AGL: SPEC-3570 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I3c2e60ce7272d248ab87e3b79d6a334e17fe5531
2020-09-01Add rds eventEhsan Takalloo5-117/+1387
Update types in radio_impl_tef665x.c and radio_impl_tef665x.h Add rds verb to tef665x and send latest rds as response Implement rds parser based on rds standard structure and tef-665x user-manual for rds group types 0A, 0B, 1A, 2A, 2B and 4A Implement scan_start verb for tef-665x Implement scan_stop verb for tef-665x Implement get stereo_mode verb for tef-665x Fix an issue in tef665x_set_frequency_callback Update README.md file Signed-off-by: Ehsan Takalloo <ehsan.takalloo@gmail.com> Change-Id: Ife057e46c52fc420541dbad3b4f51c7d01707a3d
2020-08-21binding/radio_impl_tef665x: Avoid uninitialised variable warningsAlistair Francis1-2/+2
GCC 10 generates uninitialised warnings for the fd variable, to avoid these initalise the variables to 0. Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Change-Id: Ieb718498f9d9dd1e8d2e2e79f71f060218759ec6
2020-06-09Update autobuild scriptsjellyfish_9.99.3jellyfish_9.99.2jellyfish_9.99.1jellyfish/9.99.3jellyfish/9.99.2jellyfish/9.99.19.99.39.99.29.99.1Scott Murray2-204/+154
Update autobuild scripts with reworked version that fixes building outside of the source tree. Bug-AGL: SPEC-2049, SPEC-3300 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Iba0b1bded9ac84b20c5615dc7c79b78978b16827
2020-02-18Update autobuild script to create new targetsFrederic Marec2-26/+174
Update autobuild script to create multiple widget target debug, coverage and all Bug-AGL: SPEC-2049 Signed-off-by: Frederic Marec <frederic.marec@iot.bzh> Change-Id: I9b1bcb6259c7753614feb365b337df58bdff566a
2019-12-31Add support for TEF665x in agl-service-radioicefish_8.99.5icefish/8.99.58.99.5VahidGharaee6-1/+1613
This is a NXP tuner AM/FM/RDS. The chip has analogue and digital sound output and input. Chip is controlled through i2c. I had to add a sound cart to the kernel to be able to capture the i2s data from the chip. Some of the verbs still to be implemented. I test it on a costum board with imx6solo. Bug-AGL SPEC-3071 Signed-off-by: VahidGharaee <vgharaee@gmail.com> Change-Id: I868706e6d275aef77f77138f815b1b53d64780be
2019-12-19Fixes for corking and restart behavioricefish_8.99.4icefish/8.99.48.99.4Scott Murray2-6/+38
Fixes: - Track playing state in binding code to properly ignore signal-composer events when not playing. - Add changing of pipeline state in response to the GstBus GST_MESSAGE_REQUEST_STATE message to the KF code, this is required to have the second request to switch back to PLAYING state be sent, and hence properly keeping track of corked state. Also added required gstreamer main loop so GstBus actually works. - The alsasrc used in the KF code's gstreamer pipeline seems to not handle the switch to READY state on pause (currently required to trigger Wireplumber policy) as expected; it seems to keep feeding the pipeline, causing long stalls on restart. For now, taking the stream fully down to NULL state seems to work around this issue. Bug-AGL: SPEC-3061, SPEC-3046 Change-Id: I31b2759d10087efbe4ccd885600be95b7029c598 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2019-12-16Add workaround for Wireplumber policy implementationScott Murray2-3/+29
Add hopefully temporary workarounds for current Wireplumber policy implementation that requires taking gstreamer state to READY or STOPPED to trigger policy. Also add a fix for resuming playback from corked state. Bug-AGL: SPEC-3061, SPEC-3023 Change-Id: I1020f9de1fc7dc82c3bb58f0870880ecbf4c09ef Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2019-12-14radio: check for corking from PipeWireicefish_8.99.3icefish/8.99.38.99.3Matt Ranostay3-0/+33
Check if PipeWire is corking the audio stream and if so don't process signal-composer events till uncorked Bug-AGL: SPEC-3023 Change-Id: I1a4623022bbe28658bc97b5fe0cda58863f20d8c Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-12-14Initial steering wheel event supportScott Murray3-4/+69
Add initial basic support for next/previous events from signal composer, mapping them to seek forward/back. More work will be required to handle the issues around both mediaplayer and radio both being running and differentiating which should handle the events. Additionally, complete transition to binding version 3 to clean things up. Bug-AGL: SPEC-3046 Change-Id: I251fa461c96dba584a3fe0069bab4fd2e54701ad Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2019-12-02Migration to binding V3icefish_8.99.2icefish/8.99.28.99.2Li Xiaoming4-73/+73
Bug-AGL: SPEC-2745 Change-Id: I5ee9d3118a302f0edf5fe79a43590818d3d829c3 Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-11-25fix(config.cmake): set PROJECT_URL to silence CMake warningLi Xiaoming1-0/+1
No homepage url found. Please set a PROJECT_URL cmake variable in your config.cmake. Bug-AGL: SPEC-2804 Change-Id: Ide7d38f4f1eaa88363cb4f00a21ae949e74ab37f Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-09Update Kingfisher support for PipeWire and security changesicefish_8.99.1icefish/8.99.18.99.1Scott Murray1-29/+48
Changes: - Restore the previous Gstreamer pipeline code that used the Si4689 ALSA input device as a source sink, now with an appropriate PipeWire output sink. This will be required until PipeWire adds some form of loopback service, which could be used instead. - Remove usage of the si_init script, as the sysfs accesses it performs cannot obviously be enabled via SMACK labelling in a safe fashion. Since the Si4689 on the KF will not work without the reset toggling done in si_init, the script is now called at boot by a systemd service added in a corresponding change in meta-agl-bsp. Bug-AGL: SPEC-2716 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I5c5007d809efd4144dd5fbb25d1c07cfe1ff2b8f
2019-08-01Switch back to user scope for nowScott Murray1-1/+0
Until SPEC-2687 is addressed and platform scope services can use pipewire, switch back to user scope to facilitate testing. Bug-AGL: SPEC-2715. Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ib110a25dd4e08c59dd8486901e39f780556ae3c3
2019-07-12radio: gstreamer: use pwaudiosink instead of alsasinkhalibut_7.99.3halibut/7.99.37.99.3George Kiagiadakis1-1/+2
This native pipewire sink has better performance and allows 1) properly selecting the role of the app 2) proper handling of the situation where another app with higher priority has taken over the audio stream Bug-AGL: SPEC-2634 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I9d0ea9ff475817c0944dd7c2b6d153f149abc957
2019-06-26Update permissionshalibut_7.99.2halibut/7.99.27.99.2Scott Murray1-0/+2
Set new platform scope and audio permissions, as there should only be one instance of this service and it needs access to audio devices. Bug-AGL: SPEC-2573 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I2b5222bc4437b7cf52edd00ca0060fc37e2cae64
2019-06-10Remove support for 4A and pulseaudio completelyGeorge Kiagiadakis6-448/+9
Bug-AGL: SPEC-2473 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I320be57ce48a63c7e85b8daebf7b094423f580f9
2019-06-04cmake: build radio_output_gstreamer when we have pipewireGeorge Kiagiadakis1-1/+1
The actual code does not need to change for the moment. GStreamer alsasink will redirect the stream to pipewire. Bug-AGL: SPEC-2473 Change-Id: Ibd791cc8fc4ec8f2c7ddaba82aac1de143856324 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-06-04rtlsdr: improve rtlsdr_set_output to handle NULL as the output stringGeorge Kiagiadakis1-3/+2
Bug-AGL: SPEC-2473 Change-Id: I89f754bd83687159c3aecb3074cba4fcf16c7d37 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-06-04kingfisher: initialize variableGeorge Kiagiadakis1-1/+1
Bug-AGL: SPEC-2473 Change-Id: Idade62b5e0248d1a2e9e9387696a5df012f6953f Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-06-04binding: make 4A truly optionalGeorge Kiagiadakis2-25/+11
The non-4A codepaths were totally broken here Bug-AGL: SPEC-2473 Change-Id: I1c3c49688566684455bf9522f68f506eaf6aa6c3 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-03-16binding: radio: remove useless .gitmoduleshalibut_7.99.1halibut/7.99.17.99.1Matt Ranostay1-3/+0
Bug-AGL: SPEC-2268 Change-Id: I9591651aea39856cfa9413c6fe1903ac4851d064 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-02-27autobuild: fix warnings due to cp command exit errorRaquel Medina4-120/+158
- bring latest version of autobuild script in - move conf.d/autobuild to root folder - update autobuild script to fix warnings triggered by cp operation error. Change-Id: I27a50b382fd55521a7ad397b317c60cfccca98ed Bug-AGL: SPEC-2164 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
2019-01-06Add status eventhalibut_7.90.0halibut/7.90.0guppy_6.99.4guppy/6.99.47.90.06.99.4Scott Murray2-0/+20
Add a status event to indicate playing versus stopped state, this allows users to detect when the binding has been stopped by another user. Change-Id: I4c1256427f0113b535e12a2dbc121d45c93dc0dd Signed-off-by: Scott Murray <scott.murray@konsulko.com> (cherry picked from commit a2fdf6e139207e7b0e0270c8a167c6a30c8fe61d)
2019-01-04Add audio role open/close supportScott Murray4-131/+143
Rework things so that the 4A audio role is only opened while playing, and closed when stopped. Further work will need to be done to handle the possibility of the output device changing on subsequent opens, both the RTL SDR and Kingfisher case have complications around doing so: - The RTL SDR helper application needs to be enhanced to add an output setting command. Killing it and starting it again would also work, but likely will add noticeable UI latency. - On the Kingfisher, the binding currently has no control over the output used for the loopback, as it is being set up down in the soft-mixer based on HAL values. Change-Id: I4aa83c937972ec5d91f7b78421a11148c7fe0afc Signed-off-by: Scott Murray <scott.murray@konsulko.com> (cherry picked from commit f1d5902c92eafd3aad62e29298502603a9b56d81)
2018-10-31Migrate app-templates to CMake moduleguppy_6.99.3guppy_6.99.2guppy_6.99.1guppy/6.99.3guppy/6.99.2guppy/6.99.16.99.36.99.26.99.1Romain Forlot2-3/+7
Bug-AGL SPEC-1682 Change-Id: I38f701e16210145c99cf566a369985de432082e4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-10-13binding: radio: update version of conf.d/app-templates submoduleMatt Ranostay2-1/+1
To allow coverage tests to be run it requires the app-templates to be updated to a recent release. Bug-AGL: SPEC-1799 Change-Id: Ia2bf6eeee478e2542bf71cb0cb794aa9a33f3fb9 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-10-11Merge "Use latest version of app-templates submodule."Stéphane Desneux1-0/+0
2018-10-10Use latest version of app-templates submodule.Thierry Bultel1-0/+0
Changes of app-templates: (0f25ab2 - Romain Forlot) Adding warning message to migrate on CMake module (3dc85ec - Thierry Bultel) common.cmake: fixed erroneous search path for os-release (7fa5e5a - Romain Forlot) Fix: missing gcov symbol in compiled binaries (76e12e7 - CorentinLGS) app-templates doc: Changed doc to fit new format. (02f45f1 - Romain Forlot) Update Docs (52ae181 - Romain Forlot) Fix: typo (f0b24b0 - Romain Forlot) Rollback about TEST build type (e841a77 - Romain Forlot) Adding a TEST build type (994ebc1 - Romain Forlot) Change default compilation options. (85d5ffd - Romain Forlot) Test widget only if there are test materials (d14bdce - Romain Forlot) Handles more test LABELS. (70cf8fd - Romain Forlot) Missing flag for COVERAGE build type (3c99b8a - Romain Forlot) Create a test widget (9c1a0fb - Romain Forlot) Fix: interpreted '&' character (9202fac - Romain Forlot) More accurate comment about widget template file. (f94e45e - Romain Forlot) Align sample on actual default compile options (d0acc2a - Romain Forlot) Add support to binding version 3. Change-Id: I52bfb4637d7623fc2894f93b65970c949c1eefc2 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-10-09Use feature 'required-binding'Jose Bollo2-1/+4
The feature "urn:AGL:widget:required-binding" is now preferred to the feature "urn:AGL:widget:required-api" for requiring a local binding. Bug-AGL: SPEC-1800 Change-Id: I337a33651c5c548e5776ea1d1e2980dfad3010c4 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2018-07-17cmake: added missing dependency to libusb-1.0guppy_6.90.0guppy/6.90.0flounder_5.99.6flounder_5.99.5flounder_5.99.4flounder_5.99.3flounder_5.99.2flounder/5.99.6flounder/5.99.5flounder/5.99.4flounder/5.99.3flounder/5.99.26.90.05.99.65.99.55.99.45.99.35.99.2Thierry Bultel1-1/+2
The build needs libusb-1.0. Everything foes right when building for Yocto, that already and likely has the needed things. Issue seen when building for a linux host. The missing check did not point out the need for libusb-1.0-devel Change-Id: I7440e2d9ca21232d11e5cabafc79b383092e8890 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-07-17.gitignore: added build*Thierry Bultel1-0/+1
Change-Id: I830ac299ee713344046d6e6ee96774cf04df516b Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-07-17added an html5 page for testingThierry Bultel8-0/+459
Change-Id: Ia07a32583a08b9b3e17296e560d80a2758f00658 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-07-17fixed the support for 4a frameworkThierry Bultel2-74/+152
Changed the api call for getting an audio role. Mapped the stop/start operations to mute/unmute actions on role verb. No longer uses a gstreamer pipeline for the sound output, since it is 4a-softmixer that performs the read/write loop instead. Change-Id: I91e4f801a0da866c50b2218622e810d7350ab8a9 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-07-17added api verb for RDS informationThierry Bultel3-3/+71
Added a verb to retrieve the RDS information. Notice that it is only supported on the kingfisher implementation. Change-Id: I0e2a830ff77154eb8cbb780bb599fb49f71a5b1c Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
2018-07-17Set the binding version in cmake instead of sourceThierry Bultel4-8/+2
Setting AFB_BINDING_VERSION is cmake makes merges easier between branches, since it is always defined once at a single place instead that in each file that need it. Also removed the "INSTALL" section with LIBRARY_DESTINATION since it is now treated in app-templates. Change-Id: I7ef5f3b4d2009ab6ec296ac70bfc0a5647f9534c Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>