aboutsummaryrefslogtreecommitdiffstats
path: root/binding
AgeCommit message (Collapse)AuthorFilesLines
2022-07-04Repurpose into VIS clientneedlefish_13.93.0needlefish/13.93.013.93.0Scott Murray4-943/+0
Repurpose repository for a spiritual successor of the previous binding. The replacement is a daemon that demonstrates servicing the volume actuator from the VSS schema via VIS signals from KUKSA.val. Currently the connection to KUKSA.val is websocket based using the boost::asio framework, but the plan is to migrate to gRPC as that becomes more robust in KUKSA.val. As well, this new code will serve as the base for implementing a gRPC API to expose the full set of WirePlumber controls as was done with the previous binding. Notable changes: - New code is completely C++, partly to leverage using Boost, but also to futureproof future work with gRPC. The WirePlumber interfacing code that has been kept from the old binding is still C for now, converting it to C++ is a planned future rework. - Switch from CMake to meson for ease of development and some degree of futureproofing. - Use with systemd is assumed; behavior follows the systemd daemon guidelines barring the use of journald logging prefixes, which may be addressed with future work. A systemd unit is also installed as part of the build. - SPDX license headers using SPDX "short identifiers" are used in source files rather than the full copyright headers used in the previous codebase. This follows the direction that projects such as the Linux kernel are going in. Bug-AGL: SPEC-4409 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ibb7091c4354432bb094147d1419ab475486a4abc (cherry picked from commit 298bbf445a731b85cb8d5d19a3b595e8870d8701)
2021-06-24audiomixer: fix calls to g_variant_lookup()marlin_12.93.0marlin_12.91.0marlin_12.90.1marlin_12.90.0marlin/12.93.0marlin/12.91.0marlin/12.90.1marlin/12.90.012.93.012.91.012.90.112.90.0George Kiagiadakis1-2/+2
* actually get values instead of storing them into intermediate pointers on the stack * fix crash on 32-bit architectures * no need to use NULL sentinel Bug-AGL: SPEC-3976 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I88647ae21405fe3bd7e57c82d3e953be2767c0c9
2021-04-20audiomixer: port to wireplumber 0.4lamprey_11.92.0lamprey_11.91.0lamprey/11.92.0lamprey/11.91.011.92.0George Kiagiadakis3-277/+227
* use module-mixer-api and module-default-nodes-api * use endpoints without endpoint streams (new design) * improve thread safety a little bit Bug-AGL: SPEC-3844 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: Ia180d607698d7a8875c19cc48bd2b2c503772945
2019-12-24audiomixer: rework event handling to avoid race conditionsicefish_8.99.5icefish/8.99.58.99.5George Kiagiadakis1-49/+114
Previously there was a race condition that would happen when audiomixer was the first client to connect to pipewire. It would get a session first and then a default endpoint id from the session, but at the time the default endpoint id would be known, the WpProxyEndpoints would still not be ready. This would cause the populate_controls() algorithm to end up with no controls and the binding would therefore report that no controls were exposed. Now we also handle objects-changed from the endpoints object manager. This is an additional trigger, so that when we end up in the situation described above, the objects-changed from the endpoints om will trigger the controls to be exposed eventually. In order to avoid signalling control changes all the time, there are now some checks to change controls only under certain conditions. Change-Id: Ied705592f889a0262465ed5efa711233a66d579b Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-12audiomixer: port to the new endpoints APIicefish_8.99.4icefish_8.99.3icefish/8.99.4icefish/8.99.38.99.48.99.3George Kiagiadakis1-444/+272
... using wireplumber API to access endpoint information instead of the low-level pipewire API. This exports only the master volume for the moment. Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I4fc78c4182259b6405c1eeaa1823c3bac83ba2ee
2019-12-12audiomixer: add steering wheel event processing supportMatt Ranostay1-0/+85
Subscribe to volume events from the agl-service-signal-composer service, and enable up/down/mute event processing applied to the Master mixer control. Bug-AGL: SPEC-3024 Change-Id: I76bb66c7274875371a581568092c600dfd543e0f Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2019-12-06fix API usage after changesicefish_8.99.2icefish/8.99.28.99.2George Kiagiadakis1-3/+1
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I4c00d355a2dc452ebae413f0abf39308ba314f56
2019-12-06disable all usage of the endpoint extension to make this compile for nowGeorge Kiagiadakis1-4/+12
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: Ieba770a3902fa4081ea4b9a1c9506b9abd82f35b
2019-06-28binding: use afb_api_queue_job to queue events to run asynchalibut_7.99.3halibut_7.99.2halibut/7.99.3halibut/7.99.27.99.37.99.2George Kiagiadakis1-20/+14
Apparently the binder does not like manual interventions to the event loop and it has its own mechanism for queueing events to run asynchronously. Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: Iefef031b4ad8932bbf36a5213a119908de48b41f
2019-06-28audiomixer: use pipewire's debug system in the audiomixer threadGeorge Kiagiadakis2-7/+1
Because the binder doesn't like printing messages with its own mechanism from other threads. Change-Id: I6fac81fc6de58f7cbbf2f93b9795c0833e44d85c Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-06-28audiomixer: fix a couple of stupid mistakesGeorge Kiagiadakis1-4/+6
This makes the code actually work now Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I8dad07fc463ca00d4f16be63f0ad73946f6da0bc
2019-06-24Initial binding versionGeorge Kiagiadakis4-0/+1019
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I89e493d88c7fa1309f1b2991d346fc496caa6898