Commit Graph

490 Commits

Author SHA1 Message Date
George Kiagiadakis
f7a0e710a5 lib: remove wp_proxy_sync in favor of wp_core_sync
They are equivalent, there is no real benefit in having both
2020-01-22 18:07:16 +02:00
George Kiagiadakis
f7c0730b7e docs: enable building html documentation with hotdoc 2020-01-22 17:06:01 +02:00
George Kiagiadakis
efb33ddd1b lib: introduce export macros and hide all private symbols 2020-01-16 18:50:07 +02:00
Julian Bouzas
83a0725b6a modules: remove match priorities from config files and use the filename instead 2020-01-14 09:15:22 -05:00
Julian Bouzas
43d71d47a1 exported: export when connected signal is emitted if core is not connected 2020-01-14 08:37:43 -05:00
Julian Bouzas
a9ac1fdc06 update to the latest pipewire API 2020-01-13 15:07:08 -05:00
Julian Bouzas
cf768e9b20 core: remove wp_core_get_pw_remote API 2020-01-13 08:45:26 -05:00
Julian Bouzas
c1bece82f9 core: add wp_core_export_object API 2020-01-13 08:44:35 -05:00
Julian Bouzas
4699946e56 core: remove wp_core_get_pw_core_proxy API 2020-01-10 10:16:15 -05:00
Julian Bouzas
b92e2f3574 monitor: use WpCore API when creating pipewire objects 2020-01-10 10:16:15 -05:00
Julian Bouzas
35ca79750d monitor: clean monitor code 2020-01-10 10:16:15 -05:00
Julian Bouzas
116376a0a6 proxy: add local_object property to handle local objects 2020-01-10 10:16:07 -05:00
Julian Bouzas
df6d1e7e2b tests: add config-static-nodes unit test 2020-01-09 08:50:03 -05:00
Julian Bouzas
4ec61d79b8 config-static-nodes: add config static nodes module
This module allows wireplumber to create static nodes that match a specific
device using a spa node factory. Matching is optional, and if there is no match,
the node will always be created.
2020-01-09 08:50:03 -05:00
Julian Bouzas
3396470f01 modules: simplify config endpoint module 2020-01-09 08:50:03 -05:00
Julian Bouzas
0a690f61a4 core: add wp_core_create_local_object API 2020-01-09 08:49:57 -05:00
Julian Bouzas
55ff0a6339 proxy: add WpProxyDevice subclass 2020-01-08 09:54:31 -05:00
Julian Bouzas
59580e7c84 properties: add wp_properties_copy_all API 2020-01-07 09:00:46 -05:00
Julian Bouzas
d3d977cbe4 config-policy: add timeout when waiting on conditional variables 2019-12-27 08:38:07 -05:00
George Kiagiadakis
c56209fac6 add .gitignore 2019-12-23 18:24:06 +02:00
George Kiagiadakis
1ccc570f3f docs: add full documentation on WirePlumber's configuration options and files 2019-12-23 18:21:14 +02:00
George Kiagiadakis
0e98e4150b config-policy: debug handling of endpoints 2019-12-19 14:49:57 +02:00
George Kiagiadakis
40e4ce8909 config-policy: push endpoints with keep=true to the end of the list when sorting
This ensures that endpoints with keep=false will still have
a chance to link when ones with keep=true exist. This also effectively
means that role priority does not matter when keep=true: we keep these
links active no matter what, while policy still applies normally for
all others.

For example, a final sorted list with these endpoints will end up
looking like this:

* ep1, role priority=25, keep=false
* ep2, role priority=20, keep=false
* ep3, role priority=25, keep=true
* ep4, role priority=75, keep=true

