Commit Graph

30 Commits

Author SHA1 Message Date
Pauli Virtanen
fd58eec7f8 doc: add reference docs + index for config and env variables
Add reference documentation for configuration settings & node/device
properties.  We should have boring & exhaustive reference lists of all
the options, and an index where they can be looked up as needed.

The content is mostly stolen from the Wiki.

Add pipewire-client.conf.5, pipewire-jack.conf.5, and pipewire-device.7
that try to explain all available configuration settings for native/ALSA/JACK
clients, and parameters & properties devices.

Expand pipewire.conf.5 and pipewire-pulse.conf.5 with lists of supported
properties. Also explain environment variables.

Doxygen doesn't have an indexing mechanism suitable for configuration
settings, so add a simple one using an input filter and use it here.

Tweak styling a bit.
2024-02-18 15:08:35 +02:00
Pauli Virtanen
089db6f14a doc: disable deprecated list 2024-01-29 08:50:32 +00:00
Pauli Virtanen
bdf96979fc doc: include pipewire-pulse modules explanations also on man page 2023-12-09 16:37:03 +02:00
Pauli Virtanen
0fbcc87314 doc: make all manpages with Doxygen
Use (fixed-up) Doxygen manpage output for all program & module manpages.

This also allows formatting the manual pages properly in the HTML docs.

The Markdown pages work properly only with Doxygen >= 1.9.7, older
versions put them to wrong place in the HTML docs.
2023-11-22 20:10:49 +02:00
Pauli Virtanen
c77fdb4864 doc: hide useless indices in doxygen output etc. fixes
Hide useless paginated indices.
Rename "Related Pages" -> "Pages".
Fix manpage brief description.
Fix file path name stripping.
Move macro listings after enums, so that they're next to functions.
Remove pwtest from docs, it's not API.
Fixup header styles.
2023-11-04 15:22:01 +02:00
Pauli Virtanen
49668a9b26 doc: fixup some Doxygen autogen issues
Don't show page sections in left sidebar, it's confusing.
Rename Modules -> API Reference in sidebar.
Indicate visually the sidebar entries are collapsible.
Fix spa_pod_json grouping.
Move tools page to top level.
Fix page ordering.
2023-11-04 09:45:55 +00:00
Barnabás Pőcze
375cc73b9d doc: specify Doxygen OUTPUT_DIRECTORY as an absolute path
Currently, doxygen is run by ninja in the top-level build directory,
therefore the "doc" folder is always created there. However, when
pipewire is built as a subproject, it should not touch the top-level
build directory because it can cause conflicts and because the
documentation won't be created where meson thinks it will be,
so the "doxygen" target will always be dirty and installation will fail.
2023-01-15 15:08:47 +00:00
Dylan Aïssi
4e9c3b26d9 doc: remove duplicate FULL_PATH_NAMES field
FULL_PATH_NAMES is defined twice. Remove the one set to YES
since including the full path breaks reproducible builds.

See https://reproducible-builds.org/docs/build-path/
2023-01-12 18:09:54 +01:00
jasker5183
6b619dd1b3 Doxygen - enable client side search engine. 2022-05-16 15:33:27 +00:00
Pauli Virtanen
336caa9db3 doc: add tutorials as Doxygen examples 2021-10-10 00:35:46 +03:00
Pauli Virtanen
98a0e54d5f doc: link examples to Doxygen docs
Include examples to the documentation, using Doxygen's example system.
2021-10-10 00:35:46 +03:00
Pauli Virtanen
7123fadc37 doc: further Doxygen tweaks
Make Doxygen see also macros defined inside struct declarations,
and to include also opaque structs.

Keep members in the order they are in the .h file, since Doxygen's
case-insensitive sort by name jumbles things.
2021-10-06 19:06:42 +00:00
Pauli Virtanen
f9cdc617a8 doc: don't generate Doxygen file list
The file list duplicates the Module structure, and is just confusing
since it also contains the .c files.
2021-10-04 20:37:35 +03:00
Pauli Virtanen
601560e343 doc: hide various Doxygen generated dot graphs
The Doxygen autogenerated graphs are very useful and take up lots of
space being on the top, so disable them.

