Commit graph

604 commits

Author SHA1 Message Date
George Kiagiadakis
33e67f2189 port: add wp_port_get_direction() 2020-04-22 10:59:12 +03:00
George Kiagiadakis
72ff4577c5 node: add useful API to access node info, associated ports and state changes 2020-04-22 10:57:30 +03:00
Julian Bouzas
135b1c2cbf object-manager: only get proxy properties when needed 2020-04-21 16:11:05 -04:00
Julian Bouzas
beb0056dfc conf: remove loading of unexistent module-session 2020-04-21 16:11:05 -04: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
03c15a8132 spa-type: add format, param-port-config and param-profile tables 2020-04-21 16:10:38 -04:00
Julian Bouzas
058f8ae1e0 spa-pod: add wp_spa_pod_equal API 2020-04-21 09:38:36 -04:00
George Kiagiadakis
1dccdcf415 object-manager: replace GPtrArray API with WpIterator
+ add the useful _find_proxy() method
2020-04-21 13:21:03 +03: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
78cdf4b8e6 debug: use the "default" domain to log messages without a domain
This allows filtering messages without a domain using WIREPLUMBER_DEBUG
2020-04-15 18:33:33 +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
5bf40e86cb endpoint: fix compiler warnings 2020-04-14 15:18:44 +03:00
George Kiagiadakis
2ac6210b6d Merge branch 'master' into next 2020-04-14 15:17:01 +03:00
George Kiagiadakis
ecbcabdc05 debug: add support for redirecting pipewire's log to the glib one 2020-04-14 14:59:55 +03:00
George Kiagiadakis
c80b87208b lib: add a debug logging system
This extends GLib's logging system, so it is compatible with
g_debug() and friends, but it uses a better logging format and
supports filtering debug domains with wildcards, like in gst.
2020-04-14 12:16:41 +03:00
Julian Bouzas
8c209ecf48 lib: add spa pod API 2020-04-13 13:32:04 -04:00
George Kiagiadakis
5d74bceac0 endpoint: implement create_link() 2020-04-11 11:05:26 +03:00
George Kiagiadakis
0e855d854a modules: implement si-standard-link, the default WpSiLink implementation 2020-04-11 11:05:09 +03:00
Julian Bouzas
b79fcf9418 lib: add spa type API 2020-04-09 13:09:57 -04:00
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