doc: add the various markdown prose docs to the doxygen output

Note that the order of the includes matters - that's how doxygen will sort
them. There is no specific structure other than the include order - one reason
why the headers are being changed. Without polluting the markdown files with
doxygen commands we cannot use \subpage, so all files convert to a regular
\page and are listed as flat hierarchy in the sidebar (and in Related Pages).

Changing the headers at least provides some visual grouping with comon
prefixes.
This commit is contained in:
Peter Hutterer 2021-05-07 09:09:45 +10:00
parent d10381dfc3
commit ac05f6bb03
14 changed files with 50 additions and 19 deletions

View file

@ -1,9 +1,9 @@
# Architecture
# PipeWire Architecture
There are 2 main components that make up the PipeWire library:
1) An implementation of a graph based media processing engine.
2) An asynchronous IPC mechanism to manipulate and introspect
1. An implementation of a graph based media processing engine.
2. An asynchronous IPC mechanism to manipulate and introspect
a graph in another process.
There is usually a daemon that implements the global graph and

View file

@ -18,6 +18,29 @@ foreach h : pipewire_sources
inputs += meson.source_root() / 'src' / 'pipewire' / h
endforeach
extra_docs = [
'overview.md',
'design.txt',
'architecture.md',
'objects_design.md',
'tutorial-index.md',
'tutorial1.md',
'tutorial2.md',
'tutorial3.md',
'tutorial4.md',
'tutorial5.md',
'tutorial6.md',
'spa/index.md',
'spa/design.md',
'spa/pod.md',
'spa/buffer.md',
'pulseaudio.md',
]
foreach extra : extra_docs
inputs += meson.source_root() / 'doc' / extra
endforeach
doxyfile_conf.set('inputs', ' '.join(inputs))
doxyfile = configure_file(input: 'Doxyfile.in',

View file

@ -1,4 +1,4 @@
# Objects Design
# PipeWire Objects Design
This document is a design reference on the various objects that exist
in the PipeWire media and session management graphs, explaining what these

View file

@ -1,4 +1,4 @@
# ALSA
# Internals - Mapping between ALSA and streams
This explains the mapping between alsa cards and streams and session manager
objects.

View file

@ -1,3 +1,5 @@
# SPA Buffers
> 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.

View file

@ -1,4 +1,9 @@
# SPA (Simple Plugin 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
GStreamer.
* SPA [Design](design.md)
* [Data format](pod.md)
* SPA [Buffers](buffer.md)

View file

@ -1,4 +1,4 @@
# POD
# SPA POD
POD (plain old data) is a sort of data container. It is comparable to
DBus Variant or LV2 Atom.

View file

@ -1,4 +1,4 @@
# PipeWire Tutorial
# Tutorial - The PipeWire API
Welcome to the PipeWire tutorial. The goal is to learn
PipeWire API step-by-step with simple short examples.

View file

@ -1,6 +1,6 @@
[[index]](tutorial-index.md) [[next]](tutorial2.md)
# Tutorial - Part 1: Getting started
# Getting started (Tutorial 1)
[[index]](tutorial-index.md) [[next]](tutorial2.md)
In this tutorial we show the basics of a simple PipeWire application.
Use this tutorial to get started and help you set up your development

View file

@ -1,8 +1,9 @@
# Tutorial - Part 2: Enumerating objects
[[previous]](tutorial1.md) [[index]](tutorial-index.md) [[next]](tutorial3.md)
# Enumerating objects (Tutorial 2)
In this tutorial we show how to connect to a PipeWire daemon and
In this tutorial we show how to connect to a PipeWire daemon and
enumerate the objects that it has.
Let take a look at the following application to start.

View file

@ -1,6 +1,6 @@
[[previous]](tutorial2.md) [[index]](tutorial-index.md) [[next]](tutorial4.md)
# Tutorial - Part 3: Forcing a roundtrip (Tutorial 3)
# Forcing a roundtrip (Tutorial 3)
[[previous]](tutorial2.md) [[index]](tutorial-index.md) [[next]](tutorial4.md)
In this tutorial we show how to force a roundtrip to the server
to make sure an action completed.

View file

@ -1,6 +1,6 @@
[[previous]](tutorial3.md) [[index]](tutorial-index.md) [[next]](tutorial5.md)
# Tutorial - Part 4: Playing a tone
# Playing a tone (Tutorial 4)
[[previous]](tutorial3.md) [[index]](tutorial-index.md) [[next]](tutorial5.md)
In this tutorial we show how to use a stream to play a tone.

View file

@ -1,6 +1,6 @@
[[previous]](tutorial4.md) [[index]](tutorial-index.md) [[next]](tutorial6.md)
# Tutorial - Part 5: Capturing video frames
# Capturing video frames (Tutorial 5)
[[previous]](tutorial4.md) [[index]](tutorial-index.md) [[next]](tutorial6.md)
In this tutorial we show how to use a stream to capture a
stream of video frames.

View file

@ -1,6 +1,6 @@
[[previous]](tutorial5.md) [[index]](tutorial-index.md) [[next]](tutorial7.md)
# Tutorial - Part 6: Binding objects
# Binding objects (Tutorial 6)
[[previous]](tutorial5.md) [[index]](tutorial-index.md) [[next]](tutorial7.md)
In this tutorial we show how to bind to an object so that we can
receive events and call methods on the object.