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
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
Julian Bouzas
c7982a8317
core: rename context property to g-main-context
2020-06-10 13:29:52 -04:00
Julian Bouzas
eb39dec68b
core: add wp_core_clone API
2020-06-10 13:29:44 -04: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
74eee35e6f
src: config: add bluez5 endpoint files
2020-06-08 14:06:12 -04:00
Julian Bouzas
3add067254
m-device-activation: always activate bluez5 devices
2020-06-08 14:04:57 -04:00
Julian Bouzas
e68cd7b700
src: config: enable bluetooth monitor
2020-06-08 11:15:06 -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
Julian Bouzas
be8629fbec
spa-pod: keep a reference of the pod in the ierator
2020-06-04 09:48:43 -04:00
Julian Bouzas
9728418b6d
spa-pod: remove const-ness from API
2020-06-04 09:48:43 -04:00
Julian Bouzas
1e2dcb44ca
spa-pod: set the type to regular when creating int spa pod
2020-06-04 09:48:43 -04:00
Julian Bouzas
671d748b4b
spa-pod: remove _wrap_copy APIs from the private header
2020-06-04 09:48:43 -04:00
Julian Bouzas
3a93190ec9
lib: fix const compile warnings by using the wp_spa_pod_new_wrap_const API
2020-06-04 09:48:43 -04:00
Julian Bouzas
e63ca28b3a
spa-pod: add _new_wrap_const APIs
2020-06-04 09:48:43 -04:00
Julian Bouzas
b9acfcb237
spa-pod: rename spa pod _new_regular_wrap APIs to just _new_warp
2020-06-04 09:48:43 -04:00
George Kiagiadakis
71d12fe12a
debug: add doc comments
2020-06-03 21:40:01 +03:00
George Kiagiadakis
f7d816f5d2
debug: print proxy bound IDs on objects, if they are bound proxies
2020-06-03 21:28:14 +03:00
George Kiagiadakis
4130cf17ca
config: restructure wireplumber.conf and add comments for documentation
2020-06-03 21:13:03 +03:00
George Kiagiadakis
ded2d5e221
config: add .endpoint files to match jack nodes and prioritize them over alsa
...
if jack is running, that probably means that we want the jack
endpoints to be the default playback/capture path
2020-06-03 20:35:31 +03:00
George Kiagiadakis
1bae4a6a41
proxy: use a core sync to know when Props have been enumerated
...
This is necessary to finish augmenting nodes that advertise
PropInfo & Props in their param info but they don't actually have
any properties, so there is no param event emitted
(ex. the jack device nodes)
Because the sync is synchronous with the calls over the protocol,
the callback is ensured to be called after all the param events
have been emitted
2020-06-03 20:28:43 +03:00
George Kiagiadakis
ed7fa050c5
m-config-endpoint: debug config file matches
2020-06-03 20:28:26 +03:00
George Kiagiadakis
dab02b5a05
add NEWS.md
2020-06-03 11:41:25 +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
a3cf986188
proxy: fix recursion crash in _set_feature_ready
2020-06-02 19:21:04 +03:00
George Kiagiadakis
e1e6411e19
proxy: when requesting Props, only try to enum them if the proxy supports them
...
otherwise we get stuck waiting for the param event
and we get warnings on the debug log
2020-06-02 19:09:18 +03:00
George Kiagiadakis
8627fdf1a0
proxy: fix crash when _augment_error() is called recursively from within itself
2020-06-02 18:37:42 +03:00
George Kiagiadakis
e1139fcf04
meson: bump version for 0.3.0 RC1
2020-06-02 18:37:13 +03:00
George Kiagiadakis
c8b11fad42
lib: add a version header
2020-06-02 18:26:40 +03:00
George Kiagiadakis
4879937620
wpctl: actually print the endpoint description also on links
2020-06-02 18:25:34 +03:00