Wim Taymans
c43026d93e
don't handle EINTR and EAGAIN as the same
...
EAGAIN means a non-blocking operation would block and we should not
try again right away but leave the loop and wait instead.
See #358
2020-11-02 16:43:56 +01:00
Wim Taymans
e094640c7b
handle EINTR and EAGAIN
...
Just do the call again instead of failing or logging an error.
Fixes #358
2020-11-02 14:51:07 +01:00
Wim Taymans
f953efdefb
media-session: improve enabled/disabled options
...
Always use a default set of options and have enable/disable
add/remove options to/from it. Previously to enable just one option
you had to list all the other default enabled options as well.
2020-10-30 09:54:18 +01:00
Wim Taymans
a2c70781a3
media-session: use rtkit for session manager data thread
2020-10-21 16:36:37 +02:00
Wim Taymans
3733a5e219
media-session: save last target_node
...
Keep a per node entry of the saved target node and use this when
there is no other target node.
When explicitly moving a stream, save the new target node.
2020-10-14 12:35:27 +02:00
Wim Taymans
f0102fd490
pulse: move pulse protocol to module
2020-10-08 18:06:11 +02:00
Wim Taymans
d180b8d927
beginnings of pulse protocol
2020-10-08 18:06:11 +02:00
Wim Taymans
30dfe16c52
media-session: destroy errored links
...
When a link we create is in error, destroy it.
2020-09-14 20:19:44 +02:00
Sanchayan Maity
f4a949dc3a
examples: media-session: Conform to XDG base directory spec
...
Currently pipewire-media-session uses ~/.pipewire-media-session for
storing configuration. Use home directory as specified by XDG base
directory specification viz. XDG_CONFIG_HOME and fall back to using
a default of $HOME/.config as per the spec if XDG_CONFIG_HOME is not
set or empty. Also in addition, all cases are now handled the same
and always end up using "%s/.config/pipewire-media-session".
If neither XDG_CONFIG_HOME or HOME are set, fall back to the earlier
approach.
Fixes: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/271
Signed-off-by: Sanchayan Maity <sanchayan@asymptotic.io>
Fixes !298
2020-09-09 17:51:30 +02:00
Wim Taymans
b6e78f5577
improve debug
2020-09-03 11:14:58 +02:00
Wim Taymans
3174e8b69e
media-session: fix spelling mistake
2020-08-17 19:30:26 +02:00
Wim Taymans
688a1ab082
media-session: add module to restore stream settings
2020-08-17 17:55:20 +02:00
Wim Taymans
d337abf690
media-session: escape and unescape keys when saving
...
So that we can allow space in the keys.
2020-08-17 12:12:11 +02:00
Wim Taymans
48a7e83fab
media-session: add module to restore route volumes
2020-08-17 11:17:21 +02:00
Wim Taymans
05416b497c
media-session: improve property save/load
...
Allow spaces in the property values.
2020-08-17 11:10:16 +02:00
Wim Taymans
4ad6c627a0
media-session: add module to restore card profile
...
Save card profiles to file and restore.
2020-08-13 17:01:47 +02:00
Wim Taymans
efdeceddab
media-session: Add module to load/save default nodes
...
Nodes are stored with their (unique) name and restored with their
ID on the metadata.
2020-08-13 11:33:48 +02:00
Wim Taymans
8a4dd83883
media-session: add API to load/store state
2020-08-13 11:33:48 +02:00
Wim Taymans
a0777d7806
policy-node: only set peer when we actually linked something
2020-08-07 10:50:30 +02:00
Wim Taymans
7cdef8aa32
media-session: improve debug
2020-08-06 17:11:35 +02:00
Wim Taymans
f2cc0e6723
media-session: add some debug for enum-param
2020-07-31 15:21:39 +02:00
Wim Taymans
5bdd65e066
device: pass original seq in async reply
...
When we get an async reply from the implementer, use the original
seq from the caller in the reply.
Fixes !287
2020-07-31 15:19:45 +02:00
Wim Taymans
5e51cbe48e
media-session: improve param enumeration
...
Don't use subscribe, enum is more manageable.
Use user data field to check for changes.
Only enumerate readable params.
Enum all node params.
2020-07-31 13:59:25 +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
34fc7ff529
media-session: link unknown and mono streams to something
2020-07-24 17:39:29 +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
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
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
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
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
0bbc25e3e2
media-session: add option to enable acp device
2020-07-06 12:51:38 +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
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
9024cc4444
Integrating libcamera
2020-06-04 10:36:39 +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
d31c057b42
Remove some useless checks
2020-05-20 15:24:25 +02:00
Wim Taymans
181ca167e7
media-session: make sure to only remove hooks once
2020-05-08 16:18:38 +02:00
Wim Taymans
13fd6be747
media-session: only subscribe to readable params
2020-05-07 20:58:53 +02:00
Wim Taymans
a5b0553328
Fix some -Wenum-conversion errors
...
Make pw_direction and spa_direction the same
Explicitly cast some enums or use the right enums
2020-04-04 20:03:08 +02:00