Commit graph

2202 commits

Author SHA1 Message Date
Wim Taymans
a96fcf5c19 policy-node: rework node configuration
Add a configure stage to the node where the PortConfig is
determined.
Wait until we link a stream and then configure the node with the
portconfig of the peer.
Configure devices with the their best portconfig by enumerating
the formats.
2020-07-28 10:21:01 +02:00
Wim Taymans
6184c0fe32 keys: add stream to avoid remixing channels 2020-07-28 10:16:04 +02:00
Wim Taymans
e35586cd15 media-session: link MONO/UNKNOWN channels only once
Try to only link the MONO and UNKNOWN input ports once
2020-07-27 17:41:52 +02:00
Wim Taymans
4a8afe389c policy-node: boost priority on default device
When we find a default device, boost the priority so that it
remains the target device even when a device with higher priority
is scanned later.

Fixes issue where default device was not selected because a higher
priority device was encountered after it.
2020-07-27 10:16:17 +02:00
Wim Taymans
34fc7ff529 media-session: link unknown and mono streams to something 2020-07-24 17:39:29 +02:00
Wim Taymans
3586f918c5 main: make the default remote if nothing is specified 2020-07-24 17:23:00 +02:00
Wim Taymans
6530c694c9 protocol: debug server we connect to 2020-07-23 20:12:25 +02:00
Wim Taymans
141238d88b core: always use explicitly configured properties first
First use the configured properties, then use the env variables.
Make the daemon use the env variable by default.

This makes it possible to start servers with PIPEWIRE_CORE env variable
names but still override with the command option.

Makes it possible to make apps connect to PIPEWIRE_REMOTE env by
default and allows you to override with the command option.
2020-07-23 13:40:02 +02:00
Wim Taymans
266e1301d2 use id to store default sink/source
This is easier to handle in general and we should not use the name
as a unique id. If the session manager wants to save things, it can
use whatever fields it wants from the object to create a unique
persistent name.
2020-07-23 11:59:13 +02:00
Wim Taymans
82dab3ab4e context: avoid compiler warning 2020-07-22 18:53:18 +02:00
Wim Taymans
f20aa405cb pw-cat: fallback to default channel map in record
If not otherwise specified, use the default channelmap when recording.
2020-07-22 17:26:14 +02:00
Wim Taymans
193b9afdff media-session: always prefer a port match
First find a port match and then increase the score when the port
was unconnected.
2020-07-22 17:24:58 +02:00
Wim Taymans
201d762b2a policy-node: refactor configure_node 2020-07-22 16:53:02 +02:00
Wim Taymans
59e69d8329 impl-port: unlink as part of destroy 2020-07-22 16:49:29 +02:00
Wim Taymans
553337df60 remote-node: handle remove port 2020-07-22 16:20:43 +02:00
Wim Taymans
03c2185efe media-session: rework linking nodes
Rework how nodes are linked. score each port pair and link the
highest score taking into account the type, direction, channels,
and number of linked ports.
2020-07-22 15:05:45 +02:00
Wim Taymans
5f9a8a82ab media-session: improve find_object
Make it possible to search for a type
2020-07-22 14:14:02 +02:00
Wim Taymans
f6753eefc3 media-session: keep more info about ports
Parse the DSP type and the channel and keep it around
2020-07-22 11:27:23 +02:00
Wim Taymans
0ca4a5621c port: copy AUDIO_CHANNEL key as well 2020-07-22 11:26:47 +02:00
Wim Taymans
022705d813 pw-cat: fix leak in channel parsing 2020-07-22 11:26:06 +02:00
Wim Taymans
2bb1d88fbe keys: let env variables overwrite the keys 2020-07-22 11:25:19 +02:00
Wim Taymans
2955182e4e use spa_debug_type_short_name() when we can 2020-07-22 11:22:11 +02:00
Wim Taymans
3fe5e146c2 thread-loop: fix comment 2020-07-21 11:02:11 +02:00
Wim Taymans
32ccd24469 node: improve error message 2020-07-21 11:02:01 +02:00
Wim Taymans
7bd7476426 media-session: use ACP alsa devices by default 2020-07-20 17:34:28 +02:00
Wim Taymans
13492fd282 jack: include application name in client name 2020-07-20 16:54:38 +02:00
Wim Taymans
2909786eb2 stream: put target string in node.target 2020-07-20 16:27:50 +02:00
Wim Taymans
8c4b594b50 policy-node: don't move to the current target 2020-07-20 14:46:44 +02:00
Wim Taymans
7915bf5778 policy-node: implement move node
Move nodes to a new target when the metadata changes.
2020-07-20 14:40:50 +02:00
Wim Taymans
dab0644d76 port: debug param changes some more 2020-07-20 10:28:34 +02:00
Wim Taymans
15a4019e45 client: refuse update of pipewire.* keys from client
Only the server and modules can update the properties with
pipewire.* keys.
2020-07-17 16:56:37 +02:00
Wim Taymans
07cc07597c access: always put access in property
Improve debug
2020-07-17 16:47:14 +02:00
Wim Taymans
cd7763c814 access: use key to access property 2020-07-17 16:46:26 +02:00
Wim Taymans
119ef5e376 session-manager: move portal check back to pipewire
Enable the portal check in pipewire.
Only do permission store queries in the session-manager for portal
managed apps.
2020-07-17 14:14:26 +02:00
Wim Taymans
5731447357 add portal module again
This access module now only checks if the connection is comming
from the portal and tags the ACCESS property with portal in that
case. It will no longer do permission store checks, that's for
the session manager.
2020-07-17 14:12:10 +02:00
Wim Taymans
9b00462561 client: also copy ACCESS key to global 2020-07-17 14:09:56 +02:00
Wim Taymans
89b189d190 access: don't check access if already set
If we already have an access property, leave the client as is.
2020-07-17 13:23:50 +02:00
Wim Taymans
4d4904187b client: update busy status after check_access
So that we block clients without permissions
2020-07-17 13:22:02 +02:00
Wim Taymans
f2c1ab6069 access: make access property configurable
Just set the value of access.force into pipewire.access so that
the session manager can deal with it.
2020-07-17 09:59:49 +02:00
Wim Taymans
33d7b6ea43 Remove old portal module from build 2020-07-16 17:56:21 +02:00
Wim Taymans
a295901329 Move portal module to session manager 2020-07-16 17:54:18 +02:00
Wim Taymans
d720724d48 media-session: add method to iterate objects 2020-07-16 17:48:29 +02:00
Wim Taymans
0e21464da2 media-session: also make objects for other types 2020-07-16 17:48:00 +02:00
Wim Taymans
7d56b78bce remove some unused fields 2020-07-16 17:47:30 +02:00
Wim Taymans
3eb37320c9 pw-cli: improve permission debug 2020-07-16 17:46:47 +02:00
Wim Taymans
50574b9523 flatpak: don't give write access for flatpaks 2020-07-16 13:34:06 +02:00
Wim Taymans
5f9bb13237 client: use core permission to pause/resume a client
Make it so that the permission of the core determines if a client
can continue or not. When the core is readable, the client is
allowed to continue otherwise it is paused.
2020-07-16 13:25:39 +02:00
Wim Taymans
cbc579825c media-session: add flatpak module
Add a module that gives full access to flatpak apps. Later we should
do something more restrictive.
2020-07-16 12:52:00 +02:00
Wim Taymans
9caccb6125 pw-cli: quit when we quit 2020-07-16 12:49:17 +02:00
Wim Taymans
5afdd507c3 access: document and improve arguments
Add option to force flatpak security
When a check is inconclusive, go to the next check instead.
2020-07-16 11:45:44 +02:00