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

@ -20,6 +20,7 @@ extra_docs = [
'dox/index.dox',
'dox/overview.dox',
'dox/modules.dox',
'dox/pulse-modules.dox',
'dox/internals/index.dox',
'dox/internals/design.dox',
'dox/internals/access.dox',
@ -68,6 +69,9 @@ endforeach
foreach h : module_sources
inputs += meson.project_source_root() / 'src' / 'modules' / h
endforeach
foreach h : pipewire_module_protocol_pulse_sources
inputs += meson.project_source_root() / 'src' / 'modules' / h
endforeach
input_dirs = [ meson.project_source_root() / 'spa' / 'include' / 'spa' ]
path_prefixes = [
@ -141,7 +145,7 @@ pw_programs_dox = configure_file(input: 'programs.dox.in',
input_dirs += [ 'doc/programs.dox' ]
doxygen_layout = meson.project_source_root() / 'doc' / 'DoxygenLayout.xml'
doxygen_filter_c = meson.project_source_root() / 'doc' / 'input-filter.sh'
doxygen_filter_c = meson.project_source_root() / 'doc' / 'input-filter.py'
doxygen_filter_h = meson.project_source_root() / 'doc' / 'input-filter-h.sh'
doxyfile_conf.set('inputs', ' '.join(inputs + input_dirs))
@ -177,9 +181,24 @@ if generate_module_manpages
endif
endforeach
module_manpage_names = []
foreach m : module_sources
name = m.split('.c').get(0)
file = 'libpipewire-' + name + '.7'
name = m.split('.c').get(0)
file = f'libpipewire-@name@.7'
module_manpage_names += [[name, file]]
endforeach
foreach m : pipewire_module_protocol_pulse_sources
name = m.split('/').get(-1).split('.c').get(0)
if m.contains('/modules/') and name.startswith('module-')
name = f'pulse-@name@'
file = f'pipewire-@name@.7'
module_manpage_names += [[name, file]]
endif
endforeach
foreach item : module_manpage_names
name = item.get(0)
file = item.get(1)
rst = custom_target(file + '.rst',
command : [python, module_man_rst_py, pandoc, name, '@INPUT@' ] + module_man_defines,