... which will effectively cause ep1, ep3 and ep4 to be linked.
2019-12-19 14:43:40 +02:00
George Kiagiadakis
729aee5c4c config-policy: do not unlink other endpoints when linking one with keep=true
keep=true should work in both ways:
* keep the endpoint with this property linked at all times
* keep other already linked endpoints when linking this one
2019-12-19 14:40:50 +02:00
George Kiagiadakis
3c5b5ea08c config-policy: remove _can_link_stream() function
This is no longer needed since we sort endpoints by role priority
before trying to link them and we link only the highest priority one.
After this sorting, the highest priority endpoint is guaranteed
to be able to link, so _can_link_stream() always returns TRUE.
2019-12-19 14:38:01 +02:00
George Kiagiadakis
db7317c1ac config: add missing endpoint priority in hw:0,0 config 2019-12-19 14:37:11 +02:00
George Kiagiadakis
152611dd3f parser-endpoint: fix typo; initialize endpoint priority instead of reseting the match one 2019-12-18 16:04:57 +02:00
George Kiagiadakis
e10b0f871d lib: debug loading of config files + endpoint priorities 2019-12-18 15:43:29 +02:00
George Kiagiadakis
7abf74942d cli: fail gracefully if connection to pipewire fails 2019-12-17 19:49:50 +02:00
George Kiagiadakis
c1e1d67b72 config-policy: debug rescans 2019-12-17 18:03:02 +02:00
George Kiagiadakis
2bb534d063 policy: track the exported session instead of the proxy
The proxy takes more roundtrips to get updated and this makes the
policy fail to find a default endpoint at startup, right after
the devices have been discovered

This also removes the weak ref on the session, since the object
manager internally maintains a reference on the objects that
it manages.
2019-12-17 18:01:03 +02:00
George Kiagiadakis
56f12047ab module-session: debug default endpoint changes 2019-12-17 18:00:34 +02:00
George Kiagiadakis
1586d7314f config: fix typo in config files 2019-12-17 17:36:57 +02:00
George Kiagiadakis
5dc250a961 config: refactor wireplumber's configuration 2019-12-17 17:16:53 +02:00
George Kiagiadakis
bb3a91bd36 session: select the default endpoint based on endpoint priority 2019-12-17 13:54:09 +02:00
Julian Bouzas
1d00104642 config-policy: only handle the highest priority endpoint for a target, and the ones with keep=true 2019-12-16 14:05:14 -05:00
Julian Bouzas
eda8507ef7 config-policy: use the default session endpoint if target-endpoint is not defined 2019-12-16 13:37:05 -05:00
Julian Bouzas
5348239ccb policy: add _get_session API for the policy manager 2019-12-16 13:37:05 -05:00
Julian Bouzas
d485c1192a base-endpoint: add _get_global_id API 2019-12-16 13:37:05 -05:00
Julian Bouzas
7ac9c6359c modules: only allow 'sink' and 'source' strings when parsing direction in config files 2019-12-16 13:37:05 -05:00
Julian Bouzas
0ad0c9fb9d base-endpoint: add _get_priority API 2019-12-16 13:37:05 -05:00
Julian Bouzas
0552e7da87 parser-endpoint-link: don't parse unused state value 2019-12-16 13:37:05 -05:00
Julian Bouzas
3fe1e96e2e config-policy: remove parsing of streams file
This is now done by the config endpoint module
2019-12-16 13:37:05 -05:00
Julian Bouzas
acda80d77c modules: add config endpoint module 2019-12-16 13:36:56 -05:00
Julian Bouzas
50f06baf3a modules: remove alsa-udev and audio-client modules 2019-12-16 13:03:36 -05:00
Julian Bouzas
134f62a189 softdsp-endpoint: don't rename the endpoint on creation 2019-12-16 07:56:28 -05:00
Julian Bouzas
b9e594e5f9 parser-endpoint-link: higher number means higher priority 2019-12-13 14:55:13 -05:00
Julian Bouzas
db7a3a3b9c config-policy: sort endpoints by creation time when finding target 2019-12-13 14:43:50 -05:00
George Kiagiadakis
cda1a8c498 cli: fix build warning 2019-12-12 22:27:43 +02:00
George Kiagiadakis
1fcadf4bdf meson: install a pkgconfig file for libwireplumber 2019-12-12 20:41:20 +02:00