George Kiagiadakis
ac295b10e3
m-config-endpoint: deactivate gracefully even if not activated
...
This may happen if the plugins were loaded but not activated
due to some parse error in wireplumber.conf
2020-06-29 13:05:44 +03:00
George Kiagiadakis
826e5e3c46
si-convert: use the clock rate defined in pipewire.conf
2020-06-29 13:05:44 +03:00
George Kiagiadakis
046040a323
meson: bump version to 0.2.96
2020-06-29 13:05:44 +03:00
George Kiagiadakis
75aac84f40
NEWS: release 0.2.96
2020-06-19 12:51:27 +03:00
George Kiagiadakis
83c7655267
docs: update configuration.md
2020-06-19 12:09:09 +03:00
George Kiagiadakis
374977f954
m-monitor: reduce string copies and leaks in module_init
2020-06-19 10:30:12 +03:00
George Kiagiadakis
fa6c1a74cb
docs: fix broken link
2020-06-19 10:29:07 +03:00
George Kiagiadakis
30affd6b55
m-config-endpoint: also remove monitors when a node disappears
...
previously, we would only remove the endpoint associated with
the node, but not the monitor endpoint...
to implement that, we now store the node's associated session items
in the node's qdata instead of a local hash table, so that we
can store an arbitrary ammount of session items per node
2020-06-18 19:29:35 +03:00
George Kiagiadakis
697226f306
session-bin: call parent's reset() in reset()
...
otherwise the parent never un-exports or de-activates itself
and we leak a bunch of stuff
2020-06-18 19:28:03 +03:00
George Kiagiadakis
879c7d2ab9
si-softdsp-endpoint: use the transition's source_object instead of data in callbacks
...
there is no need to add self in the transition's data,
it's already in source_object
2020-06-18 19:26:30 +03:00
George Kiagiadakis
3966e046ae
docs: add manual test instructions
2020-06-18 19:21:21 +03:00
George Kiagiadakis
fb3d5bea5c
si-monitor-endpoint: add "endpoint.monitor" property on monitor endpoints
2020-06-17 14:54:20 +03:00
George Kiagiadakis
a1a718f8a1
config-endpoint: create monitors after exporting
...
This fixes a failure to activate the monitors if we are using
si-adapter directly instead of si-audio-softdsp-endpoint
2020-06-17 14:47:54 +03:00
George Kiagiadakis
aabf6beda7
si-convert: use passive links
...
Requires PipeWire < 0.3.3 or > 0.3.6 to actually work
2020-06-17 14:44:29 +03:00
George Kiagiadakis
244fa28d17
si-standard-link: allow linking MONO capture clients
...
In case we have a multi-channel capture device and a mono client,
treat the MONO port as UNKNOWN and let it link with the first
port available on the device
Easy to test with arecord, which by default captures in MONO
2020-06-17 12:55:12 +03:00
George Kiagiadakis
816fcaf43b
meson: relax GLib dependency to 2.58
2020-06-16 19:20:13 +03:00
George Kiagiadakis
d471ba3d9c
object-interest: don't use G_GNUC_FALLTRHOUGH
...
it requires GLib 2.60 and it's not worth it
2020-06-16 19:18:20 +03:00
George Kiagiadakis
1563eeeae6
object-interest: initialize GValue passed to g_object_get_property
...
g_object_get_property did not support uninitialized GValues prior
to GLib 2.60, and it's not worth requiring 2.60 for this reason
Fixes #11
2020-06-16 19:16:04 +03:00
George Kiagiadakis
707518937a
tests/config-policy: add "node.autoconnect" on nodes to pass the test
2020-06-16 19:15:09 +03:00
George Kiagiadakis
881b45dc4a
policy: accept endpoint IDs in node.target
...
this allows slightly easier testing while every client uses node.target
but it's easier to find the endpoint id than the node id
through `wpctl status`
2020-06-16 19:10:37 +03:00
George Kiagiadakis
2719169810
policy: respect endpoint.autoconnect and don't link if it's false
2020-06-16 17:39:44 +03:00
George Kiagiadakis
d50e32fc47
si-adapter/simple-node-endpoint: propagate node.autoconnect as endpoint.autoconnect
2020-06-16 17:39:25 +03:00
George Kiagiadakis
66f2e535cf
config: add .node config files to create audiotestsrc / videotestsrc
...
and add the non-disabled filenames in .gitignore so that I can maintain
symlinks to enable them without commiting them
2020-06-16 16:06:20 +03:00
George Kiagiadakis
cf799dba16
config: remove automotive configuration
...
This is out-of-date and we don't need it in fact... the default
configuration can serve as a good starting point for any custom embedded
use case.
2020-06-16 15:47:09 +03:00
George Kiagiadakis
e81dc5782a
config: add endpoint config files to increase priority on USB audio devices
...
if there is a usb device plugged, we can assume it's meant to be used
instead of the built-in audio
2020-06-16 15:44:39 +03:00
George Kiagiadakis
b3e53daf26
config: add .endpoint config file for audiotestsrc
2020-06-16 13:32:39 +03:00
George Kiagiadakis
d07f3df445
m-config-endpoint: allow specifying preferred-n-channels in endpoint.config
2020-06-16 13:31:05 +03:00
George Kiagiadakis
82197118f7
config: increase bluez & jack endpoint priorities
...
jack has the highest prio because if it's present, we assume the
user wants to use jack to route everything
bluez has higher prio than alsa because if it's present, we assume
the user wants to use the bluetooth device
2020-06-16 13:13:05 +03:00
George Kiagiadakis
f2d8d220eb
config: rename files to have gaps in their load priorities
2020-06-16 13:08:58 +03:00
Julian Bouzas
322094565f
properties: all properties from other must be included in self for the match to be valid
2020-06-16 12:56:04 +03:00
George Kiagiadakis
083b9ff878
core: wp_core_get_context -> wp_core_get_g_main_context
2020-06-16 12:53:18 +03:00
George Kiagiadakis
5069ce5eb9
wireplumber.conf: disable bluez monitor by default
...
- because it conflicts with pulseaudio and we actually still want
pipewire to be able to run along pulseaudio on default setups
- and because it doesn't work well yet
2020-06-16 12:10:01 +03:00
George Kiagiadakis
be6d00d370
wireplumber.conf: ignore comments inside blocks or at line ends
...
replace them with spaces so that the GVariant parser ignores them
2020-06-16 12:06:26 +03:00
George Kiagiadakis
5f9212c344
si-adapter: use the clock rate defined in pipewire.conf
2020-06-15 19:09:04 +03:00
George Kiagiadakis
7bc8302740
m-monitor: connect the monitor core on activation instead of module load time
...
We have multiple instances of the monitor plugin, but that's ok.
connect/disonnect will not do anything bad if called multiple times
We need to connect later so that the first connection is the one from main().
Otherwise, if there is a connection error, we will see the warning from the
monitor first.
2020-06-15 18:36:33 +03:00
George Kiagiadakis
575e338f63
wpctl: status: add info about server & clients
2020-06-15 18:24:44 +03:00
George Kiagiadakis
926ee5ce9f
src, modules: set PW_KEY_APP_NAME on all cores
2020-06-15 17:56:05 +03:00
George Kiagiadakis
7668f4c6c9
core: add methods to work with pw_core_info data and pw_core properties
...
- pw_core_info has data that represent the remote core
- pw_core properties are the properties of its pw_client,
initially inherited from the pw_context, which can be updated either
when calling pw_context_connect() or later at runtime (the pw_core
calls pw_client_update_properties() on its pw_client)
wp_core_update_properties() is made in such a way so that we can do:
```
clone = wp_core_clone(core);
wp_core_update_properties(clone, ...);
wp_core_connect(clone);
```
and get clone to have different properties than the original core,
while they still share the same pw_context underneath
2020-06-15 17:50:03 +03:00
George Kiagiadakis
0596988945
core: retrieve and store core info
...
also delay the "connected" signal until info is there
2020-06-15 17:49:21 +03:00
George Kiagiadakis
0d1fcd48a1
properties: add wp_properties_unref_and_take_pw_properties()
...
a method to take the internal pw_properties without copying
2020-06-15 17:22:47 +03:00
George Kiagiadakis
c72d126374
properties: const-ify the pw_properties in _new_wrap()
...
and do not allow writing to wrapped pw_properties,
since they are const now
2020-06-15 17:20:10 +03:00
George Kiagiadakis
7b5752448d
doc/contributing: add a note about rebasing merge requests
2020-06-15 11:36:15 +03:00
Martin Koch, ESE GmbH
ca42b09c3d
Add version requirement >= 2.60 for the GLib family of libraries
...
- due to usage of Reference-counted-data in lib/wptoml/array.cpp
(requires >= 2.58, see https://developer.gnome.org/glib/stable/glib-Reference-counted-data.html )
- and usage of G_GNUC_FALLTHROUGH in lib/wp/object-interest.c
(requires 2.60, see https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#G-GNUC-FALLTHROUGH:CAPS )
Signed-off-by: Martin Koch, ESE GmbH <martin.koch@ese.de>
2020-06-15 11:18:17 +03:00
George Kiagiadakis
b70cbca84e
spa-device: store the constructor properties and use them for export + object-info
...
the spa object undereath doesn't do that and we lose a bunch of
properties otherwise
2020-06-15 11:10:39 +03:00
Julian Bouzas
3b4785f1a0
m-config-static-objects: use a local core for all objects
2020-06-12 15:04:36 -04:00
Julian Bouzas
40eb53a290
m-device-activation: enum profiles before activating bluetooth devices
2020-06-12 15:04:36 -04:00
Julian Bouzas
382b550d26
spa-device: don't destroy the task until the proxy is bound when exporting
2020-06-12 15:04:36 -04:00
Julian Bouzas
05aeeed90c
m-device-activation: always activate alsa devices if no api alsa card property was set
2020-06-12 15:04:36 -04:00
Julian Bouzas
be3045e1f8
m-device-activation: make sure the device properties are valid before activating them
2020-06-12 15:04:36 -04:00
Julian Bouzas
70f76c7fcb
m-monitor: use a shared local core for all local objects
2020-06-12 15:04:29 -04:00