A rescan can trigger a new rescan and with a blocking rountrip this
can recursively never end. Catch a rescan while rescanning and queue
it for when we end the current scan.
Fixes#364
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.
Add a property for capture stream to signal that they would like
to capture the output (monitor) of the default sink instead of the
default source.
Check the desired device we would like to capture from and handle
the capture from the sink by monitoring the monitor source.
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.
This way we only expose the client after we have all the properties.
Also add a new CLIENT_ACCESS property that contains the desired
client access mode.
For now, let's lower our priority in device reservation below that of
PulseAudio (which currently uses a priority of 0), so that it takes
priority while contending for the same device.
Make sure the default node as the highest priority.
Fixes a problem with default nodes not being selected when their
priority happens to be too low (bluetooth devices)
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
When we are switching to a target node, force a downmix to the
target channel layout if we can. Don't try to upmix for now and
don't try to mix when the dont-mix flag is set.