Commit graph

112 commits

Author SHA1 Message Date
George Kiagiadakis
9ae7071134 props: refactor WpSpaProps into WpProps
- make it a GObject so that it can emit its own signals
and so that it can be shared between multiple proxies
- share the WpProps instance between endpoints, endpoint-streams
and their underlying nodes
- introduce the concept of the caching mode that redirects _set
to _set_param of the proxy that actually has the props; this allows
shared WpProps to actually set changes on the correct proxy
in a transparent way
- change methods to consume the ref of the pod and reflect that
also on wp_proxy_set_prop()
- refactor the export process on endpoints & endpoint-streams
so that they always get all the required features (info, props, bound)
and make it async so that we can take time to prepare the underlying
node to have FEATURE_PROPS
- update the props & endpoint unit tests, bringing back all the
checks that the endpoint unit test used to have
2020-05-29 18:47:16 +03:00
Julian Bouzas
da63c05e76 m-config-static-nodes: remove unneeded 'conected' callback and create static nodes when the plugin is activated 2020-05-29 08:43:36 -04:00
Julian Bouzas
9667cccb5a modules: move monitor device activation logic into a new device-activation module 2020-05-26 11:52:44 -04:00
Julian Bouzas
469c35edc8 m-monitor: remove monitor prefix from dbus device reservation API 2020-05-26 11:29:18 -04:00
George Kiagiadakis
162c1d4574 session: fix the default-endpoint prop
* Use a direction instead of a string prop id
* Emit default-endpoint-changed again
* Get rid of the useless virtual methods
2020-05-25 18:56:21 +03:00
George Kiagiadakis
8a94937b2a proxy: refactor how PARAM_Props/PropInfo are handled
+ rename FEATURE_CONTROLS to FEATURE_PROPS
+ add accessor for the standard spa_param_info (info->params)
+ hide the low-level params API that nobody uses
2020-05-25 18:54:41 +03:00
George Kiagiadakis
7428d20c94 proxy: add a wp_proxy_get_property() method to get a single pw property 2020-05-20 18:08:35 +03:00
Julian Bouzas
bd0218c3ee tests: base-test-fixure: make sure core is done before destroying it 2020-05-19 10:18:51 -04:00
Julian Bouzas
522d32224e modules: config-policy: rename link-activated signal to link-created 2020-05-19 10:18:51 -04:00
Julian Bouzas
bb82b0832e tests: config-policy: make sure the link is activated before stopping 2020-05-19 10:18:51 -04:00
Julian Bouzas
895e5d3f33 tests: spa-props: fix memleaks shown with valgrind 2020-05-19 10:18:51 -04:00
George Kiagiadakis
3c8d7da879 Merge remote-tracking branch 'origin/master' into next 2020-05-18 10:25:03 +03:00
George Kiagiadakis
a2b84e27d1 session: rename the default source/sink controls to have shorter names
+ use a more correct naming scheme to match the one from Spa
+ remove the default video source, since we now use a different
 session for video
2020-05-14 17:31:24 +03:00
George Kiagiadakis
5eecc5b68a object-manager: remove deprecated API 2020-05-14 16:24:34 +03:00
Julian Bouzas
27ff8d5ef2 modules: port config-static-nodes to use WpPlugin 2020-05-13 11:21:45 -04:00
Julian Bouzas
faa9719f53 modules: port config-policy to use WpPlugin 2020-05-13 11:21:45 -04:00
George Kiagiadakis
68223e0ea3 tests: add unit test for WpCore disconnection 2020-05-13 15:21:10 +03:00
George Kiagiadakis
d13e411da3 lib: use WP_PROXY_FEATURE_LAST with a shift when declaring additional features
Features are flags, therefore we must NEVER use them without a shift,
otherwise bad mistakes happen, like the previous mistake of declaring
WP_SESSION_FEATURE_LINKS as the number after WP_SESSION_FEATURE_ENDPOINTS,
which ended up being (WP_SESSION_FEATURE_ENDPOINTS | WP_PROXY_FEATURE_PW_PROXY)
and it was always becoming available together with the ENDPOINTS feature.
2020-05-12 18:18:24 +03:00
George Kiagiadakis
e9c51653af modules: port config-endpoint to use WpPlugin 2020-05-12 18:18:24 +03:00
Julian Bouzas
6044b23aed modules: refactor config-policy to use the new session item API 2020-05-12 10:03:29 -04:00
Julian Bouzas
4b7bc92e4b modules: remove pipewire module and move algorithms to module-si-adapter 2020-05-12 09:47:35 -04:00
George Kiagiadakis
66a0bf6093 lib: implement a wp_init() function 2020-05-11 15:45:09 +03:00
Julian Bouzas
17ee195902 spa-pod: rename wp_spa_pod_iterator_new to wp_spa_pod_iterate 2020-05-11 12:03:43 +03:00
Julian Bouzas
288f1f091b modules: refactor config-endpoint to use the new session item API 2020-05-11 12:03:43 +03:00
George Kiagiadakis
20708b28c7 examples: add a simple audio session management example 2020-05-11 11:40:55 +03:00
George Kiagiadakis
e8e6c1d8bc algorithms: allow specifying a preferred number of channels in the format choosing algorithm 2020-05-11 11:40:55 +03:00
George Kiagiadakis
11b99527b5 core: make the properties on wp_core_new to be (transfer full)
This aligns better with the general design of consuming property
objects on constructors, both in PipeWire and WirePlumber APIs
2020-05-08 17:12:31 +03:00
Eric Engestrom
80dc7723fc test/dbus-device-reservation: fix include path
The extra `../` only works if the build directory is an immediate child of the
source directory. In all the other configurations this breaks the build.

