Commit graph

631 commits

Author SHA1 Message Date
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
583e450efd example: add more debug 2020-07-15 14:14:23 +02:00
Wim Taymans
be7ff66d0b examples: clean up proxy 2020-07-13 13:12:20 +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
93e04aebce example: add example of renegotiation
Add an example of renegotiating a producer and consumer format.
2020-06-19 12:17:47 +02:00
Wim Taymans
0dad6c5852 impl-link: start of renegotiation
Handle an EnumFormat param change on the link ports and start
the renegotiation process.
2020-06-19 12:14:46 +02:00
Wim Taymans
8f8083b963 examples: add signal handlers to quit nicely 2020-06-18 15:47:50 +02:00
Wim Taymans
8ee91bd738 examples: don't hardcode dimensions for crop info 2020-06-18 11:43:34 +02:00
Simon McVittie
b852b58f82 Optionally install examples and tests
This makes it easier to test PipeWire in its "as-installed" state,
for example in an OS distribution.

The .test metadata files in ${datadir}/installed-tests/${package} are
a convention taken from GNOME's installed-tests initiative, allowing a
generic test-runner like gnome-desktop-testing to discover and run tests
in an automatic way.

The installation path ${libexecdir}/installed-tests/${package} is also
a convention borrowed from GNOME's installed-tests initiative.

In addition to the automated tests, I've installed example executables
in the same place, for manual testing. They could be separated into
a different directory if desired, but they seem like they have more
similarities with the automated tests than differences: both are there
to test that PipeWire works correctly, and neither should be relied on
for production use. Some examples are installed in deeper subdirectories
to avoid name clashes.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-06-16 17:58:02 +00:00
Wim Taymans
f278ded975 example: use thread loop in example 2020-06-08 17:14:36 +02:00
Wim Taymans
ade5bcb58d local-v4l2: fix leaks 2020-06-05 12:43:26 +02:00
Wim Taymans
cecbf3191b example: use bound event to find node id 2020-06-05 12:43:26 +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
33cd2495b8 examples: add signal handler for clean exit 2020-06-04 10:10:08 +02:00
Wim Taymans
3060c57ba6 examples: add cleanup 2020-06-03 16:51:17 +02:00
Wim Taymans
6b313de2ae examples: catch signal and clean up 2020-06-03 15:26:54 +02:00
Wim Taymans
8d0913c9d8 examples: add audio DSP source 2020-06-03 12:06:44 +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