doc: add documentation for pipewire-pulse modules

Add (minimal) reference documentation for each pipewire-pulse module.

Add some preprocessing to substitute @pulse_module_options@ in docs from
PW_KEY_MODULE_USAGE so the module options don't need to be repeated.

Produce Doxygen docs + generate manpages pipewire-pulse-modules.7,
pipewire-pulse-module-*.7
This commit is contained in:
Pauli Virtanen 2023-11-19 23:08:09 +02:00 committed by Wim Taymans
parent 0ae797ea28
commit 843e733479
40 changed files with 979 additions and 302 deletions

View file

@ -9,11 +9,21 @@ manpage_conf.set('PIPEWIRE_CONFDATADIR', pipewire_confdatadir)
module_manpage_list = []
foreach m : module_sources
name = m.split('.c').get(0)
module_manpage_list += ['``libpipewire-' + name + '(7)``']
module_manpage_list += f'``libpipewire-' + name + '(7)``'
endforeach
manpage_conf.set('LIBPIPEWIRE_MODULES', '\n- '.join(module_manpage_list))
pulse_module_manpage_list = []
foreach m : pipewire_module_protocol_pulse_sources
name = m.split('/').get(-1).split('.c').get(0)
if m.contains('/modules/') and name.startswith('module-')
pulse_module_manpage_list += f'``pipewire-pulse-@name@(7)``'
endif
endforeach
manpage_conf.set('PIPEWIRE_PULSE_MODULES', '\n- '.join(pulse_module_manpage_list))
manpages = [
'pipewire.1.rst.in',
'pipewire-pulse.1.rst.in',
@ -31,6 +41,7 @@ manpages = [
'pw-profiler.1.rst.in',
'pw-top.1.rst.in',
'libpipewire-modules.7.rst.in',
'pipewire-pulse-modules.7.rst.in',
]
if get_option('pipewire-jack').allowed()

View file

@ -0,0 +1,43 @@
pipewire-pulse-modules
######################
---------------------------
PipeWire Pulseaudio modules
---------------------------
:Manual section: 7
:Manual group: PipeWire
DESCRIPTION
===========
PipeWire's Pulseaudio emulation implements several Pulseaudio modules.
It only supports its own built-in modules, and cannot load external
modules written for Pulseaudio.
The built-in modules can be loaded using Pulseaudio client programs,
for example `pactl load-module <module-name> <module-options>`. They
can also added to `pipewire-pulse.conf`, typically by a drop-in file
in `~/.config/pipewire/pipewire-pulse.conf.d/` containing the module
name and its arguments
::
pulse.cmd = [
{ cmd = "load-module" args = "module-null-sink sink_name=foo" flags = [ ] }
]
KNOWN MODULES
=============
- @PIPEWIRE_PULSE_MODULES@
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``pipewire-pulse(1)``,