Julian Bouzas
b3b10db529
policy: don't link endpoints on startup
...
Sometimes the default device node might not exist when reevaluating endpoints
for the first time on startup, so the policy would link endpoints to another
device node. Then, the default device node appears and the policy moves the
endpoints to the default device node while the previous link has not finish its
activation yet. This race condition can cause endpoint links to fail when being
activated. Delaying the reevaluation of endpoint links until the first client
link is created avoids this issue.
2021-05-20 11:18:19 -04:00
Julian Bouzas
5756d8899d
m-default-nodes: check if node is valid before returning bound id
2021-05-20 11:18:19 -04:00
Julian Bouzas
0ff0ef77f2
policy: reevaluate all linkables if one linkable was removed
...
Allows relinking client nodes to other devices if the current device has been
removed. This allows audio to keep playing in a different device if a bluetooth
device is disconnected.
2021-05-20 11:18:15 -04:00
Julian Bouzas
7bc59afd81
m-default-routes: log error message when failed to get current routes
2021-05-20 10:51:49 -04:00
Julian Bouzas
2218b5613e
m-default-profile: log error message when failed to get current profile
2021-05-20 10:51:49 -04:00
Julian Bouzas
fc41af5c98
m-mixer-api: make sure the enum param iterator is valid
...
Some audio nodes such as null-audio-sink nodes don't support Props or Route enum
params.
2021-05-19 18:26:17 -04:00
Julian Bouzas
188a10e0e7
pipewire-object-mixin: make sure enum params task is only triggered once
...
Always remove the task from the list before returning to make sure it will
always be triggered once.
2021-05-19 10:26:17 -04:00
Julian Bouzas
e14bb5fa2f
modules: steal the format_task before returning it
...
Fixes possible race condition when setting adapter ports format in the callback
of a previous adapter ports format call.
2021-05-19 07:42:18 -04:00
Frédéric Danis
20a2f5a232
systemd: Add conflicts with pipewire-media-session
...
This allows to run WirePlumber preferably when pipewire-media-session is
also installed.
2021-05-19 11:34:57 +02:00
Julian Bouzas
7e23f313b3
proxy: don't accept NULL pw_proxy in set_pw_proxy API
2021-05-18 10:01:13 -04:00
Julian Bouzas
dc693ee0d0
m-device-activation: use sync API to enum available profiles
2021-05-18 10:00:56 -04:00
Julian Bouzas
e1917239f3
m-default-routes: use sync API to enum available routes
2021-05-18 10:00:24 -04:00
Julian Bouzas
c3338458e5
m-default-profile: use sync API to enum available profiles
2021-05-18 09:59:18 -04:00
Julian Bouzas
8fdd99d956
global-proxy: delay object creation until bound feature is requested
...
Allows handling errors if creation fails
2021-05-18 09:24:33 -04:00
Julian Bouzas
b8030e138d
alsa-monitor: activate BOUND feature in JACK device
2021-05-17 15:23:24 -04:00
George Kiagiadakis
7f83bcfc25
tests: proxy: add a test for enum_params errors
2021-05-13 08:52:22 -04:00
George Kiagiadakis
63239bdfda
proxy: relax proxy error warning messages
...
These are also printed by libpipewire on the DEBUG level
and they are really not that harmful, so we don't need to spam
users with "failed" messages and alarm them
2021-05-13 08:52:22 -04:00
George Kiagiadakis
7ff2bbc0eb
pw-object-mixin: watch for proxy errors during enum_params
2021-05-13 08:52:22 -04:00
George Kiagiadakis
0b558eca74
proxy: add a "bind" watch, to watch for proxy errors while binding/exporting
...
Add a unit test for this. Create a link with invalid nodes and expect
the activation transition to error out.
2021-05-13 08:52:22 -04:00
George Kiagiadakis
7cf67a821a
proxy: add error signal
2021-05-13 08:52:22 -04:00
Julian Bouzas
f0166d6b3c
policy: fix removing of item links when linkable is removed
2021-05-13 08:46:02 -04:00
George Kiagiadakis
ba6404f7d6
tests: spa-pod: fix int64 constant to work on all architectures
...
the "long" type in spa-pod is int64_t, so we need to make sure we
pass a 64-bit number there, otherwise the va_args is going to crash
on some architectures while reading arguments off the stack
2021-05-13 09:15:45 +03:00
Julian Bouzas
58db9e1fad
global-proxy: destroy the global when proxy is destroyed
2021-05-12 14:04:34 -04:00
Julian Bouzas
d8ed6e4376
global-proxy: inherit from WpProxy when declaring class
2021-05-12 13:33:08 -04:00
Julian Bouzas
419af5a228
spa-pod: respect the SPA size for long and int APIs
...
Fixes some issues for 32bit architectures
2021-05-12 11:53:31 -04:00
Julian Bouzas
e1faf3f095
si-standard-link: configure the format in WpSiAdapters before linking
2021-05-12 10:37:18 -04:00
Julian Bouzas
9cf1f94045
modules: implement WpSiAdapter in si-audio-adapter and si-audio-endpoint
2021-05-12 10:37:15 -04:00
Julian Bouzas
51964d30cf
si-interfaces: add WpSiAdapter interface to set and get session item fortmat
2021-05-12 10:36:31 -04:00
Julian Bouzas
a37b4bf20d
session-item: add _get_property API
2021-05-12 10:36:31 -04:00
Julian Bouzas
05aba22c5a
si-audio-adapter: remove unneeded 'preferred.n.channels' property
2021-05-12 10:36:24 -04:00
Julian Bouzas
47ae4f28a3
si-standard-link: make sure create_links creates at least 1 link
2021-05-11 10:56:50 -04:00
Julian Bouzas
888667d784
modules: remove role and priority properties from si-audio-adapter and si-node
2021-05-11 10:56:50 -04:00
Julian Bouzas
d68636f9b3
si-interfaces: rename WpSiPortInfo to WpSiLinkable
2021-05-11 10:56:44 -04:00
Julian Bouzas
ee121e3093
scripts: cleaned and improved policy scripts
...
The policy scripts can handle now client nodes that want to be linked with other
client nodes. This is needed for nodes created by the Pulse Audio Volume Control
to monitor audio comming from other application client nodes.
2021-05-10 15:24:40 -04:00
Julian Bouzas
b46a907df4
create-item.lua: always enable monitor ports by default
2021-05-10 15:19:25 -04:00
Julian Bouzas
3f60716f30
modules: remove 'monitor' port context from si-audio-adapter and si-node
2021-05-10 15:19:25 -04:00
George Kiagiadakis
ecef960b78
release 0.3.95
2021-05-07 13:34:01 +03:00
George Kiagiadakis
ed6184a773
meson: depend on pipewire 0.3.26
...
Not really a hard requirement, wrt libpipewire API, but it's
hard to keep runtime compatibility with earlier versions when
it comes to configuration options
2021-05-07 12:14:43 +03:00
George Kiagiadakis
c0099a99d6
config: bluez: update to match media-session's bluez-monitor.conf
2021-05-07 12:10:31 +03:00
George Kiagiadakis
fc5aa7db1f
lua: rename Plugin() to Plugin.find()
...
Plugin() is confusing because it's not a constructor, it just finds
an existing instance of a plugin object. All other camel-case
functions are constructors in the current lua API.
2021-05-07 11:53:47 +03:00
Julian Bouzas
e4d8f2a2df
session-item: remove undefined API
2021-05-06 13:41:42 -04:00
George Kiagiadakis
a93dbf0845
wp: remove WpSessionBin
...
This is no longer used and likely not very useful now that we have
a simpler design.
We can re-add it in the future if necessary, but let's keep it out
of the 0.4 release.
2021-05-06 16:04:39 +03:00
George Kiagiadakis
257d5cba47
wp: rename debug.{h,c} to log.{h,c}
...
Also rename the intermediate lua api table WpDebug -> WpLog
Keeps things more consistent with the function names (wp_log*),
with the lua api (Log.*) and with pipewire using log.{h,c} as well.
After all, these functions are for logging...
2021-05-06 15:50:07 +03:00
George Kiagiadakis
157d4d95c9
config: disable ipc module by default and move it to the main instance
...
This is not part of the policy, it's something standalone that writes metadata
Needs to be disabled by default, since it's not built by default now
2021-05-06 15:19:55 +03:00
George Kiagiadakis
86ffac19e5
wpipc: place sockets in the same runtime directory as pipewire
2021-05-06 14:15:24 +03:00
George Kiagiadakis
a555d72cff
m-ipc: cleanup server using g_clear_pointer() for consistency and safety
2021-05-06 13:33:48 +03:00
George Kiagiadakis
cf0226c29b
wpipc: remove socket files after shutdown of the server
2021-05-06 13:32:38 +03:00
George Kiagiadakis
c35a58ca7b
meson: generate and install pkg-config file for wpipc
2021-05-06 13:06:49 +03:00
George Kiagiadakis
226ae5772e
meson: find threads_dep early and also use it in the wpipc-client
2021-05-06 13:00:55 +03:00
George Kiagiadakis
a2477d2d2c
wpipc: use proper api & so versions
2021-05-06 12:34:49 +03:00