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
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
d07f3df445
m-config-endpoint: allow specifying preferred-n-channels in endpoint.config
2020-06-16 13:31:05 +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
926ee5ce9f
src, modules: set PW_KEY_APP_NAME on all cores
2020-06-15 17:56:05 +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
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
Julian Bouzas
53289b9906
m-monitor: allow the monitor module to create multiple devices
2020-06-11 13:50:02 -04:00
George Kiagiadakis
8a0abd4fb8
spa-device: subclass from GObject
2020-06-11 15:05:20 +03:00
George Kiagiadakis
a9edb65eab
m-monitor: fix icon name when device.bus is NULL
2020-06-10 18:12:43 +03:00
George Kiagiadakis
8d77793a2a
improve some debug logs
2020-06-10 12:53:22 +03:00
George Kiagiadakis
7a486f1f7c
impl-node: subclass from GObject
...
By mistake, WpImplNode was developed by keeping in mind that the proxy
returned by pw_core_export() is a PW_TYPE_INTERFACE_Node, but this
is not true. It's actually a ClientNode...
Unfortunately, making WpImplNode work as if it was a WpNode is
not so easy, especially when it comes to handling params, which
need to be queried syncrhonously on the underlying spa_node.
So, instead of fixing WpImplNode to work as a WpNode, we choose to
disconnect them. This way, WpImplNode will not be used as a proxy
in the registry and the registry will normally create WpNode proxies
instead, making round-trips through the server to change node params.
2020-06-10 11:12:11 +03:00
Julian Bouzas
3add067254
m-device-activation: always activate bluez5 devices
2020-06-08 14:04:57 -04:00
Julian Bouzas
9f39706877
reserve-device: acquire device if it has no owner for at least 3 seconds
2020-06-07 16:28:44 -04:00
Julian Bouzas
cd3401bcb5
dbus-device-reservation: add owner-appeared/owner-vanished signals, and remove acquired callback
2020-06-07 16:28:44 -04:00
Julian Bouzas
c8582d255e
reserve-device: don't increment jack_n_acquired if it is 0 and use the updated value when setting data
2020-06-07 16:28:18 -04:00
Julian Bouzas
371e6f90ac
reserve-device: clean jack device activation logic
2020-06-05 14:26:06 -04:00
George Kiagiadakis
ed7fa050c5
m-config-endpoint: debug config file matches
2020-06-03 20:28:26 +03:00
Julian Bouzas
3c36f20d23
src: config: add jack.device file and removed jack device module
2020-06-02 12:24:47 -04:00
Julian Bouzas
ef2e892341
m-config-static-objects: add device parser to create static devices
2020-06-02 12:24:47 -04:00
Julian Bouzas
d3cb1bd84d
modules: rename config-static-nodes to config-static-objects
2020-06-02 12:24:47 -04:00
George Kiagiadakis
651701a471
endpoint: use the node.name as the endpoint name and add endpoint.description
...
endpoint.description is now the user-friendly string
we want the endpoint name to be machine-friendly because it's
the identifier that we store in m-session-settings
2020-06-02 17:46:35 +03:00
George Kiagiadakis
3807d95ec5
m-monitor: update node properties to match the ones that media-session sets
2020-06-02 15:51:13 +03:00
George Kiagiadakis
5a0028886b
m-config-policy: refactor the target search logic and add debug messages
...
- fall back to the default logic if node.target is set but it doesn't exist
- use the default endpoint if it is within the [target-endpoint] matches;
this way we can use a config file to override just the stream name,
for instance, while still respecting the default endpoint
- prefer use of the lookup methods instead of manual iterations
previously the default endpoint was not respected because our config
files have a [target-endpoint] table..
2020-06-02 13:09:00 +03:00
George Kiagiadakis
e944abbcd5
si-standard-link: associate links with endpoint-links
2020-06-02 13:09:00 +03:00
Julian Bouzas
4212d68d9c
m-config-endpoint: show a warning if endpoint failed to activate or export
2020-06-01 20:05:03 -04:00
Julian Bouzas
69dfe0e203
m-device-activation: use wp_core_timeout_add_closure instead of wp_core_timeout_add in reserve node API
2020-06-01 20:05:03 -04:00
Julian Bouzas
3e12d239ef
m-device-activation: sync with core before activating to make sure jack-device is exported
2020-06-01 20:05:03 -04:00
Julian Bouzas
2c64dd4476
reserve-device: enable/disable jack-device if audio device is owned/unowned by the JACK server
2020-06-01 20:05:03 -04:00
Julian Bouzas
27fa7ff619
reserve-device: show info instead of warning when devices could not be acquired
2020-06-01 20:05:03 -04:00
Julian Bouzas
7ba93fa3a1
dbus-device-reservation: use the Get method when requesting a property
2020-06-01 20:05:03 -04:00
Julian Bouzas
882b627662
dbus-device-reservation: make sure pending_task is always NULL before returning
...
This allows dbus requests to be done inside the task callback
2020-06-01 20:05:03 -04:00
Julian Bouzas
05401c772f
m-device-activation: remove assertion in dbus device reservation API when failing to own bus
2020-06-01 20:05:03 -04:00
Julian Bouzas
522c9ea956
reserve-device: release reservation when release signal is triggered
2020-06-01 20:05:03 -04:00
Julian Bouzas
5323ee14a5
dbus-device-reservation: emit forced 'release' signal when name is lost and pending task is NULL
2020-06-01 20:05:03 -04:00
Julian Bouzas
d11c67fe98
dbus-device-reservation: change the forced param type from the 'release' signal to boolean
2020-06-01 20:05:03 -04:00
Julian Bouzas
ef47954e07
m-config-static-nodes: use wireplumber log
2020-05-29 08:43:36 -04:00
Julian Bouzas
da63c05e76
m-config-static-nodes: remove unneeded 'conected' callback and create static nodes when the plugin is activated
2020-05-29 08:43:36 -04:00
Julian Bouzas
9667cccb5a
modules: move monitor device activation logic into a new device-activation module
2020-05-26 11:52:44 -04:00
Julian Bouzas
5a9cb7688a
m-monitor: set the device id property when creating nodes
2020-05-26 11:29:18 -04:00
Julian Bouzas
3ad875a624
m-monitor: add device reservation data when device is augmented
2020-05-26 11:29:18 -04:00