Commit Graph

24 Commits

Author SHA1 Message Date
George Kiagiadakis
926ee5ce9f src, modules: set PW_KEY_APP_NAME on all cores 2020-06-15 17:56:05 +03: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
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
George Kiagiadakis
3807d95ec5 m-monitor: update node properties to match the ones that media-session sets 2020-06-02 15:51:13 +03: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
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
0d93ccff8c m-monitor: port to WpPlugin 2020-05-25 17:04:25 -04: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
Julian Bouzas
cfbcb5eca3 proxy: use WpSpaPod instead of struct spa_pod in public API 2020-04-21 16:11:05 -04:00
George Kiagiadakis
1f1c690b42 properties: remove _copy_keys and add update/add methods similar to the ones in pw_properties 2020-03-31 16:11:08 +03:00
Julian Bouzas
c2dfec2184 monitor: add dbus-reservation flag 2020-03-20 14:01:22 -04:00
George Kiagiadakis
9330208ada proxy/core: refactor object creation
* core no longer exposes create_remote/local_object
* node, device & link have constructor methods
  to enable the create_remote_object functionality
* added WpImplNode to wrap pw_impl_node and allow creating
  "local" node instances
* added WpSpaDevice to wrap spa_device and allow creating
  "local" device instances
* exporting objects in all cases now happens by requesting
  FEATURE_BOUND from the proxy, eliminating the need for WpExported
* replaced WpMonitor by new, simpler code directly in module-monitor
* the proxy type lookup table in WpProxy is gone, we now
  use a field on the class structure of every WpProxy subclass
  and iterate through all the class structures instead; this is
  more flexible and extensible
2020-02-11 11:07:44 +02:00
George Kiagiadakis
efb33ddd1b lib: introduce export macros and hide all private symbols 2020-01-16 18:50:07 +02:00
Julian Bouzas
a9ac1fdc06 update to the latest pipewire API 2020-01-13 15:07:08 -05:00
George Kiagiadakis
5de6364ae7 monitor & softdsp: fix alsa property names and api string
The alsa.pcm devices currently use "device.api" = "alsa:pcm"
but then the node overrides this later to just "alsa", which
is confusing. For now, let's match "alsa:pcm" in the monitor,
even though this does not appear on the node later.

This commit fixes device preferences in wireplumber.conf,
which were broken because the alsa endpoint names were empty
of info about the alsa device
2019-10-15 00:12:17 +03:00
George Kiagiadakis
bbca2ca236 monitor: update to reflect API changes in pipewire master 2019-10-07 16:30:04 +03:00
George Kiagiadakis
e3ac60c0c0 modules: implement a new module-monitor
This is a generic WpMonitor loader that sets up the WpMonitor
properties from the module arguments and applies some well-known
properties to the device & node objects
2019-09-17 16:35:14 +03:00