doc: add the documentation infrastructure for pipewire modules

All empty pages for now but at least this makes them show up in the
documentation.
This commit is contained in:
Peter Hutterer 2021-06-24 14:06:30 +10:00 committed by Wim Taymans
parent 9956637ce5
commit f181232a61
22 changed files with 130 additions and 0 deletions

View file

@ -17,8 +17,16 @@ endforeach
foreach h : pipewire_sources
inputs += meson.source_root() / 'src' / 'pipewire' / h
endforeach
foreach h : module_sources
inputs += meson.source_root() / 'src' / 'modules' / h
endforeach
inputs += meson.source_root() / 'test' / 'pwtest.h'
find = find_program('find', required: false)
if find.found()
endif
# SPA headers use static inline functions. Doxygen doesn't extract those
# unless we have EXTRACT_STATIC set - but we don't want it to extract
# everything in the rest of the tree.
@ -50,6 +58,7 @@ extra_docs = [
'pipewire-design.dox',
'pipewire-daemon.dox',
'pipewire-library.dox',
'pipewire-modules.dox',
'pipewire-tools.dox',
'pipewire-session-manager.dox',
'pipewire-objects-design.dox',

40
doc/pipewire-modules.dox Normal file
View file

@ -0,0 +1,40 @@
/**
\page page_pipewire_modules PipeWire Modules
A PipeWire module is effectively a client provided in a `.so` file that
shares the \ref pw_context with the loading entity. Usually modules are
loaded when they are listed in the configuration files.
A module's entry point is the `pipewire__module_init` function, see \ref
PIPEWIRE_SYMBOL_MODULE_INIT.
\code
int pipewire__module_init(struct pw_impl_module *module, const char *args).`
\endcode
List of known modules:
- \subpage page_module_access
- \subpage page_module_adapter
- \subpage page_module_client_device
- \subpage page_module_client_node
- \subpage page_module_echo_cancel
- \subpage page_module_filter_chain
- \subpage page_module_link_factory
- \subpage page_module_loopback
- \subpage page_module_metadata
- \subpage page_module_portal
- \subpage page_module_profiler
- \subpage page_module_protocol_native
- \subpage page_module_protocol_pulse
- \subpage page_module_protocol_simple
- \subpage page_module_pulse_tunnel
- \subpage page_module_rt
- \subpage page_module_rtkit
- \subpage page_module_session_manager
- \subpage page_module_zeroconf_discover
*/

View file

@ -1,5 +1,29 @@
subdir('spa')
# The list of "main" source files for modules, the ones that have the
# doxygen documentation
module_sources = [
'module-access.c',
'module-adapter.c',
'module-client-device.c',
'module-client-node.c',
'module-echo-cancel.c',
'module-filter-chain.c',
'module-link-factory.c',
'module-loopback.c',
'module-metadata.c',
'module-portal.c',
'module-profiler.c',
'module-protocol-native.c',
'module-protocol-pulse.c',
'module-protocol-simple.c',
'module-pulse-tunnel.c',
'module-rt.c',
'module-rtkit.c',
'module-session-manager.c',
'module-zeroconf-discover.c',
]
pipewire_module_access = shared_library('pipewire-module-access', [ 'module-access.c' ],
include_directories : [configinc, spa_inc],
install : true,

View file

@ -46,6 +46,9 @@
#include <pipewire/impl.h>
#include <pipewire/private.h>
/** \page page_module_access PipeWire Module: Access
*/
#define NAME "access"
#define MODULE_USAGE "[ access.force=flatpak ] " \

View file

@ -38,6 +38,8 @@
#include "modules/spa/spa-node.h"
#include "module-adapter/adapter.h"
/** \page page_module_adapter PipeWire Module: Adapter
*/
#define NAME "adapter"
#define FACTORY_USAGE SPA_KEY_FACTORY_NAME"=<factory-name> " \

View file

@ -37,6 +37,9 @@
#define NAME "client-device"
/** \page page_module_client_device PipeWire Module: Client Device
*/
static const struct spa_dict_item module_props[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Allow clients to create and control remote devices" },

View file

@ -36,6 +36,9 @@
#include "module-client-node/v0/client-node.h"
#include "module-client-node/client-node.h"
/** \page page_module_client_node PipeWire Module: Client Node
*/
#define NAME "client-node"
static const struct spa_dict_item module_props[] = {

View file

@ -56,6 +56,9 @@
#include "module-echo-cancel/echo-cancel.h"
/** \page page_module_echo_cancel PipeWire Module: Echo Cancel
*/
#define NAME "echo-cancel"
/* Hopefully this is enough for any combination of AEC engine and resampler
* input requirement for rate matching */

View file

@ -48,6 +48,10 @@
#define NAME "filter-chain"
/**
* \page page_module_filter_chain PipeWire Module: Filter-Chain
*
*/
static const struct spa_dict_item module_props[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Create filter chain streams" },

View file

@ -34,6 +34,9 @@
#include <pipewire/impl.h>
/** \page page_module_link_factory PipeWire Module: Link Factory
*/
#define NAME "link-factory"
#define FACTORY_USAGE PW_KEY_LINK_OUTPUT_NODE"=<output-node> " \

View file

@ -42,6 +42,9 @@
#include <pipewire/impl.h>
#include <pipewire/extensions/profiler.h>
/** \page page_module_loopback PipeWire Module: Loopback
*/
#define NAME "loopback"
static const struct spa_dict_item module_props[] = {

View file

@ -34,6 +34,9 @@
#include <pipewire/impl.h>
#include <pipewire/extensions/metadata.h>
/** \page page_module_metadata PipeWire Module: Metadata
*/
#define NAME "metadata"
static const struct spa_dict_item module_props[] = {

View file

@ -45,6 +45,9 @@
#include "pipewire/utils.h"
#include "pipewire/private.h"
/** \page page_module_portal PipeWire Module: Portal
*/
#define NAME "portal"
struct impl {

View file

@ -41,6 +41,9 @@
#include <pipewire/impl.h>
#include <pipewire/extensions/profiler.h>
/** \page page_module_profiler PipeWire Module: Profiler
*/
#define NAME "profiler"
#define TMP_BUFFER (16 * 1024)

View file

@ -64,6 +64,9 @@
#include <spa/debug/pod.h>
#include <spa/debug/types.h>
/** \page page_module_protocol_native PipeWire Module: Protocol Native
*/
#define NAME "protocol-native"
#ifndef UNIX_PATH_MAX

View file

@ -38,6 +38,9 @@
#include "module-protocol-pulse/pulse-server.h"
/** \page page_module_protocol_pulse PipeWire Module: Protocol Pulse
*/
#define NAME "protocol-pulse"
#define MODULE_USAGE PW_PROTOCOL_PULSE_USAGE

View file

@ -49,6 +49,9 @@
#include <pipewire/impl.h>
/** \page page_module_protocol_simple PipeWire Module: Protocol Simple
*/
#define NAME "protocol-simple"
#define DEFAULT_PORT 4711

View file

@ -51,6 +51,9 @@
#include <pulse/pulseaudio.h>
/** \page page_module_pulse_tunnel PipeWire Module: Pulse Tunnel
*/
#define NAME "pulse-tunnel"
#define MODULE_USAGE "[ remote.name=<remote> ] " \

View file

@ -38,6 +38,9 @@
#include "config.h"
/** \page page_module_rt PipeWire Module: RT
*/
#define DEFAULT_NICE_LEVEL -11
#define DEFAULT_RT_PRIO 88
#define DEFAULT_RT_TIME_SOFT 200000

View file

@ -45,6 +45,9 @@
#include <pipewire/impl.h>
/** \page page_module_rtkit PipeWire Module: RTKit
*/
#define DEFAULT_NICE_LEVEL -11
#define DEFAULT_RT_PRIO 88
#define DEFAULT_RT_TIME_SOFT 200000

View file

@ -27,6 +27,9 @@
#include <pipewire/impl.h>
/** \page page_module_session_manager PipeWire Module: Session Manager
*/
/* client-endpoint.c */
int client_endpoint_factory_init(struct pw_impl_module *module);
/* client-session.c */

View file

@ -46,6 +46,9 @@
#include "module-zeroconf-discover/avahi-poll.h"
/** \page page_module_zeroconf_discover PipeWire Module: Zeroconf Discover
*/
#define NAME "zeroconf-discover"
#define MODULE_USAGE " "