Commit graph

147 commits

Author SHA1 Message Date
Julian Bouzas
384c5775f8 default-nodes: add option to auto-switch to echo-cancel nodes
This option is enabled by default now.
2022-01-27 14:55:21 -05:00
Niklas Furtwängler
da023e1834 conf: added ability to disable MIDI functionality entirely 2022-01-27 15:22:33 +00:00
Wim Taymans
0c3be71ceb conf: update module-rt usage in bluetooth.conf
We now only use module-rt. Explicitly set the nice.level to -11 instead
of leaving the default (do nothing). Adjust the rt limits to their new
defaults in module-rt (unlimited).
2022-01-19 12:22:58 +01:00
Wim Taymans
9100064446 conf: update module-rt usage
We now only use module-rt. Explicitly set the nice.level to -11 instead
of leaving the default (do nothing). Adjust the rt limits to their
defaults in module-rt.
2022-01-18 13:34:23 +01:00
Sanchayan Maity
ef7504bdc8 scripts: policy-bluetooth: Support saving of user selected headset profile
The "saved headset profile" is taken as the profile that was active when
the headset mode deactivates. So in case the user switches profile during
the time when the Communication input stream is active, the selected
profile is remembered next time.
2022-01-14 16:49:27 +00:00
Sanchayan Maity
99d0fa3196 scripts: Add a bluetooth policy script
Allow switching bluetooth profile based on presence of media.role or
a list of specified applications.
2022-01-14 16:49:27 +00:00
mazunki
bbd23fa3e3 added support for disabling nodes and devices through conf 2022-01-12 13:07:05 +00:00
Ashok Sidipotu
99dfa7d38a config: update the endpoints config
-Sync endpoints config from AGL.
-Add a capture endpoint.
2022-01-11 15:30:30 +05:30
George Kiagiadakis
dc50f95910 config: add commented-out "session.suspend-timeout-seconds" option in alsa config
For the sake of discovering this more easily
2022-01-05 08:28:52 +02:00
Wim Taymans
071ad0e43f config: add property for audio.allowed-rates 2022-01-03 16:05:17 +01:00
George Kiagiadakis
64841f5ada config: enable RT on the data thread for bluetooth nodes
Closes #132
2022-01-03 13:36:49 +02:00
George Kiagiadakis
69bd1e51ce default-routes: make the default volume configurable 2021-11-30 19:30:25 +02:00
Wim Taymans
703c35cfd4 access-config: add restricted access permissions
When a pulse client connects with TCP, it is given the 'restricted'
access policy. Assign 'rx' permissions for those clients instead of
blocking forever.

See pipewire#1863
2021-11-29 09:25:18 +01:00
Ashok Sidipotu
784c405c31 wp: support loading optional modules
-some modules will not be available during runtime, due to
  external dependencies.
 -these modules can now be marked optional.
 -loading of these optional modules will be attempted and if
  they are not available, wp will recover and will not be
  terminated.
2021-10-14 06:27:53 +00:00
George Kiagiadakis
e76c67c45c policy: refactor/improve policy-node & session items to fix linking to monitors
* populate most session item properties from create-item.lua to keep
  things more compact and readable
* use a standard naming scheme for the session item properties
* use session item properties instead of node properties in policy-node.lua
* improve policy-node's performance by converting the properties dictionary
  less times for each session item
* refactor some policy logic and make things slighly more readable
* change the accepted values for 'context' in wp_si_linkable_get_ports();
  use "input" and "output" to keep things clear, because the previous use
  of NULL and "reverse" were implying that a node has only one "standard"
  direction, but this is complicated for sinks w/ monitors and duplex nodes
* allow using monitors (which are Audio/Sink nodes in fact) as sources
* treat Audio/Duplex nodes as sinks, like p-m-s does
* respect the "stream.capture.sink" property of streams

Fixes #66
2021-10-08 00:26:41 +03:00
Wim Taymans
7907d39aff scripts: add libcamera monitor 2021-10-06 10:22:36 +02:00
Wim Taymans
a13308bac7 implement route-settings metadata and notification volume
Make a module that creates a route-settings metadata and provides
some helper functions to parse the json fields.

Load the route-settings module in the policy.

Move the Notification settings to the metadata. Listen for metadata
updates and update our state table.

Fixes #51
2021-10-05 15:47:46 +00:00
George Kiagiadakis
2a99d6a835 default-access: grant full permissions to flatpak "Manager" apps
Fixes: #59
2021-10-04 09:20:53 +03:00
Pauli Virtanen
e9b7d02b22 config: bluez: update to match current bluez5 spa module
Update 50-bluez-config.lua from media-session.d/bluez-monitor.conf
2021-09-29 19:18:18 +03:00
George Kiagiadakis
a253aa4c49 modules: implement logind module and integrate with bluez monitor
This copies the logic of media-session's logind module and allows
the bluez monitor to be active in only one user session at a time.
This is especially useful to avoid interference between the gdm
session and the actual user session, which momentarily both have
wireplumber running when logging in/out.

Fixes #54
2021-09-27 18:30:32 +03:00
Björn Daase
f769e2ea36 50-alsa-config.lua: Add missing commas
Be consistent with all other files and add commas at the end of sections.
2021-09-10 08:53:34 +00:00
George Kiagiadakis
8949e98d1f remove wpipc
This component has been split out to form a separate project,
moved to https://git.automotivelinux.org/src/pipewire-ic-ipc/
2021-08-19 16:53:28 +03:00
Julian Bouzas
8c9da58d76 src: scripts: add alsa-mini.lua monitor 2021-08-10 11:50:51 +03:00
Julian Bouzas
907a67fcb1 modules: add new API module to monitor files 2021-08-10 11:50:51 +03:00
Arun Raghavan
e1c40a567c scripts: Add an intended-roles policy script
This routes streams of a given media.role to devices which specify that
role in device.intended-roles.
2021-06-20 18:45:28 -04:00
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