Dropping the extra `../` makes use of the `-I${SOURCE_DIR}` provided by meson.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
2020-05-08 15:16:50 +02:00
George Kiagiadakis
f24fc53d5a tests/common: add common function for ensuring an object manager is installed
It can be a bit tricky because the "installed" signal may be fired
from inside the context of wp_core_install_object_manager(),
in which case the main loop should not be executed (or it will never quit)
2020-05-07 16:16:45 +03:00
George Kiagiadakis
9db4a54591 session-item: handle destroyed endpoint links
We can now call wp_proxy_request_destroy() on endpoint links and
the WpImplEndpointLink together with the session item that created
it will be cleaned up
2020-05-07 16:02:23 +03:00
George Kiagiadakis
6501307d27 tests: add si-standard-link unit test 2020-05-05 18:04:50 +03:00
George Kiagiadakis
23ae8c0d51 tests/si-softdsp-endpoint: add tests for streams 2020-05-04 18:04:53 +03:00
George Kiagiadakis
82b598edbf tests/si-*: use new WpObjectManager API 2020-05-04 16:29:36 +03:00
George Kiagiadakis
bd9ae98c9b tests/si-softdsp-endpoint: fix the tests to reflect the latest changes 2020-05-04 16:04:37 +03:00
Julian Bouzas
fc864eb2b3 tests: add export test for si-audio-softdsp-endpoint 2020-05-03 19:54:31 +03:00
Julian Bouzas
791e9170aa si-interfaces: transfer full when returning from _get_stream_parent_endpoint 2020-05-03 19:54:31 +03:00
Julian Bouzas
e810d32719 tests: add basic test for si-audio-softdsp-endpoint 2020-05-03 19:54:31 +03:00
George Kiagiadakis
bccb160bc2 port some more deprecated object-manager calls 2020-05-03 19:49:21 +03:00
George Kiagiadakis
db40a593b3 lib: implement WpObjectInterest 2020-05-01 19:21:08 +03:00
George Kiagiadakis
444814d753 tests: common: add common callbacks based on the si-simple-node-endpoint test 2020-04-23 17:54:49 +03:00
George Kiagiadakis
1c74a83a5c tests: si-simple-node-endpoint: add export test 2020-04-23 17:25:57 +03:00
George Kiagiadakis
c1c91ce7d0 tests: add basic test for si-simple-node-endpoint 2020-04-23 15:49:32 +03:00
George Kiagiadakis
fe12e8ab6f tests: enable WIREPLUMBER_DEBUG and set WIREPLUMBER_MODULE_DIR by default
+ better logs by default
+ allow loading modules in tests
2020-04-22 18:39:11 +03:00
George Kiagiadakis
1d157f016a tests: move common fixture code to WpBaseTestFixture 2020-04-22 18:39:03 +03:00
George Kiagiadakis
4eaa99a698 tests: collect common helpers in the 'common' directory 2020-04-22 17:13:33 +03:00
Julian Bouzas
0045fe03c9 proxy: add set and get control vmethods, and remove them from sub-classes 2020-04-21 16:11:05 -04:00
Julian Bouzas
e08af1baa3 tests: fix redefined warnings when building spa-props test 2020-04-21 16:11:05 -04:00
Julian Bouzas
cfbcb5eca3 proxy: use WpSpaPod instead of struct spa_pod in public API 2020-04-21 16:11:05 -04:00
Julian Bouzas
fe4bef8bbc spa-pod: fix constness and add get_object_type_name and get_choice_type_name 2020-04-21 16:11:05 -04:00
Julian Bouzas
058f8ae1e0 spa-pod: add wp_spa_pod_equal API 2020-04-21 09:38:36 -04:00