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
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
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
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
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
7bd7476426
media-session: use ACP alsa devices by default
2020-07-20 17:34:28 +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
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
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
50574b9523
flatpak: don't give write access for flatpaks
2020-07-16 13:34:06 +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
02be602f97
policy-node: route to the default sink/source when found
2020-07-15 15:53:54 +02:00
Wim Taymans
61e2d5cb54
policy-node: track default sink/source and move streams
...
Keep track of the default source and sink and move all streams linked
to the old default to the new default when it changes.
2020-07-15 14:26:16 +02:00
Wim Taymans
b1293d9f6e
policy-node: only track stream peers
...
Only track the peer of streams. We only care about where we linked
this stream to. There is only one target per stream but the device
we link to can have many peer streams.
2020-07-15 14:22:56 +02:00
Wim Taymans
5f2c4c70ec
media-session: expose metadata
2020-07-15 14:21:35 +02:00
Wim Taymans
2d5a404244
media-session: add method to remove links
2020-07-15 14:20:46 +02:00
Wim Taymans
035fb26d71
media-session: keep track of links
...
Also keep track of links when not tracked in the endpoint link.
2020-07-15 14:19:25 +02:00
Wim Taymans
5194c8a92f
media-session: start metadata first
2020-07-15 14:17:00 +02:00
Wim Taymans
69cfc8e08c
policy-node: use the DONT_RECONNECT flag with a target
...
When a target is given and it doesn't exist, look at the
DONT_RECONNECT flag and error when we are not allowed to connect
to something else.
2020-07-09 13:03:02 +02:00
Wim Taymans
8e6b276d51
alsa-monitor: parse device events
...
Parse the device events and set the Props from the ObjectConfig
as the Props param on the node.
This propagates the software volume from the device to the
node.
2020-07-06 17:26:01 +02:00
Wim Taymans
0bbc25e3e2
media-session: add option to enable acp device
2020-07-06 12:51:38 +02:00
Wim Taymans
1612f5e4d2
alsa-acp: Add libacp based card device
...
libacp is a port and wrapper around the pulseaudio card profile code.
It uses a set of templates for construct a card profile and mixer port
settings. It also has support for UCM when available for the hardware.
2020-07-06 12:20:09 +02:00
Wim Taymans
c28ca320d1
Fix bluez node destroy
...
We create a ClientNode but monitor the resulting Node.
Destroy the object when removing a node.
2020-07-03 16:28:10 +02:00
Wim Taymans
471c1a071c
policy: improve debug
2020-07-03 16:25:28 +02:00
Wim Taymans
82a83afd6b
policy: activate Unknown stream media type
...
And try to link them using the media.type property
2020-07-02 15:39:11 +02:00
Wim Taymans
ed31ca30cd
media-session: improve cleanup of objects
...
Don't try to use the proxy destroy event to destroy the objects.
It is not called automatically anymore, only when we call
pw_proxy_destroy() ourselves.
Destroy the proxy objects when we destroy the session managed
object instead, either when the global is removed or when we
explicitly call _destroy()
Add an object free signal to clean up final resources after the
proxies have been destroyed, like closing libraries.
Track and destroy our link proxies.
2020-06-04 17:41:01 +02:00
Wim Taymans
704d504a44
media-session: mark enabled modules with *
2020-06-04 10:51:03 +02:00
Wim Taymans
0b47b47b6c
libcamera: disable by default
...
Until it is at least more comon available in distros.
2020-06-04 10:50:54 +02:00
raghu447
39974903df
Rebasing
2020-06-04 10:36:39 +02:00
raghu447
d93870fdeb
Removed redundant logs
2020-06-04 10:36:39 +02:00
raghu447
af263187ea
Reverting redundant changes
2020-06-04 10:36:39 +02:00
raghu447
9024cc4444
Integrating libcamera
2020-06-04 10:36:39 +02:00
Wim Taymans
e4e03fa7dd
media-session: always activate DSP nodes
...
They don't need to be activated with a profile.
2020-06-03 12:03:20 +02:00
Wim Taymans
fda9e4d5c8
call _deinit(() in session manager exit
2020-06-02 17:37:45 +02:00
Wim Taymans
34dada9c4c
media-session: install ctrl-C handler
...
..so that we can clean up.
2020-06-01 18:14:53 +02:00
Wim Taymans
bf483242eb
alsa-monitor: don't use NULL device reserve
2020-05-28 18:03:27 +02:00
Wim Taymans
d31c057b42
Remove some useless checks
2020-05-20 15:24:25 +02:00
Wim Taymans
c2028a1695
Fix some leaks in error cases
2020-05-20 15:24:25 +02:00
Wim Taymans
eb93f259e0
avoid some useless assignments
2020-05-20 15:24:25 +02:00
Wim Taymans
a19bab4b16
avoid following NULL pointers
2020-05-20 15:24:25 +02:00