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
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
George Kiagiadakis
fbddccd5bf
tests: session-item: add basic export operation tests
2020-04-16 17:57:21 +03:00
George Kiagiadakis
49b63b6045
session-item: refactor export to use a process similar to activate
...
+ expose the export transition in the session item class
+ make the export-related flags immutable
+ add an export error flag
+ update and improve documentation
2020-04-16 17:38:31 +03:00
George Kiagiadakis
441a778b2e
session-item: introduce a rollback() virtual method
...
+ replace calling execute_step(..., STEP_ERROR) with rollback
+ implement deactivate internally using rollback
This unifies deactivation steps, which are common between deactivate()
and calling execute_step() with WP_TRANSITION_STEP_ERROR at the
end of a failed activation transition.
2020-04-16 13:18:21 +03:00
George Kiagiadakis
6b51e5842c
tests: add session-item unit test
2020-04-16 11:55:23 +03:00
George Kiagiadakis
914e2b84df
tests: remove the global G_LOG_DOMAIN to avoid issues with including code from elsewhere
...
including wp/spa-props.c currently re-defines G_LOG_DOMAIN
in the spa-props.c unit test
2020-04-15 18:40:52 +03:00
George Kiagiadakis
9ca342f89f
debug: update all library code to use the new debug system
...
+ enable the new log writer on the executables
+ enable structured logging in the tests
2020-04-14 18:31:17 +03:00
George Kiagiadakis
2ac6210b6d
Merge branch 'master' into next
2020-04-14 15:17:01 +03:00
Julian Bouzas
8c209ecf48
lib: add spa pod API
2020-04-13 13:32:04 -04:00
Julian Bouzas
b79fcf9418
lib: add spa type API
2020-04-09 13:09:57 -04:00
George Kiagiadakis
4a1a19d7cd
session: add FEATURE_ENDPOINTS, a feature to cache endpoint proxies
2020-04-01 13:38:39 +03:00
George Kiagiadakis
79a39e98c9
transition: call execute_step() with _STEP_ERROR in error conditions
...
This allows the implementation to rollback changes, cancel jobs, etc
2020-03-31 16:11:08 +03:00
George Kiagiadakis
405e8ba0d5
session-item / endpoint: implement exporting a WpSiEndpoint
...
* introduces API to export session items
* introduces small changes in the WpSiEndpoint & WpSiStream
interfaces to make it nicer to work with
* ports WpImplEndpoint to use PW_TYPE_INTERFACE_Endpoint
to export. Depends on:
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/246
(was merged after 0.3.2)
2020-03-29 15:18:20 +03:00
George Kiagiadakis
5f169d190f
lib: implement a new WpTransition class
...
This is an asynchronous operation class, like GTask,
but it is made to execute several operations underneath,
using a state machine, instead of just a single operation.
2020-03-29 15:02:59 +03:00
Julian Bouzas
daa8091666
modules: add monitor dbus device reservation API with unit tests
2020-03-20 14:01:20 -04:00
Julian Bouzas
8adde3df75
tests: don't load unneeded audioconvert plugin in config-policy tests
2020-03-10 12:50:27 -04:00
Julian Bouzas
64f131cbdd
tests: implement begin_fade vmethod on WpFakeEndpoint
2020-02-27 08:39:15 -05:00
Julian Bouzas
620f95b628
core: add source nullable parameter in _idle_add and _timeout_add APIs
2020-02-27 08:39:10 -05:00
Julian Bouzas
8aa695770c
tests: config-policy: run the main loop in the same thread
2020-02-26 15:51:58 -05:00
Julian Bouzas
3fd65ac964
tests: config-endpoints: run the main loop in the same thread
2020-02-26 11:37:23 -05:00
Julian Bouzas
266b5422f2
tests: config-static-nodes: run the main loop in the same thread
2020-02-26 11:14:52 -05:00
Julian Bouzas
46aaa9ef4f
tests: fix memleak when destroying test server
2020-02-25 15:40:39 -05:00
George Kiagiadakis
753e708544
object-manager: refactor to be able to track locally created proxies
...
There are 3 kinds of WpProxy objects:
* the ones that are created as a result of binding a global
from the registry
* the ones that are created as a result of calling into a remote
factory (wp_node_new_from_factory, etc...)
* the ones that are a local implementation of an object
(WpImplNode, etc...) and are exported
Previously the object manager was only able to track the first kind.
With these changes we can now also have globals associated with
WpProxies that were created earlier (and caused the creation of the global).
This saves some resources and reduces round-trips (in case client
code wants to change properties of an object that is locally
implemented, it shouldn't need to do a round-trip through the server)
2020-02-14 17:12:23 +02:00
George Kiagiadakis
a92e1a64ec
global & object-manager: use GType instead of the pipewire type
2020-02-12 14:15:51 +02:00