Commit graph

122 commits

Author SHA1 Message Date
George Kiagiadakis
cead4dffb8 config: document the duck.level policy property 2021-06-10 14:53:09 +03:00
George Kiagiadakis
2e56aeb44a scripts: initial restore-stream implementation
Related to #33
2021-06-07 17:47:42 +03:00
George Kiagiadakis
ee87161d29 default-routes: re-implement the default-routes module in lua
using the logic from the default-routes of pipewire-media-session

Fixes: #28, #30
Related: !156
2021-06-03 16:26:28 +03:00
George Kiagiadakis
94dd3c4c1c config: disable role-based endpoints in the default configuration 2021-05-28 17:36:57 +03:00
George Kiagiadakis
fd7b68dfd7 scripts: remove static-sessions 2021-05-21 19:57:31 +03:00
George Kiagiadakis
c0099a99d6 config: bluez: update to match media-session's bluez-monitor.conf 2021-05-07 12:10:31 +03:00
George Kiagiadakis
157d4d95c9 config: disable ipc module by default and move it to the main instance
This is not part of the policy, it's something standalone that writes metadata

Needs to be disabled by default, since it's not built by default now
2021-05-06 15:19:55 +03:00
George Kiagiadakis
86ffac19e5 wpipc: place sockets in the same runtime directory as pipewire 2021-05-06 14:15:24 +03:00
Julian Bouzas
207268e189 modules: add ipc module
Handles SUSPEND and RESUME wpipc requests in order to set metadata that will
eventually unlink or re-link endpoints.
2021-05-04 19:52:09 -04:00
George Kiagiadakis
28a4229681 config: unify config and config-split
After all, we can just load multiple lua config files/directories
from a single .conf file and so have both styles available for the
user to choose at runtime
2021-04-27 19:50:38 +03: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
c2834ea344 lua: remove the ability to specify spa_libs in the lua config
This is not useful, we can do this on the pipewire-style config files
2021-04-22 17:44:17 +03:00
George Kiagiadakis
9c8e5b3081 daemon: Use a pipewire-style config file to load initial configuration
This allows configuring:
* the scripting engine, in case we ever add another one
* the app name, so that we can distinguish multiple instances
  of wireplumber
* the log level in the same way as pipewire
* wireplumber components to load. This allows loading components
  even without a scripting engine (for a mimimal daemon) and also
  allows configuring which lua config file(s) to load
* additional pw_context properties that pipewire modules may be using
* the exact pipewire modules to load (instead of relying on client.conf)
2021-04-22 13:28:58 +03:00
George Kiagiadakis
fdac497f0b config: policy: improve the endpoints & roles example config 2021-04-15 18:18:13 +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
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
380ba4aa39 src: config: do not create endpoints by default 2021-04-08 14:46:13 -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
9f77b98b10 src: scripts: add static-endpoints.lua script 2021-04-08 14:07:05 -04:00
Julian Bouzas
b2c9084413 modules: remove unneeded si-audio-convert module 2021-04-08 14:07:05 -04:00
Julian Bouzas
34f5dadad0 src: config: rename session-item support to default-policy 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
George Kiagiadakis
cdd6fda56c wpctl: status: print nodes, ports, links grouped more nicely 2021-04-01 19:15:34 +03: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
George Kiagiadakis
a0876bb275 modules: rename default-metadata to default-nodes and enable it always in the config 2021-03-31 13:10:13 +03:00
George Kiagiadakis
8052ef2792 bluez config: update based on the latest media-session config 2021-03-29 18:32:59 +03: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
32fea4057c src: config: rename endpoint-support to session-item-support 2021-03-26 16:16:02 -04:00
Julian Bouzas
04992f0d07 modules: remove si-monitor module
It is not needed as si-standard-link can be configured with port contexts
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
Julian Bouzas
d71cace24f m-si-convert: rename to si-audio-convert
Because it is only meant to be used with audio nodes
2021-03-18 15:00:22 -04: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
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
Arnaud Ferraris
a499e02ad9 modules: add module-default-routes for storing/restoring routes
This commit adds a WirePlumber module which stores the current route for
a given device, and implements the necessary interfaces to restore those
on startup.

The routes are stored as an array of objects in JSON format.

Please note that actually restoring routes on startup is not done by this
module but will be implemented separately in a future commit.
2021-03-02 18:17:56 +01: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
6690f12637 config: split flatpak access configuration 2021-02-19 10:01:17 +02:00
George Kiagiadakis
7336c271a2 config: bluez-monitor: add hfp_hf in the supported roles comment 2021-02-16 16:53:22 +02:00
George Kiagiadakis
f4b899c9e3 config: move loading of all audio support modules in 90-enable-audio-all
This file is meant to provide the equivalent of pipewire-media-session's
'with-pulseaudio' flag file
2021-02-15 20:17:15 +02:00
George Kiagiadakis
be78fbbc7d config: split configuration for endpoints support in config.lua.d 2021-02-15 20:11:52 +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
f2f889a3e0 config: make the monitor properties & rules available in global tables
This allows altering monitor properties or adding rules in different
lua files that get loaded before 90-enable*.lua
2021-02-15 19:48: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
George Kiagiadakis
73a07d0097 monitor-alsa: sync logic, properties and configuration with media-session 2021-02-15 18:49:57 +02:00
George Kiagiadakis
4fdccf5292 config: mimick media-session's v4l2-monitor.conf 2021-02-15 14:43:18 +02:00
George Kiagiadakis
989708a880 config: immitate media-session's bluez-monitor.conf 2021-02-15 14:43:18 +02:00