Commit graph

1471 commits

Author SHA1 Message Date
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
George Kiagiadakis
cb4fa024b2 meson: replace join_paths() with operator / 2021-05-06 12:15:52 +03:00
George Kiagiadakis
d4b230b994 meson: remove audiofade pipewire branch check
We no longer have the audiofade-related code
2021-05-06 12:04:22 +03:00
George Kiagiadakis
5efb46a3e2 meson: make wpipc optional and disabled by default
This is only intended to be used with specific embedded
applications. There is no good reason to use it on
a standard desktop environment.
2021-05-06 12:00:56 +03:00
George Kiagiadakis
272022b8ea policy-node: accept node names or paths in a stream's node.target property 2021-05-05 18:26:16 +03:00
Julian Bouzas
48b4f00d8c policy-endpoint-client-links.lua: consider 'suspend.playback' metadata 2021-05-04 19:52:14 -04:00
Julian Bouzas
207268e189 modules: add ipc module
Handles SUSPEND and RESUME wpipc requests in order to set metadata that will
eventually unlink or re-link endpoints.
2021-05-04 19:52:09 -04:00
Julian Bouzas
795df4b693 lib: add wpipc library
Simple library that uses sockets for inter-process communication. It provides an
API to create server and client objects. Users can add custom handlers in the
server, and clients can send requests for those custom handlers.
2021-05-04 18:55:10 -04:00