summaryrefslogtreecommitdiffstats
path: root/doc/pipewire-session-manager.dox
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/pipewire-session-manager.dox46
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/pipewire-session-manager.dox b/doc/pipewire-session-manager.dox
new file mode 100644
index 0000000..d21ba9a
--- /dev/null
+++ b/doc/pipewire-session-manager.dox
@@ -0,0 +1,46 @@
+/** \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
+consisting 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:
+
+- [PipeWire Media Session](https://gitlab.freedesktop.org/pipewire/media-session), the
+example session manager.
+- [WirePlumber](https://gitlab.freedesktop.org/pipewire/wireplumber), a
+modular session manager based on GObject.
+[Documentation](https://pipewire.pages.freedesktop.org/wireplumber/)
+
+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
+access 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.
+
+*/