Commit graph

513 commits

Author SHA1 Message Date
George Kiagiadakis
99f7220064 node: ensure FEATURE_PORTS gets enabled after the ports are discovered
+ add a ports-changed signal
2020-04-23 15:23:41 +03:00
George Kiagiadakis
d61b7904f9 modules: fix small issues in the session items 2020-04-23 15:22: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
George Kiagiadakis
32859356e8 module: add annotations in wp_module_load() 2020-04-22 17:06:29 +03:00
George Kiagiadakis
74df1c425e modules: implement si-simple-node-endpoint
This is a simpler endpoint implementation that does not require
any node setup. It should be good to use with test nodes (fakesrc/fakesink),
V4L2 nodes, and maybe others in the future.
2020-04-22 13:53:14 +03:00
George Kiagiadakis
45059cb348 si-interfaces: add default implementations of optional methods
Implementations are not required to provide implementations for these
if they don't need them
2020-04-22 13:49:37 +03:00
George Kiagiadakis
78fe4dc30e spa-type: add the AUDIO_CHANNEL table 2020-04-22 13:44:40 +03:00
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