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
Julian Bouzas
daa8b8f5c0
modules: add node-suspension module
...
This module suspends a node if idle for at least 3 seconds
2020-05-26 11:29:18 -04:00
Julian Bouzas
469c35edc8
m-monitor: remove monitor prefix from dbus device reservation API
2020-05-26 11:29:18 -04:00
Julian Bouzas
ac87822d6a
m-monitor: rename device reservation data API to reserve device
2020-05-26 11:28:51 -04:00
Julian Bouzas
bc385d24bd
m-monitor: rename node reservation data API to reserve node and move it to a separated file
2020-05-26 10:44:16 -04:00
Julian Bouzas
3ea183a53d
m-jack-device: port to WpPlugin
2020-05-25 17:04:25 -04:00
Julian Bouzas
0d93ccff8c
m-monitor: port to WpPlugin
2020-05-25 17:04:25 -04:00
George Kiagiadakis
666cd10b6d
algorithms: cleanup unused code
2020-05-25 19:06:52 +03:00
George Kiagiadakis
162c1d4574
session: fix the default-endpoint prop
...
* Use a direction instead of a string prop id
* Emit default-endpoint-changed again
* Get rid of the useless virtual methods
2020-05-25 18:56:21 +03:00
George Kiagiadakis
8a94937b2a
proxy: refactor how PARAM_Props/PropInfo are handled
...
+ rename FEATURE_CONTROLS to FEATURE_PROPS
+ add accessor for the standard spa_param_info (info->params)
+ hide the low-level params API that nobody uses
2020-05-25 18:54:41 +03:00