Also disable references/referenced by relations, which add clutter.

Also hide most macro values.
2021-10-03 15:39:27 +03:00
Pauli Virtanen
8159797f89 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).
2021-10-03 15:39:27 +03:00
Pauli Virtanen
cd94eff5f2 doc: add Doxygen filter that adds docs to struct *method macros
Add an input filter that tries to link e.g.

 #define pw_core_add_listener(...) pw_core_method(c,add_listener,...)

to the corresponding declaration in struct pw_core_methods.
2021-10-03 00:40:52 +03:00
Pauli Virtanen
4cb24531b3 doc: ignore symbols due to Doxygen mis-parsing
Ignore some symbols appearing as "Variables", which seem to be due to
some mis-parsing.
2021-10-03 00:40:52 +03:00
Pauli Virtanen
c345d1e11d doc: make Doxygen to show only symbols defined in headers
Make Doxygen data structure etc. lists less cluttered by hiding
non-public stuff.

Add a Doxygen input filter that marks symbols declared in C files
private, so that they won't appear in the output unless the symbol is
also declared in a header.

The "spa static inline" hack is then also not needed any more.
2021-10-03 00:40:52 +03:00
Wim Taymans
954befccff doc: define HAVE_DOT to generate dot files
Fixes #1585
2021-09-09 13:01:29 +02:00
Peter Hutterer
127781cfc8 doc: ignore all function attributes in doxygen 2021-08-05 09:51:40 +00:00
Peter Hutterer
f0baffbc84 doc: ignore SPA_EXPORT and SPA_PRINTF_FUNC
This caused doxygen to include a rather random assortment of variables
and link to them from various pages (e.g. "arg", "res", "buffer", NAME,
etc.)
2021-08-04 07:49:53 +00:00
Peter Hutterer
8a25076c4e doc: define __USE_ISOC11 for doxygen to pick up the logger #defines
This way doxygen will pick up the #defines for spa_log_error, etc. Without
this define it uses the else part of the condition which uses macros to
construct function names.
2021-06-24 10:54:13 +00:00
Peter Hutterer
851a64d8c8 doc: add spa to doxygen output
This requires a helper script: doxygen doesn't differ between static methods
and static inline methods. EXTRACT_STATIC defines whether it parses *any*
static method but we're currently using all C files as input files as well. We
cannot convince doxygen to just parse static inline functions in header files
so for SPA we hack around this: meson passes the spa headers to a shell script
with simply copies those changed to `/* static */ inline void (foo)` and doxygen
then runs on those header files.

The result: we get all spa functions added to your doxygen output at the cost
of a few sed calls.
2021-05-26 07:44:55 +00:00
Peter Hutterer
079b90bde5 doc: add a custom doxygen theme based on doxygen-awesome
Theme from doxygen-awesome-css with custom modifications based on the
pipewire.org website to use the same type of blue, grey, etc.

doxygen-awesome-css is MIT licensed, see
https://github.com/jothepro/doxygen-awesome-css
2021-05-21 16:08:46 +10:00
Peter Hutterer
1fd56a6d26 doc: reduce the Doxyfile to only non-default options
This provides a much easier overview of what the actual changes are to
doxygen's default values.
2021-05-07 10:27:26 +10:00
Andrea Gelmini
47ef2b6b09 Fix typos 2021-04-30 07:40:20 +00:00
Wim Taymans
36ac8a6545 update docs 2017-09-05 13:35:25 +02:00
Wim Taymans
1acba78234 API cleanups
Fix docs
Add some more versions to interfaces
Make types for the various proxy object + inline methods that does type
checking and create proxys etc.
Set owner client of client-nodes in the properties
Pass type to bind to in create-node
Don't place global id in the info structs
Improve registration of marshal functions
Pass more types around as ids
2017-07-18 10:06:40 +02:00
Wim Taymans
d1655196c3 move things around 2017-07-11 16:08:22 +02:00
Wim Taymans
ab9b3ba85a docs: update 2017-06-16 16:25:19 +02:00