From 13ffc549c94dec51c9e4b5096971a82848bd6cad Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 3 Aug 2021 15:12:19 +1000 Subject: [PATCH] doc: add basic docs for the session manager --- doc/pipewire-session-manager.dox | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/doc/pipewire-session-manager.dox b/doc/pipewire-session-manager.dox index 3feef7b71..d28b57df6 100644 --- a/doc/pipewire-session-manager.dox +++ b/doc/pipewire-session-manager.dox @@ -1,4 +1,42 @@ /** \page page_session_manager PipeWire Session Manager +The \ref page_daemon is primarily a framework that allows devices and +applications to exchange data. + +It provides the mechanism to do so but the policy deciding which components +can talk to each other and when is controlled by the session manager. As +outlined in \ref page_objects_design, PipeWire provides a media graph +consistent of Devices, Nodes and Ports. The session manager is the one that +decides on the links between those elements. + +Two prominent session managers currently exist: +- \ref page_media_session - the reference session manager provided by PipeWire +- [WirePlumber](https://gitlab.freedesktop.org/pipewire/wireplumber), a +modular session manager based on GObject + +This page describes some of the requirements for session managers in general. + +## Client management + +PipeWire provides a \ref page_access "permission system" to limit client's +acccess to resources but only \ref page_module_access "basic permission +handling". The session manager is expected to decide whether clients may +access specific resources. + +## Device management + +PipeWire's responsibility is to open devices, however the decision on which +devices should be opened is the job of a session manager, including the +configuration of those devices. + + +## Endpoint grouping + +An endpoint is, effectively, a group of Nodes that are a logical unit that can +consume or produce media data. For example, a Bluetooth speaker may present as +several Nodes but is only one logical unit to stream audio to. + +See \ref page_objects_design for details on Endpoints. + */