From 8159797f89cbe5bd6ce903e631777ba1d7ce302e Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Sat, 2 Oct 2021 20:55:53 +0300 Subject: [PATCH] doc: reorganize Doxygen groups/modules to make more sense The Doxygen "Modules" page is not very illuminative, as different parts of the API are mixed together and not all parts are included. Try to address this: Put all parts of the public API to some Doxygen group, usually one group per header file. Use short, systematic names. Make these groups sub-groups of a few top-level groups, roughly corresponding to the different logical parts of the API (core, impl, stream, filter, spa, utilities). --- doc/Doxyfile.in | 1 + doc/api-tree.dox | 127 ++++++++++++++++++ doc/api.dox | 61 ++++----- doc/index.dox | 1 - doc/meson.build | 83 ++++++------ doc/spa-buffer.dox | 8 +- doc/spa-index.dox | 8 +- doc/spa-plugins.dox | 8 +- doc/spa-pod.dox | 6 +- spa/include/spa/buffer/buffer.h | 2 +- spa/include/spa/control/control.h | 2 +- spa/include/spa/debug/buffer.h | 2 +- spa/include/spa/graph/graph.h | 2 +- spa/include/spa/monitor/device.h | 2 +- spa/include/spa/monitor/event.h | 9 ++ spa/include/spa/monitor/type-info.h | 9 ++ spa/include/spa/monitor/utils.h | 9 ++ spa/include/spa/node/node.h | 3 +- spa/include/spa/param/latency-utils.h | 8 ++ spa/include/spa/param/param.h | 2 +- spa/include/spa/pod/builder.h | 2 +- spa/include/spa/support/cpu.h | 4 +- spa/include/spa/support/dbus.h | 6 +- spa/include/spa/support/i18n.h | 6 +- spa/include/spa/support/log.h | 2 +- spa/include/spa/support/loop.h | 6 +- spa/include/spa/support/plugin-loader.h | 6 +- spa/include/spa/support/plugin.h | 2 +- spa/include/spa/support/system.h | 6 +- spa/include/spa/support/thread.h | 6 +- spa/include/spa/utils/ansi.h | 6 +- spa/include/spa/utils/defs.h | 6 +- spa/include/spa/utils/dict.h | 7 +- spa/include/spa/utils/hook.h | 4 +- spa/include/spa/utils/json.h | 2 +- spa/include/spa/utils/keys.h | 2 +- spa/include/spa/utils/list.h | 7 +- spa/include/spa/utils/names.h | 2 +- spa/include/spa/utils/result.h | 7 +- spa/include/spa/utils/ringbuffer.h | 7 +- spa/include/spa/utils/string.h | 8 +- spa/include/spa/utils/type.h | 2 +- src/pipewire/array.h | 2 +- src/pipewire/buffers.h | 12 ++ src/pipewire/client.h | 2 +- src/pipewire/conf.h | 13 ++ src/pipewire/context.h | 2 +- src/pipewire/core.h | 3 +- src/pipewire/data-loop.h | 4 +- src/pipewire/device.h | 13 ++ src/pipewire/extensions/client-node.h | 12 ++ src/pipewire/extensions/metadata.h | 12 ++ src/pipewire/extensions/profiler.h | 12 ++ src/pipewire/extensions/protocol-native.h | 12 ++ src/pipewire/extensions/session-manager.h | 13 ++ .../session-manager/impl-interfaces.h | 13 ++ .../extensions/session-manager/interfaces.h | 9 ++ .../session-manager/introspect-funcs.h | 9 ++ .../extensions/session-manager/introspect.h | 9 ++ .../extensions/session-manager/keys.h | 9 ++ src/pipewire/factory.h | 12 ++ src/pipewire/filter.h | 4 +- src/pipewire/global.h | 2 +- src/pipewire/i18n.h | 12 ++ src/pipewire/impl-client.h | 4 +- src/pipewire/impl-core.h | 2 +- src/pipewire/impl-device.h | 2 +- src/pipewire/impl-factory.h | 2 +- src/pipewire/impl-link.h | 2 +- src/pipewire/impl-metadata.h | 2 +- src/pipewire/impl-module.h | 4 +- src/pipewire/impl-node.h | 2 +- src/pipewire/impl-port.h | 2 +- src/pipewire/impl.h | 4 + src/pipewire/keys.h | 2 +- src/pipewire/link.h | 2 +- src/pipewire/loop.h | 2 +- src/pipewire/main-loop.h | 2 +- src/pipewire/map.h | 2 +- src/pipewire/module.h | 12 ++ src/pipewire/node.h | 2 +- src/pipewire/permission.h | 2 +- src/pipewire/pipewire.h | 3 +- src/pipewire/port.h | 2 +- src/pipewire/properties.h | 2 +- src/pipewire/protocol.h | 2 +- src/pipewire/proxy.h | 2 +- src/pipewire/resource.h | 2 +- src/pipewire/stream.h | 4 +- src/pipewire/thread-loop.h | 4 +- src/pipewire/thread.h | 11 +- src/pipewire/type.h | 2 +- src/pipewire/utils.h | 2 +- src/pipewire/work-queue.h | 2 +- test/pwtest.h | 2 +- 95 files changed, 588 insertions(+), 154 deletions(-) create mode 100644 doc/api-tree.dox diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index a3b156f5c..df4b577f7 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -9,6 +9,7 @@ EXTRACT_ALL = YES EXTRACT_STATIC = YES FULL_PATH_NAMES = YES STRIP_FROM_PATH = @path_prefixes@ +STRIP_FROM_INC_PATH = @path_prefixes@ SHOW_INCLUDE_FILES = NO GENERATE_TODOLIST = NO GENERATE_TESTLIST = NO diff --git a/doc/api-tree.dox b/doc/api-tree.dox new file mode 100644 index 000000000..02d7c0bd7 --- /dev/null +++ b/doc/api-tree.dox @@ -0,0 +1,127 @@ +/** + +\defgroup api_pw_core Core API +\brief PipeWire Core API +\{ +\addtogroup pw_pipewire +\addtogroup pw_context +\addtogroup pw_client +\addtogroup pw_core +\addtogroup pw_device +\addtogroup pw_factory +\addtogroup pw_link +\addtogroup pw_loop +\addtogroup pw_module +\addtogroup pw_node +\addtogroup pw_permission +\addtogroup pw_port +\addtogroup pw_proxy +\addtogroup pw_registry +\addtogroup pw_type +\addtogroup pw_keys +\} + +\defgroup api_pw_impl Implementation API +\brief PipeWire Object Implementation API +\{ +\addtogroup pw_impl_client +\addtogroup pw_impl_core +\addtogroup pw_impl_device +\addtogroup pw_impl_factory +\addtogroup pw_impl_link +\addtogroup pw_impl_metadata +\addtogroup pw_impl_module +\addtogroup pw_impl_node +\addtogroup pw_impl_port +\addtogroup pw_buffers +\addtogroup pw_control +\addtogroup pw_data_loop +\addtogroup pw_global +\addtogroup pw_protocol +\addtogroup pw_resource +\addtogroup pw_thread_loop +\addtogroup pw_work_queue +\} + +\defgroup api_pw_util Utilities +\brief PipeWire Utilities +\{ +\addtogroup pw_array +\addtogroup pw_conf +\addtogroup pw_gettext +\addtogroup pw_log +\addtogroup pw_main_loop +\addtogroup pw_map +\addtogroup pw_memblock +\addtogroup pw_properties +\addtogroup pw_thread +\addtogroup pw_utils +\} + +\defgroup api_pw_ext Extensions +\brief PipeWire Extensions +\{ +\addtogroup pw_client_node +\addtogroup pw_metadata +\addtogroup pw_profiler +\addtogroup pw_protocol_native +\addtogroup pw_session_manager +\{ +\addtogroup pw_session_manager_impl +\} +\} + +\defgroup api_spa SPA +\brief Simple Plugin API +\{ +\addtogroup spa_buffer +\addtogroup spa_control +\addtogroup spa_debug +\addtogroup spa_device +\addtogroup spa_graph +\addtogroup spa_node +\addtogroup spa_param +\addtogroup spa_pod +\defgroup spa_utils Utilities +\{ +\addtogroup spa_ansi +\addtogroup spa_utils_defs +\addtogroup spa_dict +\addtogroup spa_list +\addtogroup spa_hooks +\addtogroup spa_interfaces +\addtogroup spa_json +\addtogroup spa_keys +\addtogroup spa_names +\addtogroup spa_result +\addtogroup spa_ringbuffer +\addtogroup spa_string +\addtogroup spa_types +\} +\defgroup spa_support Support +\{ +\addtogroup spa_cpu +\addtogroup spa_dbus +\addtogroup spa_i18n +\addtogroup spa_log +\addtogroup spa_loop +\addtogroup spa_handle +\addtogroup spa_plugin_loader +\addtogroup spa_system +\addtogroup spa_thread +\} +\} + +\defgroup pw_stream Stream API +\{ +\} + +\defgroup pw_filter Filter API +\{ +\} + +\defgroup pwtest Test Suite +\{ +\} + +*/ diff --git a/doc/api.dox b/doc/api.dox index dc624b465..231aa304f 100644 --- a/doc/api.dox +++ b/doc/api.dox @@ -1,15 +1,23 @@ -/** \page page_api API Documentation +/** \page page_api PipeWire API -The API consists of two parts: +The PipeWire API consists of several parts: -- The \ref page_core_api to access a PipeWire instance. This API is used +- The \ref pw_stream for a convenient way to send and receive data streams from/to PipeWire. + +- The \ref pw_filter for a convenient way to implement processing filters. + +- The \ref api_pw_core to access a PipeWire instance. This API is used by all clients that need to communicate with the \ref page_daemon and provides the necessary structs to interface with the daemon. -- The \ref page_implementation_api and tools to build new objects and modules. -This API is primarily used by the \ref page_daemon itself but also by the + +- The \ref api_pw_impl is primarily used by the \ref page_daemon itself but also by the \ref page_session_manager and modules/extensions that need to build objects in the graph. +- The \ref api_pw_util containing various utility functions and structures. + +- The \ref api_pw_ext for interfacing with certain extension modules. + The APIs work through proxy objects, so that calling a method on an object invokes that same method on the remote side. Marshalling and de-marshalling is handled transparently by the \ref page_module_protocol_native. @@ -48,47 +56,32 @@ digraph API { } \enddot -It is common for clients to use both the Core API and the Implementation API +It is common for clients to use both the \ref api_pw_core and the \ref api_pw_impl and both APIs are provided by the same library. -\section page_core_api Core API -The Core API serves to access a PipeWire instance. This API is used by all -clients to communicate with the \ref page_daemon. It consists of the -following object-specific APIs: -- \ref pw_core -- \ref pw_context -- \ref pw_global -- \ref pw_client -- \ref pw_resource -- \ref pw_node -- \ref pw_port -- \ref pw_link + + +\addtogroup api_pw_core Core API + +The Core API to access a PipeWire instance. This API is used by all +clients to communicate with the \ref page_daemon. If you are familiar with Wayland implementation, the Core API is roughly equivalent to libwayland-client. -\section page_implementation_api Implementation API +See: \ref page_api + + +\addtogroup api_pw_impl Implementation API The implementation API provides the tools to build new objects and -modules. It consists of the following object-specific APIs: - -- \ref pw_impl_core -- \ref pw_impl_client -- \ref pw_impl_device -- \ref pw_impl_factory -- \ref pw_impl_link -- \ref pw_impl_metadata -- \ref pw_impl_module -- \ref pw_impl_node -- \ref pw_impl_port -- \ref pw_control -- \ref pw_global -- \ref pw_resource -- \ref pw_work_queue +modules. If you are familiar with Wayland implementation, the Implementation API is roughly equivalent to libwayland-server. +See: \ref page_api + */ diff --git a/doc/index.dox b/doc/index.dox index ce733bafa..fa501c273 100644 --- a/doc/index.dox +++ b/doc/index.dox @@ -35,5 +35,4 @@ More information on how to configure and use PipeWire. - [LAC 2020 Paper](https://lac2020.sciencesconf.org/307881/document) - [PipeWire Under The Hood](https://venam.nixers.net/blog/unix/2021/06/23/pipewire-under-the-hood.html) - */ diff --git a/doc/meson.build b/doc/meson.build index 1d469c5a4..8b5436b0d 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -12,10 +12,55 @@ else doxyfile_conf.set('HAVE_DOT', 'NO') endif +# Note: order here is how doxygen will expose the pages in the sidebar +# api-tree.dox should be first to determine ordering of Modules. +extra_docs = [ + 'api-tree.dox', + 'index.dox', + 'overview.dox', + 'pipewire.dox', + 'pipewire-design.dox', + 'pipewire-access.dox', + 'pipewire-midi.dox', + 'pipewire-portal.dox', + 'pipewire-daemon.dox', + 'pipewire-library.dox', + 'pipewire-modules.dox', + 'pipewire-tools.dox', + 'pipewire-session-manager.dox', + 'pipewire-objects-design.dox', + 'pipewire-audio.dox', + 'media-session.dox', + 'tutorial.dox', + 'tutorial1.dox', + 'tutorial2.dox', + 'tutorial3.dox', + 'tutorial4.dox', + 'tutorial5.dox', + 'tutorial6.dox', + 'api.dox', + 'spa-index.dox', + 'spa-plugins.dox', + 'spa-design.dox', + 'spa-pod.dox', + 'spa-buffer.dox', + 'pulseaudio.dox', + 'dma-buf.dox', +] + inputs = [] +foreach extra : extra_docs + inputs += meson.source_root() / 'doc' / extra +endforeach foreach h : pipewire_headers inputs += meson.source_root() / 'src' / 'pipewire' / h endforeach +foreach h : pipewire_ext_headers + inputs += meson.source_root() / 'src' / 'pipewire' / 'extensions' / h +endforeach +foreach h : pipewire_ext_sm_headers + inputs += meson.source_root() / 'src' / 'pipewire' / 'extensions' / h +endforeach foreach h : pipewire_sources inputs += meson.source_root() / 'src' / 'pipewire' / h endforeach @@ -34,44 +79,6 @@ path_prefixes = [ meson.source_root(), ] -# Note: order here is how doxygen will expose the pages in the sidebar -extra_docs = [ - 'index.dox', - 'overview.dox', - 'pipewire.dox', - 'pipewire-design.dox', - 'pipewire-access.dox', - 'pipewire-midi.dox', - 'pipewire-portal.dox', - 'pipewire-daemon.dox', - 'pipewire-library.dox', - 'pipewire-modules.dox', - 'pipewire-tools.dox', - 'pipewire-session-manager.dox', - 'pipewire-objects-design.dox', - 'pipewire-audio.dox', - 'media-session.dox', - 'api.dox', - 'tutorial.dox', - 'tutorial1.dox', - 'tutorial2.dox', - 'tutorial3.dox', - 'tutorial4.dox', - 'tutorial5.dox', - 'tutorial6.dox', - 'spa-index.dox', - 'spa-plugins.dox', - 'spa-design.dox', - 'spa-pod.dox', - 'spa-buffer.dox', - 'pulseaudio.dox', - 'dma-buf.dox', -] - -foreach extra : extra_docs - inputs += meson.source_root() / 'doc' / extra -endforeach - cssfiles = [ meson.source_root() / 'doc' / 'doxygen-awesome.css', meson.source_root() / 'doc' / 'custom.css' diff --git a/doc/spa-buffer.dox b/doc/spa-buffer.dox index 64d1a6b30..1607d8120 100644 --- a/doc/spa-buffer.dox +++ b/doc/spa-buffer.dox @@ -2,7 +2,7 @@ > What is the array of `spa_data` in `spa_buffer`? -A buffer contains metadata and data. There can be many metadata items (headers, color info, cursor position, etc) in the buffer. The metadata items are stored in the metas array. In the same way, the buffer can contain multiple data blocks in the datas array. Each data block is, for example, a video plane or an audio channel. There are `n_datas` of those blocks. +A \ref spa_buffer "SPA Buffer" contains metadata and data. There can be many metadata items (headers, color info, cursor position, etc) in the buffer. The metadata items are stored in the metas array. In the same way, the buffer can contain multiple data blocks in the datas array. Each data block is, for example, a video plane or an audio channel. There are `n_datas` of those blocks. > What is the `void*` data pointer in `spa_data`? @@ -62,4 +62,10 @@ The reason why is this set up like this is that the metadata memory, the data an Taken from [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/11f95fe11e07192cec19fddb4fafc708e023e49c/spa/include/spa/buffer/alloc.h). + + +\addtogroup spa_buffer + +See: \ref page_spa_buffer + */ diff --git a/doc/spa-index.dox b/doc/spa-index.dox index df5ec914b..2c54c752f 100644 --- a/doc/spa-index.dox +++ b/doc/spa-index.dox @@ -1,6 +1,6 @@ /** \page page_spa SPA (Simple Plugin API) -SPA (Simple Plugin API) is an extensible API to implement all kinds of +\ref api_spa (Simple Plugin API) is an extensible API to implement all kinds of plugins. It is inspired by many other plugin APIs, mostly LV2 and @@ -70,9 +70,15 @@ Please see \ref page_spa_plugins for the details on how to use SPA plugins. ## Further details +- \ref api_spa - \subpage page_spa_design - \subpage page_spa_plugins - \subpage page_spa_pod - \subpage page_spa_buffer + +\addtogroup api_spa + +See: \ref page_spa, \ref page_spa_design + */ diff --git a/doc/spa-plugins.dox b/doc/spa-plugins.dox index c615c4404..d4f53bd17 100644 --- a/doc/spa-plugins.dox +++ b/doc/spa-plugins.dox @@ -1,6 +1,6 @@ /** \page page_spa_plugins SPA Plugins -Plugins are dynamically loadable objects that contain objects and interfaces that +\ref spa_handle "SPA plugins" are dynamically loadable objects that contain objects and interfaces that can be introspected and used at runtime in any application. This document introduces the basic concepts of SPA plugins. It first covers using the API and then talks about implementing new Plugins. @@ -346,4 +346,10 @@ expected_seq = SPA_RESULT_ASYNC_SEQ(res); FIXME + + +\addtogroup spa_handle + +See: \ref page_spa_plugins + */ diff --git a/doc/spa-pod.dox b/doc/spa-pod.dox index cf91480e7..3ec46bae8 100644 --- a/doc/spa-pod.dox +++ b/doc/spa-pod.dox @@ -1,6 +1,6 @@ /** \page page_spa_pod SPA POD -POD (plain old data) is a sort of data container. It is comparable to +\ref spa_pod (plain old data) is a sort of data container. It is comparable to DBus Variant or LV2 Atom. A POD can express nested structures of Objects (with properties), Vectors, @@ -519,4 +519,8 @@ field specifies the size following the type field. Each POD is aligned to an 8 byte boundary. +\addtogroup spa_pod + +See: \ref page_spa_pod + */ diff --git a/spa/include/spa/buffer/buffer.h b/spa/include/spa/buffer/buffer.h index 22ae2f609..c4aa8a556 100644 --- a/spa/include/spa/buffer/buffer.h +++ b/spa/include/spa/buffer/buffer.h @@ -31,7 +31,7 @@ extern "C" { #include #include -/** \defgroup spa_buffer SPA Buffers +/** \defgroup spa_buffer Buffers * * Buffers describe the data and metadata that is exchanged between * ports of a node. diff --git a/spa/include/spa/control/control.h b/spa/include/spa/control/control.h index c94e109b7..ea2ddc9e0 100644 --- a/spa/include/spa/control/control.h +++ b/spa/include/spa/control/control.h @@ -32,7 +32,7 @@ extern "C" { #include #include -/** \defgroup spa_control SPA Controls +/** \defgroup spa_control Control * */ diff --git a/spa/include/spa/debug/buffer.h b/spa/include/spa/debug/buffer.h index f35873e23..a5702054a 100644 --- a/spa/include/spa/debug/buffer.h +++ b/spa/include/spa/debug/buffer.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup spa_debug SPA Debug +/** \defgroup spa_debug Debug * */ diff --git a/spa/include/spa/graph/graph.h b/spa/include/spa/graph/graph.h index 99a96b864..71c0e151a 100644 --- a/spa/include/spa/graph/graph.h +++ b/spa/include/spa/graph/graph.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup spa_graph SPA Graph +/** \defgroup spa_graph Graph */ /** diff --git a/spa/include/spa/monitor/device.h b/spa/include/spa/monitor/device.h index 65c784d99..481874d18 100644 --- a/spa/include/spa/monitor/device.h +++ b/spa/include/spa/monitor/device.h @@ -35,7 +35,7 @@ extern "C" { #include /** - * \defgroup spa_device SPA Device + * \defgroup spa_device Device * * The device interface can be used to monitor all kinds of devices * and create objects as a result. Objects a typically other diff --git a/spa/include/spa/monitor/event.h b/spa/include/spa/monitor/event.h index 50934f456..7b8a25600 100644 --- a/spa/include/spa/monitor/event.h +++ b/spa/include/spa/monitor/event.h @@ -31,6 +31,11 @@ extern "C" { #include +/** + * \addtogroup spa_device + * \{ + */ + /* object id of SPA_TYPE_EVENT_Device */ enum spa_device_event { SPA_DEVICE_EVENT_ObjectConfig, @@ -47,6 +52,10 @@ enum spa_event_device { SPA_EVENT_DEVICE_Props, /* properties for an object (SPA_TYPE_OBJECT_Props) */ }; +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/include/spa/monitor/type-info.h b/spa/include/spa/monitor/type-info.h index 289a1eeac..4234c607d 100644 --- a/spa/include/spa/monitor/type-info.h +++ b/spa/include/spa/monitor/type-info.h @@ -33,6 +33,11 @@ extern "C" { #include +/** + * \addtogroup spa_device + * \{ + */ + #define SPA_TYPE_INFO_DeviceEvent SPA_TYPE_INFO_EVENT_BASE "Device" #define SPA_TYPE_INFO_DEVICE_EVENT_BASE SPA_TYPE_INFO_DeviceEvent ":" @@ -51,6 +56,10 @@ static const struct spa_type_info spa_type_device_event[] = { { 0, 0, NULL, NULL }, }; +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/include/spa/monitor/utils.h b/spa/include/spa/monitor/utils.h index 7a3e7ced6..169fe4700 100644 --- a/spa/include/spa/monitor/utils.h +++ b/spa/include/spa/monitor/utils.h @@ -32,6 +32,11 @@ extern "C" { #include #include +/** + * \addtogroup spa_device + * \{ + */ + struct spa_result_device_params_data { struct spa_pod_builder *builder; struct spa_result_device_params data; @@ -90,6 +95,10 @@ static inline int spa_device_enum_params_sync(struct spa_device *device, #define spa_device_emit_event(hooks,e) spa_device_emit(hooks,event, 0, e) #define spa_device_emit_object_info(hooks,id,i) spa_device_emit(hooks,object_info, 0, id, i) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/include/spa/node/node.h b/spa/include/spa/node/node.h index 4b421c137..f32adec16 100644 --- a/spa/include/spa/node/node.h +++ b/spa/include/spa/node/node.h @@ -29,7 +29,8 @@ extern "C" { #endif -/** \defgroup spa_node SPA Nodes +/** \defgroup spa_node Node + * * A spa_node is a component that can consume and produce buffers. */ diff --git a/spa/include/spa/param/latency-utils.h b/spa/include/spa/param/latency-utils.h index 01ac2acac..05638362f 100644 --- a/spa/include/spa/param/latency-utils.h +++ b/spa/include/spa/param/latency-utils.h @@ -29,6 +29,10 @@ extern "C" { #endif +/** + * \addtogroup spa_param + * \{ + */ #include #include @@ -158,6 +162,10 @@ spa_process_latency_info_add(const struct spa_process_latency_info *process, return 0; } +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/include/spa/param/param.h b/spa/include/spa/param/param.h index f35eb518f..86a593976 100644 --- a/spa/include/spa/param/param.h +++ b/spa/include/spa/param/param.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup spa_param SPA Parameters +/** \defgroup spa_param Parameters */ /** diff --git a/spa/include/spa/pod/builder.h b/spa/include/spa/pod/builder.h index 8bb58676e..6f1ed639e 100644 --- a/spa/include/spa/pod/builder.h +++ b/spa/include/spa/pod/builder.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup spa_pod SPA POD +/** \defgroup spa_pod POD */ /** diff --git a/spa/include/spa/support/cpu.h b/spa/include/spa/support/cpu.h index ce3883c65..74854f62c 100644 --- a/spa/include/spa/support/cpu.h +++ b/spa/include/spa/support/cpu.h @@ -34,12 +34,12 @@ extern "C" { #include #include -/** \defgroup spa_support SPA Support Features +/** \defgroup spa_cpu CPU * */ /** - * \addtogroup spa_support + * \addtogroup spa_cpu * \{ */ diff --git a/spa/include/spa/support/dbus.h b/spa/include/spa/support/dbus.h index 23b5314b8..2e2ee8549 100644 --- a/spa/include/spa/support/dbus.h +++ b/spa/include/spa/support/dbus.h @@ -31,8 +31,12 @@ extern "C" { #include +/** \defgroup spa_dbus DBus + * + */ + /** - * \addtogroup spa_support + * \addtogroup spa_dbus * \{ */ diff --git a/spa/include/spa/support/i18n.h b/spa/include/spa/support/i18n.h index e135e9e3f..5864582d7 100644 --- a/spa/include/spa/support/i18n.h +++ b/spa/include/spa/support/i18n.h @@ -32,8 +32,12 @@ extern "C" { #include #include +/** \defgroup spa_i18n I18N + * + */ + /** - * \addtogroup spa_support + * \addtogroup spa_i18n * \{ */ diff --git a/spa/include/spa/support/log.h b/spa/include/spa/support/log.h index d25fe50ca..2abeee73e 100644 --- a/spa/include/spa/support/log.h +++ b/spa/include/spa/support/log.h @@ -35,7 +35,7 @@ extern "C" { #include #include -/** \defgroup spa_log SPA Logging +/** \defgroup spa_log Log */ /** diff --git a/spa/include/spa/support/loop.h b/spa/include/spa/support/loop.h index be0ca357c..1ee11fda4 100644 --- a/spa/include/spa/support/loop.h +++ b/spa/include/spa/support/loop.h @@ -33,8 +33,12 @@ extern "C" { #include #include +/** \defgroup spa_loop Loop + * + */ + /** - * \addtogroup spa_support + * \addtogroup spa_loop * \{ */ diff --git a/spa/include/spa/support/plugin-loader.h b/spa/include/spa/support/plugin-loader.h index 800145357..fb8f858ab 100644 --- a/spa/include/spa/support/plugin-loader.h +++ b/spa/include/spa/support/plugin-loader.h @@ -32,8 +32,12 @@ extern "C" { #include #include +/** \defgroup spa_plugin_loader Plugin Loader + * + */ + /** - * \addtogroup spa_support + * \addtogroup spa_plugin_loader * \{ */ diff --git a/spa/include/spa/support/plugin.h b/spa/include/spa/support/plugin.h index e1a2a680e..04f368e3a 100644 --- a/spa/include/spa/support/plugin.h +++ b/spa/include/spa/support/plugin.h @@ -33,7 +33,7 @@ extern "C" { #include /** - * \defgroup spa_handle SPA Plugin Handles + * \defgroup spa_handle Plugin Handle */ /** diff --git a/spa/include/spa/support/system.h b/spa/include/spa/support/system.h index f125c476e..9a960b93c 100644 --- a/spa/include/spa/support/system.h +++ b/spa/include/spa/support/system.h @@ -37,8 +37,12 @@ struct itimerspec; #include #include +/** \defgroup spa_system System + * + */ + /** - * \addtogroup spa_support + * \addtogroup spa_system * \{ */ diff --git a/spa/include/spa/support/thread.h b/spa/include/spa/support/thread.h index 560685171..75d108601 100644 --- a/spa/include/spa/support/thread.h +++ b/spa/include/spa/support/thread.h @@ -36,8 +36,12 @@ extern "C" { #include #include +/** \defgroup spa_thread Thread + * + */ + /** - * \addtogroup spa_support + * \addtogroup spa_thread * \{ */ diff --git a/spa/include/spa/utils/ansi.h b/spa/include/spa/utils/ansi.h index 505e19dd4..fac677464 100644 --- a/spa/include/spa/utils/ansi.h +++ b/spa/include/spa/utils/ansi.h @@ -29,11 +29,13 @@ extern "C" { #endif -/** \defgroup spa_utils SPA Utils +/** + * \defgroup spa_ansi ANSI codes + * */ /** - * \addtogroup spa_utils + * \addtogroup spa_ansi * \{ */ diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h index f55117b45..0f32a9af7 100644 --- a/spa/include/spa/utils/defs.h +++ b/spa/include/spa/utils/defs.h @@ -37,11 +37,13 @@ extern "C" { #include #include -/** \defgroup spa_utils SPA Utils +/** + * \defgroup spa_utils_defs Miscellaneous + * */ /** - * \addtogroup spa_utils + * \addtogroup spa_utils_defs * \{ */ diff --git a/spa/include/spa/utils/dict.h b/spa/include/spa/utils/dict.h index bb401aaf0..bf1a0543b 100644 --- a/spa/include/spa/utils/dict.h +++ b/spa/include/spa/utils/dict.h @@ -34,7 +34,12 @@ extern "C" { #include /** - * \addtogroup spa_utils + * \defgroup spa_dict Dictionary + * + */ + +/** + * \addtogroup spa_dict * \{ */ diff --git a/spa/include/spa/utils/hook.h b/spa/include/spa/utils/hook.h index 1206ce025..6b88fea15 100644 --- a/spa/include/spa/utils/hook.h +++ b/spa/include/spa/utils/hook.h @@ -32,7 +32,7 @@ extern "C" { #include #include -/** \defgroup spa_interfaces SPA Interfaces +/** \defgroup spa_interfaces Interfaces * * \brief Generic implementation of implementation-independent interfaces * @@ -230,7 +230,7 @@ struct spa_interface { * \} */ -/** \defgroup spa_hooks SPA Hooks +/** \defgroup spa_hooks Hooks * * A SPA Hook is a data structure to keep track of callbacks. It is similar to * the \ref spa_interfaces and typically used where an implementation allows diff --git a/spa/include/spa/utils/json.h b/spa/include/spa/utils/json.h index 671918d6f..131194b4b 100644 --- a/spa/include/spa/utils/json.h +++ b/spa/include/spa/utils/json.h @@ -37,7 +37,7 @@ extern "C" { #include -/** \defgroup spa_json SPA JSON Parser +/** \defgroup spa_json JSON */ /** diff --git a/spa/include/spa/utils/keys.h b/spa/include/spa/utils/keys.h index b9608e995..ee68f404c 100644 --- a/spa/include/spa/utils/keys.h +++ b/spa/include/spa/utils/keys.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup spa_keys SPA Key Names +/** \defgroup spa_keys Key Names */ /** diff --git a/spa/include/spa/utils/list.h b/spa/include/spa/utils/list.h index 06da136db..fd91e356e 100644 --- a/spa/include/spa/utils/list.h +++ b/spa/include/spa/utils/list.h @@ -30,7 +30,12 @@ extern "C" { #endif /** - * \addtogroup spa_utils + * \defgroup spa_list List + * + */ + +/** + * \addtogroup spa_list List * \{ */ diff --git a/spa/include/spa/utils/names.h b/spa/include/spa/utils/names.h index 10c9ba8fa..98afba65c 100644 --- a/spa/include/spa/utils/names.h +++ b/spa/include/spa/utils/names.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup spa_names SPA Factory Names +/** \defgroup spa_names Factory Names */ /** diff --git a/spa/include/spa/utils/result.h b/spa/include/spa/utils/result.h index 6138bb7fa..e0205b109 100644 --- a/spa/include/spa/utils/result.h +++ b/spa/include/spa/utils/result.h @@ -30,7 +30,12 @@ extern "C" { #endif /** - * \addtogroup spa_utils + * \defgroup spa_result Result handling + * + */ + +/** + * \addtogroup spa_result * \{ */ diff --git a/spa/include/spa/utils/ringbuffer.h b/spa/include/spa/utils/ringbuffer.h index 4bde3347a..1f413c49b 100644 --- a/spa/include/spa/utils/ringbuffer.h +++ b/spa/include/spa/utils/ringbuffer.h @@ -30,7 +30,12 @@ extern "C" { #endif /** - * \addtogroup spa_utils + * \defgroup spa_ringbuffer Ringbuffer + * + */ + +/** + * \addtogroup spa_ringbuffer * \{ */ diff --git a/spa/include/spa/utils/string.h b/spa/include/spa/utils/string.h index 11a222292..ee44980ec 100644 --- a/spa/include/spa/utils/string.h +++ b/spa/include/spa/utils/string.h @@ -36,7 +36,12 @@ extern "C" { #include /** - * \addtogroup spa_utils + * \defgroup spa_string String handling + * + */ + +/** + * \addtogroup spa_string * \{ */ @@ -45,7 +50,6 @@ extern "C" { * * If both \a a and \a b are NULL, the two are considered equal. * - * \ingroup spa */ static inline bool spa_streq(const char *s1, const char *s2) { diff --git a/spa/include/spa/utils/type.h b/spa/include/spa/utils/type.h index 3682ef8ad..178b0857d 100644 --- a/spa/include/spa/utils/type.h +++ b/spa/include/spa/utils/type.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \defgroup spa_types SPA Types +/** \defgroup spa_types Types */ /** diff --git a/src/pipewire/array.h b/src/pipewire/array.h index 7fecb6434..4a7cbd4d2 100644 --- a/src/pipewire/array.h +++ b/src/pipewire/array.h @@ -33,7 +33,7 @@ extern "C" { #include -/** \defgroup pw_array Array Objects +/** \defgroup pw_array Array * * \brief An array object * diff --git a/src/pipewire/buffers.h b/src/pipewire/buffers.h index ee4a90df1..4fdded81c 100644 --- a/src/pipewire/buffers.h +++ b/src/pipewire/buffers.h @@ -34,6 +34,14 @@ extern "C" { #endif +/** \defgroup pw_buffers Buffers + */ + +/** + * \addtogroup pw_buffers + * \{ + */ + #define PW_BUFFERS_FLAG_NONE 0 #define PW_BUFFERS_FLAG_NO_MEM (1<<0) /**< don't allocate buffer memory */ #define PW_BUFFERS_FLAG_SHARED (1<<1) /**< buffers can be shared */ @@ -53,6 +61,10 @@ int pw_buffers_negotiate(struct pw_context *context, uint32_t flags, void pw_buffers_clear(struct pw_buffers *buffers); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/client.h b/src/pipewire/client.h index cd1aaff5a..0fb8afcfd 100644 --- a/src/pipewire/client.h +++ b/src/pipewire/client.h @@ -35,7 +35,7 @@ extern "C" { #include #include -/** \defgroup pw_client PipeWire Client +/** \defgroup pw_client Client * */ diff --git a/src/pipewire/conf.h b/src/pipewire/conf.h index 2aaf75ac5..c29b8d40d 100644 --- a/src/pipewire/conf.h +++ b/src/pipewire/conf.h @@ -24,9 +24,22 @@ #include +/** \defgroup pw_conf Configuration + * + */ + +/** + * \addtogroup pw_conf + * \{ + */ + int pw_conf_load_conf(const char *prefix, const char *name, struct pw_properties *conf); int pw_conf_load_state(const char *prefix, const char *name, struct pw_properties *conf); int pw_conf_save_state(const char *prefix, const char *name, const struct pw_properties *conf); int pw_context_parse_conf_section(struct pw_context *context, struct pw_properties *conf, const char *section); + +/** + * \} + */ diff --git a/src/pipewire/context.h b/src/pipewire/context.h index 8741270dd..ebe5dae11 100644 --- a/src/pipewire/context.h +++ b/src/pipewire/context.h @@ -32,7 +32,7 @@ extern "C" { #include #include -/** \defgroup pw_context PipeWire Context +/** \defgroup pw_context Context * * \brief The PipeWire context object manages all locally available * resources. It is used by both clients and servers. diff --git a/src/pipewire/core.h b/src/pipewire/core.h index bad5a4948..5995b36dd 100644 --- a/src/pipewire/core.h +++ b/src/pipewire/core.h @@ -34,7 +34,7 @@ extern "C" { #include -/** \defgroup pw_core The PipeWire Core Global Object +/** \defgroup pw_core Core * * \brief The core global object. * @@ -112,7 +112,6 @@ void pw_core_info_free(struct pw_core_info *info); /** \struct pw_core_events * \brief Core events - * \ingroup pw_core_interface The pw_core interface */ struct pw_core_events { #define PW_VERSION_CORE_EVENTS 0 diff --git a/src/pipewire/data-loop.h b/src/pipewire/data-loop.h index f65f97abb..307087d53 100644 --- a/src/pipewire/data-loop.h +++ b/src/pipewire/data-loop.h @@ -31,7 +31,9 @@ extern "C" { #include -/** \defgroup pw_data_loop PipeWire rt-loop object +/** \defgroup pw_data_loop Data Loop + * + * \brief PipeWire rt-loop object * * This loop starts a new real-time thread that * is designed to run the processing graph. diff --git a/src/pipewire/device.h b/src/pipewire/device.h index 76d809bc4..dd09ecf9b 100644 --- a/src/pipewire/device.h +++ b/src/pipewire/device.h @@ -34,6 +34,15 @@ extern "C" { #include +/** \defgroup pw_device Device + * + */ + +/** + * \addtogroup pw_device + * \{ + */ + #define PW_TYPE_INTERFACE_Device PW_TYPE_INFO_INTERFACE_BASE "Device" #define PW_VERSION_DEVICE 3 @@ -158,6 +167,10 @@ struct pw_device_methods { #define pw_device_enum_params(c,...) pw_device_method(c,enum_params,0,__VA_ARGS__) #define pw_device_set_param(c,...) pw_device_method(c,set_param,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/client-node.h b/src/pipewire/extensions/client-node.h index 1efd13389..1ad9a30d9 100644 --- a/src/pipewire/extensions/client-node.h +++ b/src/pipewire/extensions/client-node.h @@ -32,6 +32,14 @@ extern "C" { #include #include +/** \defgroup pw_client_node Client Node + * + */ + +/** + * \addtogroup pw_client_node + * \{ + */ #define PW_TYPE_INTERFACE_ClientNode PW_TYPE_INFO_INTERFACE_BASE "ClientNode" #define PW_VERSION_CLIENT_NODE 4 @@ -338,6 +346,10 @@ pw_client_node_get_node(struct pw_client_node *p, uint32_t version, size_t user_ #define pw_client_node_event(c,...) pw_client_node_method(c,event,0,__VA_ARGS__) #define pw_client_node_port_buffers(c,...) pw_client_node_method(c,port_buffers,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/metadata.h b/src/pipewire/extensions/metadata.h index bfed4e02a..662218e8f 100644 --- a/src/pipewire/extensions/metadata.h +++ b/src/pipewire/extensions/metadata.h @@ -31,6 +31,14 @@ extern "C" { #include +/** \defgroup pw_metadata Metadata + * + */ + +/** + * \addtogroup pw_metadata + * \{ + */ #define PW_TYPE_INTERFACE_Metadata PW_TYPE_INFO_INTERFACE_BASE "Metadata" #define PW_VERSION_METADATA 3 @@ -93,6 +101,10 @@ struct pw_metadata_methods { #define PW_KEY_METADATA_NAME "metadata.name" +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/profiler.h b/src/pipewire/extensions/profiler.h index d17a646a2..301818276 100644 --- a/src/pipewire/extensions/profiler.h +++ b/src/pipewire/extensions/profiler.h @@ -31,6 +31,14 @@ extern "C" { #include +/** \defgroup pw_profiler Profiler + * + */ + +/** + * \addtogroup pw_profiler + * \{ + */ #define PW_TYPE_INTERFACE_Profiler PW_TYPE_INFO_INTERFACE_BASE "Profiler" #define PW_VERSION_PROFILER 3 @@ -76,6 +84,10 @@ struct pw_profiler_methods { #define PW_KEY_PROFILER_NAME "profiler.name" +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/protocol-native.h b/src/pipewire/extensions/protocol-native.h index 2dd2c3b4d..2973e3642 100644 --- a/src/pipewire/extensions/protocol-native.h +++ b/src/pipewire/extensions/protocol-native.h @@ -34,6 +34,14 @@ extern "C" { #include #include +/** \defgroup pw_protocol_native Native Protocol + * + */ + +/** + * \addtogroup pw_protocol_native + * \{ + */ #define PW_TYPE_INFO_PROTOCOL_Native PW_TYPE_INFO_PROTOCOL_BASE "Native" struct pw_protocol_native_message { @@ -86,6 +94,10 @@ struct pw_protocol_native_ext { #define pw_protocol_native_get_resource_fd(r,...) pw_protocol_ext(pw_resource_get_protocol(r),struct pw_protocol_native_ext,get_resource_fd,r,__VA_ARGS__) #define pw_protocol_native_end_resource(r,...) pw_protocol_ext(pw_resource_get_protocol(r),struct pw_protocol_native_ext,end_resource,r,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/session-manager.h b/src/pipewire/extensions/session-manager.h index 95e759b02..2f50cf282 100644 --- a/src/pipewire/extensions/session-manager.h +++ b/src/pipewire/extensions/session-manager.h @@ -26,9 +26,22 @@ #ifndef PIPEWIRE_EXT_SESSION_MANAGER_H #define PIPEWIRE_EXT_SESSION_MANAGER_H +/** \defgroup pw_session_manager Session Manager + * + */ + +/** + * \addtogroup pw_session_manager + * \{ + */ + #include "session-manager/introspect.h" #include "session-manager/interfaces.h" #include "session-manager/impl-interfaces.h" #include "session-manager/keys.h" +/** + * \} + */ + #endif /* PIPEWIRE_EXT_SESSION_MANAGER_H */ diff --git a/src/pipewire/extensions/session-manager/impl-interfaces.h b/src/pipewire/extensions/session-manager/impl-interfaces.h index ecfc9c7bc..bddf5288c 100644 --- a/src/pipewire/extensions/session-manager/impl-interfaces.h +++ b/src/pipewire/extensions/session-manager/impl-interfaces.h @@ -36,6 +36,15 @@ extern "C" { #endif +/** \defgroup pw_session_manager_impl Implementation + * + */ + +/** + * \addtogroup pw_session_manager_impl + * \{ + */ + #define PW_TYPE_INTERFACE_ClientEndpoint PW_TYPE_INFO_INTERFACE_BASE "ClientEndpoint" #define PW_VERSION_CLIENT_ENDPOINT 0 @@ -282,6 +291,10 @@ struct pw_client_session_methods { #define pw_client_session_update(o,...) pw_client_session_method(o,update,0,__VA_ARGS__) #define pw_client_session_link_update(o,...) pw_client_session_method(o,link_update,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/session-manager/interfaces.h b/src/pipewire/extensions/session-manager/interfaces.h index 5d3422224..c507f265f 100644 --- a/src/pipewire/extensions/session-manager/interfaces.h +++ b/src/pipewire/extensions/session-manager/interfaces.h @@ -35,6 +35,11 @@ extern "C" { #endif +/** + * \addtogroup pw_session_manager + * \{ + */ + #define PW_TYPE_INTERFACE_Session PW_TYPE_INFO_INTERFACE_BASE "Session" #define PW_VERSION_SESSION 0 struct pw_session; @@ -463,6 +468,10 @@ struct pw_endpoint_link_methods { #define pw_endpoint_link_request_state(c,...) pw_endpoint_link_method(c,request_state,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/session-manager/introspect-funcs.h b/src/pipewire/extensions/session-manager/introspect-funcs.h index 89e0f98cf..24df45d49 100644 --- a/src/pipewire/extensions/session-manager/introspect-funcs.h +++ b/src/pipewire/extensions/session-manager/introspect-funcs.h @@ -34,6 +34,11 @@ extern "C" { #endif +/** + * \addtogroup pw_session_manager + * \{ + */ + static inline struct pw_session_info * pw_session_info_update (struct pw_session_info *info, const struct pw_session_info *update) @@ -307,6 +312,10 @@ pw_endpoint_link_info_free (struct pw_endpoint_link_info *info) free(ext); } +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/session-manager/introspect.h b/src/pipewire/extensions/session-manager/introspect.h index 3df3c8066..2d50ba058 100644 --- a/src/pipewire/extensions/session-manager/introspect.h +++ b/src/pipewire/extensions/session-manager/introspect.h @@ -34,6 +34,11 @@ extern "C" { #endif +/** + * \addtogroup pw_session_manager + * \{ + */ + enum pw_endpoint_link_state { PW_ENDPOINT_LINK_STATE_ERROR = -1, PW_ENDPOINT_LINK_STATE_PREPARING, @@ -114,6 +119,10 @@ struct pw_endpoint_link_info { uint32_t n_params; /**< number of items in \a params */ }; +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/extensions/session-manager/keys.h b/src/pipewire/extensions/session-manager/keys.h index f92a52138..9ff89f9c9 100644 --- a/src/pipewire/extensions/session-manager/keys.h +++ b/src/pipewire/extensions/session-manager/keys.h @@ -30,6 +30,11 @@ extern "C" { #endif +/** + * \addtogroup pw_session_manager + * \{ + */ + #define PW_KEY_SESSION_ID "session.id" /**< id of a session manager */ #define PW_KEY_ENDPOINT_ID "endpoint.id" /**< id of an endpoint */ @@ -51,6 +56,10 @@ extern "C" { #define PW_KEY_ENDPOINT_LINK_INPUT_ENDPOINT "endpoint-link.input.endpoint" /**< input endpoint of link */ #define PW_KEY_ENDPOINT_LINK_INPUT_STREAM "endpoint-link.input.stream" /**< input stream of link */ +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/factory.h b/src/pipewire/factory.h index 96a6c5c78..513e4a66d 100644 --- a/src/pipewire/factory.h +++ b/src/pipewire/factory.h @@ -37,6 +37,14 @@ extern "C" { #include +/** \defgroup pw_factory Factory + * + */ + +/** + * \addtogroup pw_factory + * \{ + */ #define PW_TYPE_INTERFACE_Factory PW_TYPE_INFO_INTERFACE_BASE "Factory" #define PW_VERSION_FACTORY 3 @@ -104,6 +112,10 @@ struct pw_factory_methods { #define pw_factory_add_listener(c,...) pw_factory_method(c,add_listener,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/filter.h b/src/pipewire/filter.h index 5f8be0f47..01b6136a2 100644 --- a/src/pipewire/filter.h +++ b/src/pipewire/filter.h @@ -29,14 +29,14 @@ extern "C" { #endif -/** \defgroup pw_filter PipeWire Filter +/** \defgroup pw_filter Filter API * * \brief PipeWire filter object class * * The filter object provides a convenient way to implement * processing filters. * - * See also \ref page_core_api + * See also \ref api_pw_core */ /** diff --git a/src/pipewire/global.h b/src/pipewire/global.h index 279a9e188..1d49422d0 100644 --- a/src/pipewire/global.h +++ b/src/pipewire/global.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_global PipeWire Global Object +/** \defgroup pw_global Global * * \brief A global object visible to remote clients * diff --git a/src/pipewire/i18n.h b/src/pipewire/i18n.h index 08788f134..56139033f 100644 --- a/src/pipewire/i18n.h +++ b/src/pipewire/i18n.h @@ -29,6 +29,14 @@ extern "C" { #endif +/** \defgroup pw_gettext Internationalization + * + */ + +/** + * \addtogroup pw_gettext + * \{ + */ #include SPA_FORMAT_ARG_FUNC(1) const char *pw_gettext(const char *msgid); @@ -37,6 +45,10 @@ SPA_FORMAT_ARG_FUNC(1) const char *pw_ngettext(const char *msgid, const char *ms #define _(String) (pw_gettext(String)) #define N_(String) (String) +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-client.h b/src/pipewire/impl-client.h index be837ef5e..9672f65da 100644 --- a/src/pipewire/impl-client.h +++ b/src/pipewire/impl-client.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \page page_client Client +/** \page page_client Client Implementation * * \section sec_page_client_overview Overview * @@ -61,7 +61,7 @@ extern "C" { * See also \ref pw_resource */ -/** \defgroup pw_impl_client Client Object +/** \defgroup pw_impl_client Client Impl * * \brief PipeWire client object class * diff --git a/src/pipewire/impl-core.h b/src/pipewire/impl-core.h index 61b26dfa7..ec4107e4f 100644 --- a/src/pipewire/impl-core.h +++ b/src/pipewire/impl-core.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_impl_core PipeWire Core Interface +/** \defgroup pw_impl_core Core Impl * * \brief PipeWire core interface. * diff --git a/src/pipewire/impl-device.h b/src/pipewire/impl-device.h index a6ab70d7c..016d6dc46 100644 --- a/src/pipewire/impl-device.h +++ b/src/pipewire/impl-device.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_impl_device PipeWire Device Interface +/** \defgroup pw_impl_device Device Impl * * The device is an object that manages nodes. It typically * corresponds to a physical hardware device but it does not diff --git a/src/pipewire/impl-factory.h b/src/pipewire/impl-factory.h index f0333d919..f3cc54669 100644 --- a/src/pipewire/impl-factory.h +++ b/src/pipewire/impl-factory.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_impl_factory PipeWire Factory Interface +/** \defgroup pw_impl_factory Factory Impl * * The factory is used to make objects on demand. */ diff --git a/src/pipewire/impl-link.h b/src/pipewire/impl-link.h index 0907ddbe6..5a3b73f52 100644 --- a/src/pipewire/impl-link.h +++ b/src/pipewire/impl-link.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_impl_link Link Objects +/** \defgroup pw_impl_link Link Impl * * \brief PipeWire link object. */ diff --git a/src/pipewire/impl-metadata.h b/src/pipewire/impl-metadata.h index 8fddc2653..4b81cac29 100644 --- a/src/pipewire/impl-metadata.h +++ b/src/pipewire/impl-metadata.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_impl_metadata PipeWire Metadata Interface +/** \defgroup pw_impl_metadata Metadata Impl * * The metadata is used to store key/type/value pairs per object id. */ diff --git a/src/pipewire/impl-module.h b/src/pipewire/impl-module.h index 1ad3bf76b..281cd2a52 100644 --- a/src/pipewire/impl-module.h +++ b/src/pipewire/impl-module.h @@ -37,13 +37,13 @@ extern "C" { #define PIPEWIRE_SYMBOL_MODULE_INIT "pipewire__module_init" #define PIPEWIRE_MODULE_PREFIX "libpipewire-" -/** \defgroup pw_impl_module Dynamically loadable Module +/** \defgroup pw_impl_module Module Impl * * A dynamically loadable module */ /** - * \addtogropu pw_impl_module + * \addtogroup pw_impl_module * \{ */ struct pw_impl_module; diff --git a/src/pipewire/impl-node.h b/src/pipewire/impl-node.h index 565c02e41..781620cb3 100644 --- a/src/pipewire/impl-node.h +++ b/src/pipewire/impl-node.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_impl_node Node +/** \defgroup pw_impl_node Node Impl * * The node object processes data. The node has a list of * input and output ports (\ref pw_impl_port) on which it diff --git a/src/pipewire/impl-port.h b/src/pipewire/impl-port.h index 2ff16cb53..c27510445 100644 --- a/src/pipewire/impl-port.h +++ b/src/pipewire/impl-port.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \defgroup pw_impl_port Port Object +/** \defgroup pw_impl_port Port Impl * * \brief A port can be used to link two nodes. */ diff --git a/src/pipewire/impl.h b/src/pipewire/impl.h index 7fcb495be..8caa673fe 100644 --- a/src/pipewire/impl.h +++ b/src/pipewire/impl.h @@ -29,6 +29,10 @@ extern "C" { #endif +/** + * \addtogroup api_pw_impl + */ + struct pw_impl_client; struct pw_impl_module; struct pw_global; diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h index a70ef1d47..d541b9b3f 100644 --- a/src/pipewire/keys.h +++ b/src/pipewire/keys.h @@ -30,7 +30,7 @@ extern "C" { #endif /** - * \defgroup pw_keys PipeWire Keys + * \defgroup pw_keys Key Names * * A collection of keys that are used to add extra information on objects. * diff --git a/src/pipewire/link.h b/src/pipewire/link.h index 8fab23463..e1f3ff87c 100644 --- a/src/pipewire/link.h +++ b/src/pipewire/link.h @@ -34,7 +34,7 @@ extern "C" { #include -/** \defgroup pw_link PipeWire Link +/** \defgroup pw_link Link * * A link is the connection between 2 nodes (\ref pw_node). Nodes are * linked together on ports. diff --git a/src/pipewire/loop.h b/src/pipewire/loop.h index 896c96fe8..42a630d9f 100644 --- a/src/pipewire/loop.h +++ b/src/pipewire/loop.h @@ -32,7 +32,7 @@ extern "C" { #include #include -/** \defgroup pw_loop PipeWire Loop +/** \defgroup pw_loop Loop * * PipeWire loop object provides an implementation of * the spa loop interfaces. It can be used to implement various diff --git a/src/pipewire/main-loop.h b/src/pipewire/main-loop.h index 3b80a43cc..2225beee5 100644 --- a/src/pipewire/main-loop.h +++ b/src/pipewire/main-loop.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_main_loop PipeWire Main-Loop Interface +/** \defgroup pw_main_loop Main Loop * * A main loop object */ diff --git a/src/pipewire/map.h b/src/pipewire/map.h index b73574aff..42057f6a1 100644 --- a/src/pipewire/map.h +++ b/src/pipewire/map.h @@ -35,7 +35,7 @@ extern "C" { #include #include -/** \defgroup pw_map Map Objects +/** \defgroup pw_map Map * * \brief A map that holds objects indexed by id */ diff --git a/src/pipewire/module.h b/src/pipewire/module.h index a378fe53f..04c93d1b5 100644 --- a/src/pipewire/module.h +++ b/src/pipewire/module.h @@ -34,6 +34,14 @@ extern "C" { #include +/** \defgroup pw_module Module + * + */ + +/** + * \addtogroup pw_module + * \{ + */ #define PW_TYPE_INTERFACE_Module PW_TYPE_INFO_INTERFACE_BASE "Module" #define PW_VERSION_MODULE 3 @@ -102,6 +110,10 @@ struct pw_module_methods { #define pw_module_add_listener(c,...) pw_module_method(c,add_listener,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/node.h b/src/pipewire/node.h index 6a0091f27..30ab5aa4a 100644 --- a/src/pipewire/node.h +++ b/src/pipewire/node.h @@ -39,7 +39,7 @@ extern "C" { #include -/** \defgroup pw_node PipeWire Node +/** \defgroup pw_node Node * */ diff --git a/src/pipewire/permission.h b/src/pipewire/permission.h index 3eb2c7cae..e0274ddcb 100644 --- a/src/pipewire/permission.h +++ b/src/pipewire/permission.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \defgroup pw_permission PipeWire Permission +/** \defgroup pw_permission Permission * * Permissions are kept for a client and describe what the client is * allowed to do with an object. diff --git a/src/pipewire/pipewire.h b/src/pipewire/pipewire.h index 9ca2c491a..58b4ee1e6 100644 --- a/src/pipewire/pipewire.h +++ b/src/pipewire/pipewire.h @@ -60,10 +60,9 @@ extern "C" { #include #include -/** \defgroup pw_pipewire PipeWire initialization and infrastructure functions +/** \defgroup pw_pipewire Initialization etc. */ - /** * \addtogroup pw_pipewire * \{ diff --git a/src/pipewire/port.h b/src/pipewire/port.h index 557c69e57..497c09532 100644 --- a/src/pipewire/port.h +++ b/src/pipewire/port.h @@ -38,7 +38,7 @@ extern "C" { #include -/** \defgroup pw_port PipeWire Port +/** \defgroup pw_port Port * */ diff --git a/src/pipewire/properties.h b/src/pipewire/properties.h index af8810c2b..2d0330ebf 100644 --- a/src/pipewire/properties.h +++ b/src/pipewire/properties.h @@ -34,7 +34,7 @@ extern "C" { #include #include -/** \defgroup pw_properties Key-Value pairs +/** \defgroup pw_properties Properties * * Properties are used to pass around arbitrary key/value pairs. * Both keys and values are strings which keeps things simple. diff --git a/src/pipewire/protocol.h b/src/pipewire/protocol.h index 01334ad12..bb9727306 100644 --- a/src/pipewire/protocol.h +++ b/src/pipewire/protocol.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \defgroup pw_protocol PipeWire Protocol +/** \defgroup pw_protocol Protocol * * \brief Manages protocols and their implementation */ diff --git a/src/pipewire/proxy.h b/src/pipewire/proxy.h index 113de4933..b79a659f0 100644 --- a/src/pipewire/proxy.h +++ b/src/pipewire/proxy.h @@ -87,7 +87,7 @@ extern "C" { * associated to the proxy. */ -/** \defgroup pw_proxy Proxy Object +/** \defgroup pw_proxy Proxy * * \brief Represents an object on the client side. * diff --git a/src/pipewire/resource.h b/src/pipewire/resource.h index b70ffdc3d..dd15c1a8f 100644 --- a/src/pipewire/resource.h +++ b/src/pipewire/resource.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \defgroup pw_resource PipeWire Resources +/** \defgroup pw_resource Resource * * \brief Client owned objects * diff --git a/src/pipewire/stream.h b/src/pipewire/stream.h index 86415beca..2f98ed385 100644 --- a/src/pipewire/stream.h +++ b/src/pipewire/stream.h @@ -144,14 +144,14 @@ extern "C" { * * Use \ref pw_stream_disconnect() to disconnect a stream after use. */ -/** \defgroup pw_stream Stream Object +/** \defgroup pw_stream Stream API * * \brief PipeWire stream objects * * The stream object provides a convenient way to send and * receive data streams from/to PipeWire. * - * See also \ref page_streams and \ref page_core_api + * See also \ref page_streams and \ref api_pw_core */ /** diff --git a/src/pipewire/thread-loop.h b/src/pipewire/thread-loop.h index 4c33e84b3..13e8532ca 100644 --- a/src/pipewire/thread-loop.h +++ b/src/pipewire/thread-loop.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \page page_thread_loop Threaded Loop +/** \page page_thread_loop Thread Loop * * \section sec_thread_loop_overview Overview * @@ -80,7 +80,7 @@ extern "C" { * All events and callbacks are called with the thread lock held. * */ -/** \defgroup pw_thread_loop PipeWire Threaded Loop Object +/** \defgroup pw_thread_loop Thread Loop * * The threaded loop object runs a \ref pw_loop in a separate thread * and ensures proper locking is done. diff --git a/src/pipewire/thread.h b/src/pipewire/thread.h index 5a02f91f1..f6753398b 100644 --- a/src/pipewire/thread.h +++ b/src/pipewire/thread.h @@ -34,11 +34,16 @@ extern "C" { #include -/** \defgroup spa_thread Thread related functions +/** \defgroup pw_thread Thread * * \brief functions to manipulate threads */ +/** + * \addtogroup pw_thread + * \{ + */ + void pw_thread_utils_set(struct spa_thread_utils *impl); struct spa_thread_utils *pw_thread_utils_get(void); @@ -48,6 +53,10 @@ struct spa_thread_utils *pw_thread_utils_get(void); #define pw_thread_utils_acquire_rt(...) spa_thread_utils_acquire_rt(pw_thread_utils_get(), ##__VA_ARGS__) #define pw_thread_utils_drop_rt(...) spa_thread_utils_drop_rt(pw_thread_utils_get(), ##__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/type.h b/src/pipewire/type.h index 5fd9511ee..5e9ee35ed 100644 --- a/src/pipewire/type.h +++ b/src/pipewire/type.h @@ -31,7 +31,7 @@ extern "C" { #include -/** \defgroup pw_type PipeWire Types +/** \defgroup pw_type Type */ /** diff --git a/src/pipewire/utils.h b/src/pipewire/utils.h index 8e180f50d..f8f1495f0 100644 --- a/src/pipewire/utils.h +++ b/src/pipewire/utils.h @@ -38,7 +38,7 @@ extern "C" { #include #include -/** \defgroup pw_utils PipeWire Utility Functions +/** \defgroup pw_utils Utilities * * Various utility functions */ diff --git a/src/pipewire/work-queue.h b/src/pipewire/work-queue.h index 0e85e1bf7..1680e34da 100644 --- a/src/pipewire/work-queue.h +++ b/src/pipewire/work-queue.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \defgroup pw_work_queue PipeWire Work Queue Object +/** \defgroup pw_work_queue Work Queue */ /** diff --git a/test/pwtest.h b/test/pwtest.h index 8ccba9c42..813a2cf2f 100644 --- a/test/pwtest.h +++ b/test/pwtest.h @@ -41,7 +41,7 @@ extern "C" { #include "spa/support/plugin.h" /** - * \defgroup pwtest The pwtest PipeWire Test Suite + * \defgroup pwtest Test Suite * \brief `pwtest` is a test runner framework for PipeWire. * * It's modelled after other