Commit graph

1078 commits

Author SHA1 Message Date
George Kiagiadakis
9ac59f05e0 endpoint-link: use the session item's activation state to implement the link's state 2020-04-09 19:27:33 +03:00
George Kiagiadakis
f713cbee11 session-item: decouple reset from deactivate and export from activate
* It should be possible to activate/deactivate while an item
  is exported (if the item supports it, but that's a subclass matter)
* It should be possible to deactivate without resetting configuration
2020-04-09 19:24:42 +03:00
Julian Bouzas
5846fb919f lib: add iterator base class API 2020-04-07 14:18:11 -04:00
George Kiagiadakis
27d1fd1ddd session-item: enable all standard endpoint features 2020-04-01 15:37:43 +03:00
George Kiagiadakis
fd358a643a session: add FEATURE_LINKS, a feature to cache endpoint link proxies 2020-04-01 13:53:45 +03:00
George Kiagiadakis
4a1a19d7cd session: add FEATURE_ENDPOINTS, a feature to cache endpoint proxies 2020-04-01 13:38:39 +03:00
George Kiagiadakis
edd50570f5 session: port to use PW_TYPE_INTERFACE_Session on the implementation 2020-04-01 13:06:18 +03:00
George Kiagiadakis
a0521deaa5 session-item: implement exporting endpoint links 2020-03-31 19:40:49 +03:00
George Kiagiadakis
17d4b46144 endpoint & stream: use wp_session_item_get_associated_proxy_id() 2020-03-31 19:31:54 +03:00
George Kiagiadakis
cbc2e51d14 lib: implement proxy & impl for PW_TYPE_INTERFACE_EndpointLink 2020-03-31 19:26:56 +03:00
George Kiagiadakis
a1f47d0627 session-item: add _get_associated_proxy_id method
To ease the use case where we are only interested in the id
and not the proxy object itself
2020-03-31 19:26:05 +03:00
George Kiagiadakis
bb78b6bbc7 doc: remove references to WpImplEndpoint that is now private 2020-03-31 16:11:08 +03:00
George Kiagiadakis
4adf6105ba endpoint: implement FEATURE_STREAMS
This feature enables the caching of WpEndpointStream objects
inside WpEndpoint, making information about streams readily
accessible to the user of an endpoint
2020-03-31 16:11:08 +03:00
George Kiagiadakis
c078a97d77 proxy: add 'bound' signal 2020-03-31 16:11:08 +03:00
George Kiagiadakis
c06317ac3b object-manager: add _get_n_objects() method 2020-03-31 16:11:08 +03:00
George Kiagiadakis
69ea11ca61 endpoint: improve impl 2020-03-31 16:11:08 +03:00
George Kiagiadakis
25d8e5e375 object-manager: look into the proxy object when checking constraints on a global
This allows having constraints on the pw properties and the GObject
properties of the proxy, instead of just on the global properties.

This is only useful for constraints on impl proxies, since the globals
coming from the registry don't have a proxy object associated at the
time they are added in the object managers
2020-03-31 16:11:08 +03:00
George Kiagiadakis
012b2c7383 endpoint-stream: improve impl 2020-03-31 16:11:08 +03:00
George Kiagiadakis
fe82ce9f0d properties: add wp_properties_ensure_unique_owner() method 2020-03-31 16:11:08 +03:00
George Kiagiadakis
1f1c690b42 properties: remove _copy_keys and add update/add methods similar to the ones in pw_properties 2020-03-31 16:11:08 +03:00
George Kiagiadakis
d7ef39d2d1 properties: rename _copy_all() to _update() to match the pw_properties API
... and use pw_properties_update() underneath
2020-03-31 16:11:08 +03:00
George Kiagiadakis
306f75d321 session-item: implement and use _get_associated_proxy() API 2020-03-31 16:11:08 +03:00
George Kiagiadakis
1a45e6504f object-manager: fix crash when global is removed before it was added in the globals list 2020-03-31 16:11:08 +03:00
George Kiagiadakis
c8f83c99dc session-item: export streams 2020-03-31 16:11:08 +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
b7566793b7 session-item: make WpSiTransition more generic to reuse it in _default_export() 2020-03-31 16:11:08 +03:00
George Kiagiadakis
1cc2837562 lib: add proxy & impl class for PW_TYPE_INTERFACE_EndpointStream 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
763156e9f8 session-item: add an _activate_finish() method 2020-03-29 15:02:59 +03:00
George Kiagiadakis
dec8699728 session-item: implement default activation sequence with no steps
This allows activating a dummy item for unit testing
2020-03-29 15:02:59 +03:00
George Kiagiadakis
865b6ba535 modules: softdsp-endpoint: disable exporting with WpImplEndpoint 2020-03-29 15:02:59 +03:00
George Kiagiadakis
7b20baa671 modules: drop module-session 2020-03-29 15:02:59 +03:00
George Kiagiadakis
37d3c56d42 session-item: remove get_config_spec, in favor of using WpSiFactory 2020-03-29 15:02:59 +03:00
George Kiagiadakis
0c455a0c11 si-adapter: port to use WpSiFactory 2020-03-29 15:02:59 +03:00
George Kiagiadakis
fc4fa4ca8a lib: implement WpSiFactory, a factory for session items 2020-03-29 15:02:59 +03:00
George Kiagiadakis
51f7897aa1 modules: implement the "adapter" session item, as a reference 2020-03-29 15:02:59 +03:00
George Kiagiadakis
374c3dc9e2 lib: initial version of the WpSessionItem interfaces 2020-03-29 15:02:59 +03:00
George Kiagiadakis
32dd485649 lib: implement WpSessionItem base class 2020-03-29 15:02:59 +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
c2dfec2184 monitor: add dbus-reservation flag 2020-03-20 14:01:22 -04:00
Julian Bouzas
8887cce5b4 modules: add monitor reservation data API 2020-03-20 14:01:22 -04:00
Julian Bouzas
daa8091666 modules: add monitor dbus device reservation API with unit tests 2020-03-20 14:01:20 -04:00
Julian Bouzas
9c44900e68 config-policy: fix endpoint refcount issues 2020-03-17 12:06:21 -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
91eb754b96 softdsp-endpoint: simplify and remove object_safe_new_finish function 2020-03-03 13:27:18 -05:00
Julian Bouzas
268f97e7bc docs: add test examples for pulseaudio, jack and video clients 2020-03-03 13:27:18 -05:00
Julian Bouzas
d9abbf811f config: make default configuration for desktop and create a separate one for automotive 2020-03-03 13:27:18 -05:00
Julian Bouzas
8646a3b003 modules: add WpVideoEndpoint sub-class to handle video 2020-03-03 13:27:15 -05:00
Julian Bouzas
60bdea1ed6 modules: add jack-device module 2020-03-03 11:14:13 -05:00
Julian Bouzas
e4d895902c config-static-nodes: skip devices without WP_PROXY_FEATURE_INFO 2020-02-28 10:59:42 -05:00