Commit graph

701 commits

Author SHA1 Message Date
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
e4e60c2ece endpoint-stream: add GObject property to access the name 2020-06-02 13:09:00 +03:00
George Kiagiadakis
8c40bbbce0 endpoint: add GObject properties to access the name, media-class & direction 2020-06-02 13:09:00 +03:00
George Kiagiadakis
0bba0c0df1 properties: fix const-ness warnings 2020-06-02 13:09:00 +03:00
George Kiagiadakis
78209c48c7 endpoint/endpoint-stream: remove useless virtual methods
they are not useful anymore because we hijack priv->info from the
impl subclass, so that it points to the impl info struct,
and therefore the base implementations work just fine
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
128b67e265 src: config: update default configuration to handle nodes created by the jack device 2020-06-01 20:05:03 -04: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
c97eccea16 tests: dbus-device-reservation: free the string properties 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
George Kiagiadakis
811ccc9fd0 wpctl: add inspect command 2020-06-01 19:04:50 +03:00
George Kiagiadakis
64347e67e2 tests: si-standard-link: test that endpoint-link properties are set 2020-06-01 19:03:39 +03:00
George Kiagiadakis
d8a42d2ec3 Revert "lib: return empty WpProperties if the info struct has no properties on SM objects"
This reverts commit 917a019b01.
2020-06-01 18:29:28 +03:00
George Kiagiadakis
917a019b01 lib: return empty WpProperties if the info struct has no properties on SM objects 2020-06-01 17:48:54 +03:00
George Kiagiadakis
a7d657a196 object-manager: do not accept globals without a WpProxy subclass 2020-06-01 17:48:31 +03:00
George Kiagiadakis
6aba49f9e3 properties: implement a wp_properties_iterate() method 2020-06-01 12:07:36 +03:00
George Kiagiadakis
1983b6fb33 tools: refactor wireplumber-cli and rename it to wpctl 2020-05-31 12:38:11 +03:00
George Kiagiadakis
a30761c2f4 registry: forcibly add 'object.id' on all global properties
so that we can filter proxies by id on object managers
2020-05-31 12:19:47 +03:00
George Kiagiadakis
564e8a0db3 object-manager: fix iterator fold object access 2020-05-31 12:18:29 +03:00
George Kiagiadakis
5dfe688c35 endpoint: enable FEATURE_PROPS on streams when FEATURE_STREAMS is enabled 2020-05-31 12:17:52 +03:00
George Kiagiadakis
9ae7071134 props: refactor WpSpaProps into WpProps
- make it a GObject so that it can emit its own signals
and so that it can be shared between multiple proxies
- share the WpProps instance between endpoints, endpoint-streams
and their underlying nodes
- introduce the concept of the caching mode that redirects _set
to _set_param of the proxy that actually has the props; this allows
shared WpProps to actually set changes on the correct proxy
in a transparent way
- change methods to consume the ref of the pod and reflect that
also on wp_proxy_set_prop()
- refactor the export process on endpoints & endpoint-streams
so that they always get all the required features (info, props, bound)
and make it async so that we can take time to prepare the underlying
node to have FEATURE_PROPS
- update the props & endpoint unit tests, bringing back all the
checks that the endpoint unit test used to have
2020-05-29 18:47:16 +03:00
Julian Bouzas
ef47954e07 m-config-static-nodes: use wireplumber log 2020-05-29 08:43:36 -04:00
Julian Bouzas
908a7ffbc3 src: config: add midi.node to create the MIDI node at startup 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
182d4d6276 node: add send command API 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
George Kiagiadakis
b8d1f40111 iterator: add a generic GPtrArray iterator implementation 2020-05-25 18:54:41 +03:00
George Kiagiadakis
1f2e2b7fc4 debug: add mechanism to debug spa pods
-> wp_trace_boxed (WP_TYPE_SPA_POD, pod, "some message");
2020-05-25 18:54:41 +03:00
Julian Bouzas
93ce770052 config-policy: handle the endpoint node target property when finding a target 2020-05-21 09:47:56 -04:00
Julian Bouzas
5af66bb547 modules: copy node target property in adapter and simple-node-endpoint 2020-05-21 09:47:56 -04:00