Commit graph

567 commits

Author SHA1 Message Date
George Kiagiadakis
e567637d37 docs: convert lua api docs to pure rst
Not all the docs are there yet, this is WIP
2021-05-25 14:19:53 +03:00
Raghavendra
80e7b20a73 docs: Add Lua API documentation 2021-05-25 14:19:53 +03:00
Raghavendra
d692f06f0d docs: api: Replace hotdoc specific commands with Doxygen specific commands 2021-05-25 14:19:53 +03:00
Julian Bouzas
bd90783398 m-si-standard-link: remove unused manage.lifetime configuration property 2021-05-24 11:07:59 -04:00
George Kiagiadakis
f0d33cb873 endpoint: remove wp_endpoint_create_link()
Not used and not useful with the current design.
May be reverted in the future, if necessary.
2021-05-21 19:57:31 +03:00
George Kiagiadakis
ac9e1e89c4 wp: remove WpSession and WpEndpointLink
We have ended up not using them, so let's not carry them
in the ABI of 0.4

We can always revert that, but let's first decide how
these objects should be used
2021-05-21 19:57:31 +03:00
Julian Bouzas
5756d8899d m-default-nodes: check if node is valid before returning bound id 2021-05-20 11:18:19 -04:00
Julian Bouzas
7bc59afd81 m-default-routes: log error message when failed to get current routes 2021-05-20 10:51:49 -04:00
Julian Bouzas
2218b5613e m-default-profile: log error message when failed to get current profile 2021-05-20 10:51:49 -04:00
Julian Bouzas
fc41af5c98 m-mixer-api: make sure the enum param iterator is valid
Some audio nodes such as null-audio-sink nodes don't support Props or Route enum
params.
2021-05-19 18:26:17 -04:00
Julian Bouzas
e14bb5fa2f modules: steal the format_task before returning it
Fixes possible race condition when setting adapter ports format in the callback
of a previous adapter ports format call.
2021-05-19 07:42:18 -04:00
Julian Bouzas
dc693ee0d0 m-device-activation: use sync API to enum available profiles 2021-05-18 10:00:56 -04:00
Julian Bouzas
e1917239f3 m-default-routes: use sync API to enum available routes 2021-05-18 10:00:24 -04:00
Julian Bouzas
c3338458e5 m-default-profile: use sync API to enum available profiles 2021-05-18 09:59:18 -04:00
Julian Bouzas
58db9e1fad global-proxy: destroy the global when proxy is destroyed 2021-05-12 14:04:34 -04:00
Julian Bouzas
419af5a228 spa-pod: respect the SPA size for long and int APIs
Fixes some issues for 32bit architectures
2021-05-12 11:53:31 -04:00
Julian Bouzas
e1faf3f095 si-standard-link: configure the format in WpSiAdapters before linking 2021-05-12 10:37:18 -04:00
Julian Bouzas
9cf1f94045 modules: implement WpSiAdapter in si-audio-adapter and si-audio-endpoint 2021-05-12 10:37:15 -04:00
Julian Bouzas
05aba22c5a si-audio-adapter: remove unneeded 'preferred.n.channels' property 2021-05-12 10:36:24 -04:00
Julian Bouzas
47ae4f28a3 si-standard-link: make sure create_links creates at least 1 link 2021-05-11 10:56:50 -04:00
Julian Bouzas
888667d784 modules: remove role and priority properties from si-audio-adapter and si-node 2021-05-11 10:56:50 -04:00
Julian Bouzas
d68636f9b3 si-interfaces: rename WpSiPortInfo to WpSiLinkable 2021-05-11 10:56:44 -04:00
Julian Bouzas
3f60716f30 modules: remove 'monitor' port context from si-audio-adapter and si-node 2021-05-10 15:19:25 -04:00
George Kiagiadakis
fc5aa7db1f lua: rename Plugin() to Plugin.find()
Plugin() is confusing because it's not a constructor, it just finds
an existing instance of a plugin object. All other camel-case
functions are constructors in the current lua API.
2021-05-07 11:53:47 +03:00
George Kiagiadakis
a93dbf0845 wp: remove WpSessionBin
This is no longer used and likely not very useful now that we have
a simpler design.
We can re-add it in the future if necessary, but let's keep it out
of the 0.4 release.
2021-05-06 16:04:39 +03:00
George Kiagiadakis
257d5cba47 wp: rename debug.{h,c} to log.{h,c}
Also rename the intermediate lua api table WpDebug -> WpLog

Keeps things more consistent with the function names (wp_log*),
with the lua api (Log.*) and with pipewire using log.{h,c} as well.
After all, these functions are for logging...
2021-05-06 15:50:07 +03:00
George Kiagiadakis
a555d72cff m-ipc: cleanup server using g_clear_pointer() for consistency and safety 2021-05-06 13:33:48 +03:00
George Kiagiadakis
5efb46a3e2 meson: make wpipc optional and disabled by default
This is only intended to be used with specific embedded
applications. There is no good reason to use it on
a standard desktop environment.
2021-05-06 12:00:56 +03:00
Julian Bouzas
207268e189 modules: add ipc module
Handles SUSPEND and RESUME wpipc requests in order to set metadata that will
eventually unlink or re-link endpoints.
2021-05-04 19:52:09 -04:00
George Kiagiadakis
07a8b5035e m-mixer-api: track monitorVolumes and allow modifying them
This only applies to non-device nodes, because monitorVolumes
are not exposed on device Routes
2021-04-26 17:35:32 +03:00
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