George Kiagiadakis
c2834ea344
lua: remove the ability to specify spa_libs in the lua config
...
This is not useful, we can do this on the pipewire-style config files
2021-04-22 17:44:17 +03:00
George Kiagiadakis
af9b9a84f0
daemon: init export core in the daemon and share it with modules
...
Also, use a context property to control whether to enable this core
or not and enable it only in the daemon
2021-04-22 15:07:47 +03:00
George Kiagiadakis
b46587393c
lua: change the "wireplumber.interactive" property to "wireplumber.daemon"
...
with inverted semantics
2021-04-22 13:48:06 +03:00
George Kiagiadakis
bc1413e1cd
audio-endpoint: configure adapter for null sink with monitor.channel-volumes
...
This allows the channelVolumes and mute props to affect the output
of the null sink's monitor ports. This way we will be able to use
channelVolumes to track the configured volume of the endpoint
and the monitorVolumes to implement volume ducking.
2021-04-19 11:08:17 +03:00
George Kiagiadakis
8861595d55
m-mixer-api: allow calling the action signals even when the plugin is not enabled
2021-04-15 17:00:15 +03:00
George Kiagiadakis
012363ef55
m-default-nodes-api: remove reduntant call to g_clear_object
2021-04-15 16:59:51 +03:00
George Kiagiadakis
4d5959ffdb
lua: add WpObject get_active/supported_features() bindings
2021-04-13 19:34:07 +03:00
George Kiagiadakis
7c617742a9
lua: add g_get_real/monotonic_time() bindings
...
Useful to tag objects with their creation time
2021-04-13 19:33:06 +03:00
George Kiagiadakis
6d84295fc5
si-audio-endpoint: give better descriptions to endpoints and their null sinks
2021-04-12 16:05:48 +03:00
Julian Bouzas
5c781db216
m-audio-endpoint: remove target property
...
Links between endpoints and device nodes are done externally in LUA
2021-04-09 14:19:25 -04:00
George Kiagiadakis
c7e32a638a
m-mixer-api: add configurable support for the cubic volume scale
...
This is also what pulseaudio uses, so now the volumes in wpctl match what
pulseaudio tools report and they make a lot more sense from the user's POV
2021-04-09 15:52:17 +03:00
George Kiagiadakis
010cd308da
m-mixer-api: also add channel-independent volume for ease of use
2021-04-09 15:52:17 +03:00
George Kiagiadakis
0aefd52593
m-mixer-api: fix getting volume info from nodes that don't have volumeBase & step
...
and optimize a little bit so that can stop iterating params
as soon as the info is known
2021-04-09 15:52:17 +03:00
George Kiagiadakis
21dccd5edb
lua: add a Debug.dump_table() utility function
...
Prints a table recursively with print()
2021-04-09 15:52:17 +03:00
George Kiagiadakis
4399512891
m-default-nodes-api: load all information before declaring the plugin as "enabled"
2021-04-09 15:52:17 +03:00
George Kiagiadakis
28ff1061f5
lua: add a Core.require_api() utility function
...
This function loads and enables "api" plugins and makes them
available in the specified callback. This is intended to be used
by interactive scripts in order to get access to "api" plugins
such as the new "default-nodes-api" and "mixer-api"
2021-04-09 15:52:17 +03:00
George Kiagiadakis
523bc7a36d
modules: add module-mixer-api
...
This module provides an API to get/set volume controls on nodes,
using the same logic as pipewire-pulse, which means it will use
the device Route props when a node is associated with a device
that has this capability
2021-04-09 15:52:17 +03:00
Julian Bouzas
b2c9084413
modules: remove unneeded si-audio-convert module
2021-04-08 14:07:05 -04:00
Julian Bouzas
317550a7bd
m-lua-scripting: add object manager get_n_objects API
2021-04-08 14:07:05 -04:00
Julian Bouzas
cce02fec68
si-audio-endpoint: deactivate node when disabling active feature
2021-04-08 14:07:05 -04:00
Julian Bouzas
d38092a35c
m-si-audio-endpoint: fix port configuration and target linking
2021-04-08 14:07:05 -04:00
Julian Bouzas
471f84c735
m-si-audio-endpoint: make target property optional
...
Allows using the endpoint even if a target is not set.
2021-04-08 14:07:01 -04:00
Julian Bouzas
2caac5fa87
si-standard-link: call parent class finalize once finalized
2021-04-07 13:21:40 -04:00
Julian Bouzas
552b04ed7d
m-si-standard-link: properly set in item port context when configuring
2021-04-06 14:04:34 -04:00
Julian Bouzas
fb1daa0bf2
modules: use dots instead of dashes for session item properties
...
Keeps consistency with PipeWire
2021-04-02 11:22:22 -04:00
Julian Bouzas
12b59a1506
m-si-audio-adapter: abort activation if node feature ports is no longer enabled
2021-03-31 12:44:49 -04:00
Julian Bouzas
75d53dbef3
m-si-standard-link: make sure in/out items are valid before activating
2021-03-31 10:51:20 -04:00
George Kiagiadakis
9a103c5787
m-default-nodes: restore configured values on the metadata at startup
2021-03-31 15:20:06 +03:00
George Kiagiadakis
0ecefcb55d
policy-node: use default-nodes-api plugin
2021-03-31 13:10:13 +03:00
George Kiagiadakis
0bc257b6c3
modules: add new module-default-nodes-api
...
This is to provide easy access to default nodes from the scripts
2021-03-31 13:10:13 +03:00
George Kiagiadakis
8cf8eb6b76
m-default-nodes: move common code to a new header
2021-03-31 13:10:13 +03:00
George Kiagiadakis
0a53ddd4ad
m-default-nodes: add properties to control storage method and interval
...
Do not use WpState at all when use-persistent-storage=FALSE; keep all
the configured default nodes in memory and forget them upon restart
2021-03-31 13:10:13 +03:00
George Kiagiadakis
a0876bb275
modules: rename default-metadata to default-nodes and enable it always in the config
2021-03-31 13:10:13 +03:00
George Kiagiadakis
c524e1e317
m-default-metadata: remove default endpoints, follow upstream logic
...
* default endpoints no longer make sense
* follow upstream logic of configured vs effective default nodes
* store node names in json inside the metadata, as upstream does
* add default video source
2021-03-31 13:10:13 +03:00
George Kiagiadakis
fd2ddffdd7
lua: s/Feature.Object.ALL/Features.ALL/
...
It looks nicer to have groups of features in 'Features.'
instead of 'Feature.'
2021-03-29 18:35:35 +03:00
Julian Bouzas
ab5a58715c
m-default-metadata: add support for default audio nodes
2021-03-26 16:16:02 -04:00
Julian Bouzas
b7e347d92c
modules: remove endpoint impl on si-node, si-audio-convert and si-audio-adapter
2021-03-26 16:16:02 -04:00
Julian Bouzas
325522ae51
modules: add si-audio-endpoint session item
2021-03-26 16:16:02 -04:00
Julian Bouzas
04992f0d07
modules: remove si-monitor module
...
It is not needed as si-standard-link can be configured with port contexts
2021-03-26 16:16:02 -04:00
Julian Bouzas
0d71565d63
m-si-standard-link: set out-item-id and in-item-id properties
2021-03-26 16:16:02 -04:00
Julian Bouzas
c0143b5f18
m-si-audio-adapter: ensure ports are available before enabling active
2021-03-26 16:16:02 -04:00
Julian Bouzas
06c12fe7c2
m-lua-scripting: add get_associated_proxy session item Lua API
2021-03-26 16:16:02 -04:00
Julian Bouzas
ebf52adb21
si-interfaces: make WpSiLink work with WpSiPortInfo instead of WpSiEndpoint
2021-03-26 16:16:02 -04:00
Julian Bouzas
64cf2bd644
si-interfaces: rename WpSiEndpointAcquisition to WpSiAcquisition
...
The get_endpoint_acquisition() vmethod has also been moved to WpSiPortInfo, and
therefore renamed to get_acquisition().
2021-03-26 16:16:02 -04:00
Julian Bouzas
13fc0adb22
m-si-standard-link: use a weak reference for in and out endpoints
...
Allows checking if the endpoints are still valid before releasing the
acquisition. Sometimes the endpoints are destroyed before the link, and
releasing acquisition is not needed. There is no way to check that with raw
pointers.
2021-03-26 16:15:38 -04:00
Julian Bouzas
0bef8280d7
m-si-standard-link: fix in-endpoint check when configuring
2021-03-26 15:56:07 -04:00
Julian Bouzas
d71cace24f
m-si-convert: rename to si-audio-convert
...
Because it is only meant to be used with audio nodes
2021-03-18 15:00:22 -04:00
Julian Bouzas
340213272e
m-si-adapter: rename to si-audio-adapter
...
Because it is only meant to be used with audio nodes
2021-03-18 14:47:22 -04:00
Julian Bouzas
3aef916d51
session-item: add _register and _remove API
...
Allows using object managers to listen for registered items
2021-03-18 14:30:11 -04:00
Julian Bouzas
120aab04ae
session-item: refactor and inherit from WpObject
...
This adds WP_SESSION_ITEM_FEATURE_ACTIVE and WP_SESSION_ITEM_FEATURE_EXPORTED
features, so _activate and _export APIs have been removed. Modules and unit
tests have also been updated.
2021-03-18 14:30:05 -04:00