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 foreach h : pipewire_sources
inputs += meson.source_root() / 'src' / 'pipewire' / h inputs += meson.source_root() / 'src' / 'pipewire' / h
endforeach endforeach
foreach h : module_sources
inputs += meson.source_root() / 'src' / 'modules' / h
endforeach
inputs += meson.source_root() / 'test' / 'pwtest.h' 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 # 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 # unless we have EXTRACT_STATIC set - but we don't want it to extract
# everything in the rest of the tree. # everything in the rest of the tree.
@ -50,6 +58,7 @@ extra_docs = [
'pipewire-design.dox', 'pipewire-design.dox',
'pipewire-daemon.dox', 'pipewire-daemon.dox',
'pipewire-library.dox', 'pipewire-library.dox',
'pipewire-modules.dox',
'pipewire-tools.dox', 'pipewire-tools.dox',
'pipewire-session-manager.dox', 'pipewire-session-manager.dox',
'pipewire-objects-design.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') 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' ], pipewire_module_access = shared_library('pipewire-module-access', [ 'module-access.c' ],
include_directories : [configinc, spa_inc], include_directories : [configinc, spa_inc],
install : true, install : true,

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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