summaryrefslogtreecommitdiffstats
path: root/binding/audiomixer.c
AgeCommit message (Collapse)AuthorFilesLines
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 Kiagiadakis1-256/+226
* 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-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-28audiomixer: use pipewire's debug system in the audiomixer threadGeorge Kiagiadakis1-6/+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 Kiagiadakis1-0/+597
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I89e493d88c7fa1309f1b2991d346fc496caa6898