Julian Bouzas
ee121e3093
scripts: cleaned and improved policy scripts
...
The policy scripts can handle now client nodes that want to be linked with other
client nodes. This is needed for nodes created by the Pulse Audio Volume Control
to monitor audio comming from other application client nodes.
2021-05-10 15:24:40 -04:00
Julian Bouzas
b46a907df4
create-item.lua: always enable monitor ports by default
2021-05-10 15:19:25 -04:00
George Kiagiadakis
fc5aa7db1f
lua: rename Plugin() to Plugin.find()
...
Plugin() is confusing because it's not a constructor, it just finds
an existing instance of a plugin object. All other camel-case
functions are constructors in the current lua API.
2021-05-07 11:53:47 +03:00
George Kiagiadakis
272022b8ea
policy-node: accept node names or paths in a stream's node.target property
2021-05-05 18:26:16 +03:00
Julian Bouzas
48b4f00d8c
policy-endpoint-client-links.lua: consider 'suspend.playback' metadata
2021-05-04 19:52:14 -04:00
George Kiagiadakis
4f79bccbe8
policy-endpoint: implement volume ducking
2021-04-26 18:31:19 +03:00
George Kiagiadakis
42e75028d2
access: add a more generic "default" access policy script
...
Configurable. Replaces the "flatpak" access policy.
2021-04-26 16:56:17 +03:00
George Kiagiadakis
d1da39b4f6
policy-endpoint-client: remove handling of move & follow and endpoint priorities
...
These don't make much sense here. In the endpoint policy we want
the clients to be linked to the endpoint that matches their role
and never move.
Also, endpoint priorities are useless. If no endpoint matches the
role, then just ignore the client.
2021-04-15 18:14:25 +03:00
George Kiagiadakis
155ad32212
scripts: add policy for links between clients and endpoints
...
This script takes links that are created by policy-endpoint-client
and activates only the ones that should be active based on role
priorities
2021-04-13 19:37:06 +03:00
George Kiagiadakis
7d65dc2a09
static-endpoints: avoid capturing session item reference in the activate closure
2021-04-12 16:04:34 +03:00
George Kiagiadakis
45e0ad1092
policy: export endpoints, do not export endpoint links
...
As with endpoint streams, there is not much use for endpoint links
in this updated design. This will be re-evaluated.
2021-04-12 12:48:48 +03:00
Julian Bouzas
5c6d484d08
src: scripts: rename policy-endpoint.lua to policy-endpoint-client.lua
2021-04-09 14:21:03 -04:00
Julian Bouzas
5c781db216
m-audio-endpoint: remove target property
...
Links between endpoints and device nodes are done externally in LUA
2021-04-09 14:19:25 -04:00
Julian Bouzas
b93f84897a
static-endpoints.lua: don't export endpoints, only activate them
2021-04-09 14:18:05 -04:00
Julian Bouzas
12b1226b37
src: scripts: add policy-endpoint.lua script
...
Links items with media role set to existing endpoints. The target of the
endpoints is also configured.
2021-04-08 14:45:54 -04:00
Julian Bouzas
7482a05ca2
policy-node.lua: do not handle items with media role if endpoints exist
2021-04-08 14:41:06 -04:00
Julian Bouzas
941da10c28
policy-node.lua: clean up findTarget function
2021-04-08 14:38:31 -04:00
Julian Bouzas
9f77b98b10
src: scripts: add static-endpoints.lua script
2021-04-08 14:07:05 -04:00
Julian Bouzas
cc51bdb75e
create-item.lua: only create items for client and device nodes
2021-04-08 14:07:05 -04:00
Julian Bouzas
f0960a38b2
policy-item.lua: only handle si-audio-adapter and si-nodes links
2021-04-08 14:07:05 -04:00
Julian Bouzas
c5d28031e5
src: scripts: remove unneeded policy-endpoint.lua
2021-04-08 14:07:05 -04:00
Julian Bouzas
debef67f3f
policy-node.lua: fix param name typo when finding target
...
Fixes unespected issues when finding first available target
2021-04-06 09:48:01 -04:00
George Kiagiadakis
a1923d8152
policy-node: properly remove links between apps and capture devices
...
the previous logic was flawed and would only work for links between
app node <-> device sink node
2021-04-06 16:07:14 +03:00
Julian Bouzas
fb1daa0bf2
modules: use dots instead of dashes for session item properties
...
Keeps consistency with PipeWire
2021-04-02 11:22:22 -04:00
Julian Bouzas
e86ed8e763
policy-node.lua: support config.move and config.follow
2021-03-31 12:44:49 -04:00
George Kiagiadakis
0ecefcb55d
policy-node: use default-nodes-api plugin
2021-03-31 13:10:13 +03:00
Julian Bouzas
cb3445c077
policy-node.lua: fix type mismatch when comparing session item Ids
2021-03-30 14:52:42 -04:00
George Kiagiadakis
fd2ddffdd7
lua: s/Feature.Object.ALL/Features.ALL/
...
It looks nicer to have groups of features in 'Features.'
instead of 'Feature.'
2021-03-29 18:35:35 +03:00
Julian Bouzas
b7e347d92c
modules: remove endpoint impl on si-node, si-audio-convert and si-audio-adapter
2021-03-26 16:16:02 -04:00
Julian Bouzas
e3cc3c330d
src: scripts: add policy-node.lua to link port info session items
2021-03-26 16:16:02 -04:00
Julian Bouzas
f6ed14f997
src: scripts: add create-item.lua and remove create-endpoint.lua
2021-03-26 16:16:02 -04:00
George Kiagiadakis
95bb22efe2
monitor-alsa: add api.alsa.card.* properties on nodes
...
Useful for rule matching on nodes where the rules are also matching
properties of the card.
2021-03-26 17:29:25 +02:00
George Kiagiadakis
dd887a7b3e
bluez5: autoconnect bluetooth stream nodes
2021-03-25 18:13:47 +02:00
George Kiagiadakis
5c84f58b9e
bluez5: use api.bluez5.connection-info
...
This creates devices earlier, allowing the use of per-device
codec configuration via the standard rules
See pipewire/pipewire!509
2021-03-25 18:12:41 +02:00
Julian Bouzas
340213272e
m-si-adapter: rename to si-audio-adapter
...
Because it is only meant to be used with audio nodes
2021-03-18 14:47:22 -04:00
Julian Bouzas
120aab04ae
session-item: refactor and inherit from WpObject
...
This adds WP_SESSION_ITEM_FEATURE_ACTIVE and WP_SESSION_ITEM_FEATURE_EXPORTED
features, so _activate and _export APIs have been removed. Modules and unit
tests have also been updated.
2021-03-18 14:30:05 -04:00
Julian Bouzas
2747d21de2
m-si-monitor-endpoint: rename to si-monitor
2021-03-18 12:10:37 -04:00
Julian Bouzas
b10a5b6b49
m-si-simple-node-endpoint: rename to si-node
2021-03-18 12:10:37 -04:00
Julian Bouzas
12b2c00d0b
lib: remove WpEndpointStream API
...
Add all that goes with it.
2021-03-18 12:10:37 -04:00
Julian Bouzas
003afc3e7b
m-lua-script: add closure for object_activate API
2021-03-15 07:52:55 -04:00
George Kiagiadakis
9399f3db66
lua/api: simplify & improve session_item_configure
2021-03-02 14:39:00 +02:00
George Kiagiadakis
a4ec7538bc
lua/api: make the type optional when declaring Interest as a function argument
...
it makes no sense to specify the type when calling, for instance,
session:lookup_endpoint() or similar functions
it also makes it easier to use iterate or lookup in the object
manager, when we already know the type of the objects that the om
contains
2021-03-02 14:08:43 +02:00
George Kiagiadakis
905636dc8d
lua/api: improve getting optional Interest arguments
...
Add the ability to construct an Interest argument without
using the Interest keyword, so instead of:
om:lookup(Interest { type = "session" })
we can now write:
om:lookup { type = "session" }
... and also remove lookup_filtered from ObjectManager
2021-03-02 13:11:54 +02:00
Julian Bouzas
6c2bfea55b
scripts: policy-endpoints: add move and follow options
...
If 'move' is set to true, endpoints will be moved to the new target when the
metadata 'target.node' key is present. If 'follow' is set to true, endpoints
will be moved to the newly changed default device automatically.
2021-03-01 15:36:28 -05:00
George Kiagiadakis
24a260030b
scripts/access: update access scripts to call update_permissions() cleanly
...
and fix some coding style issues
2021-02-18 16:53:41 +02:00
George Kiagiadakis
98151fdb69
monitor-alsa: fix node description on strange embedded devices
...
Ensure that no part of the description string is empty, otherwise fall back
Fix logic with dev and/or subdev being 0
2021-02-18 10:23:07 +02:00
George Kiagiadakis
beb9902589
suspend-node: honor "session.suspend-timeout-seconds"
...
6079830591
2021-02-18 09:15:24 +02:00
George Kiagiadakis
20c7733640
monitors: sanitize node descriptions too
...
aea79cd79c
2021-02-18 09:02:41 +02:00
George Kiagiadakis
115c9c3e4f
monitors: drop the monitor- prefix from the filenames and s/bluez5/bluez/
2021-02-15 19:55:06 +02:00
George Kiagiadakis
1d40e7713f
config: load reserve-device only if alsa.reserve is true
...
and also make the default of alsa.reserve to be false, for easier scripting
2021-02-15 19:43:07 +02:00