mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	modules: add more docs
This commit is contained in:
		
							parent
							
								
									4e3d5e2ac5
								
							
						
					
					
						commit
						73e7f61d8c
					
				
					 2 changed files with 60 additions and 7 deletions
				
			
		| 
						 | 
					@ -16,10 +16,63 @@
 | 
				
			||||||
#include "module-client-device/client-device.h"
 | 
					#include "module-client-device/client-device.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** \page page_module_client_device Client Device
 | 
					/** \page page_module_client_device Client Device
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Allow clients to export devices to the PipeWire daemon.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This module creates an export type for the \ref SPA_TYPE_INTERFACE_Device
 | 
				
			||||||
 | 
					 * interface.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * With \ref pw_core_export(), objects of this type can be exported to the
 | 
				
			||||||
 | 
					 * PipeWire server. All actions performed on the device locally will be visible
 | 
				
			||||||
 | 
					 * to connecteced clients.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * In some cases, it is possible to use this factory directly.
 | 
				
			||||||
 | 
					 * With \ref pw_core_create_object() on the `client-device`
 | 
				
			||||||
 | 
					 * factory will result in a \ref SPA_TYPE_INTERFACE_Device proxy that can be
 | 
				
			||||||
 | 
					 * used to control the server side created \ref pw_impl_device.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Schematically, the client side \ref spa_device is wrapped in the ClientDevice
 | 
				
			||||||
 | 
					 * proxy and unwrapped by the server side resource so that all actions on the client
 | 
				
			||||||
 | 
					 * side device are reflected on the server side device and server side actions are
 | 
				
			||||||
 | 
					 * reflected in the client.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *\code{.unparsed}
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *   client side proxy                            server side resource
 | 
				
			||||||
 | 
					 * .------------------------------.            .----------------------------------.
 | 
				
			||||||
 | 
					 * | SPA_TYPE_INTERFACE_Device    |            |  PW_TYPE_INTERFACE_Device        |
 | 
				
			||||||
 | 
					 * |                              |  IPC       |.--------------------------------.|
 | 
				
			||||||
 | 
					 * |                              | ----->     || SPA_TYPE_INTERFACE_Device      ||
 | 
				
			||||||
 | 
					 * |                              |            |'--------------------------------'|
 | 
				
			||||||
 | 
					 * '------------------------------'            '----------------------------------'
 | 
				
			||||||
 | 
					 *\endcode
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * ## Module Name
 | 
					 * ## Module Name
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * `libpipewire-module-client-device`
 | 
					 * `libpipewire-module-client-device`
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * ## Module Options
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This module has no options.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * ## Properties for the create_object call
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * All properties are passed directly to the \ref pw_context_create_device() call.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * ## Example configuration
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The module is usually added to the config file of the main PipeWire daemon and the
 | 
				
			||||||
 | 
					 * clients.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *\code{.unparsed}
 | 
				
			||||||
 | 
					 * context.modules = [
 | 
				
			||||||
 | 
					 * { name = libpipewire-module-client-device }
 | 
				
			||||||
 | 
					 * ]
 | 
				
			||||||
 | 
					 *\endcode
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * ## See also
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - `module-spa-device-factory`: make nodes from a factory
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define NAME "client-device"
 | 
					#define NAME "client-device"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,21 +21,21 @@
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Allow clients to export processing nodes to the PipeWire daemon.
 | 
					 * Allow clients to export processing nodes to the PipeWire daemon.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This module creates 2 export types, one for the PW_TYPE_INTERFACE_Node and
 | 
					 * This module creates 2 export types, one for the \ref PW_TYPE_INTERFACE_Node and
 | 
				
			||||||
 * another for the SPA_TYPE_INTERFACE_Node interfaces.
 | 
					 * another for the \ref SPA_TYPE_INTERFACE_Node interfaces.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * With \ref pw_core_export(), objects of these types can be exported to the
 | 
					 * With \ref pw_core_export(), objects of these types can be exported to the
 | 
				
			||||||
 * PipeWire server. All actions performed on the node locally will be visible
 | 
					 * PipeWire server. All actions performed on the node locally will be visible
 | 
				
			||||||
 * to connecteced clients and scheduling of the Node will be performed.
 | 
					 * to connecteced clients and scheduling of the Node will be performed.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Objects of the PW_TYPE_INTERFACE_Node interface can be made with
 | 
					 * Objects of the \ref PW_TYPE_INTERFACE_Node interface can be made with
 | 
				
			||||||
 * \ref pw_context_create_node(), for example. You would manually need to create
 | 
					 * \ref pw_context_create_node(), for example. You would manually need to create
 | 
				
			||||||
 * and add an object of the SPA_TYPE_INTERFACE_Node interface. Exporting a
 | 
					 * and add an object of the \ref SPA_TYPE_INTERFACE_Node interface. Exporting a
 | 
				
			||||||
 * SPA_TYPE_INTERFACE_Node directly will first wrap it in a PW_TYPE_INTERFACE_Node
 | 
					 * \ref SPA_TYPE_INTERFACE_Node directly will first wrap it in a
 | 
				
			||||||
 * interface.
 | 
					 * \ref PW_TYPE_INTERFACE_Node interface.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Usually this module is not used directly but through the \ref pw_stream and
 | 
					 * Usually this module is not used directly but through the \ref pw_stream and
 | 
				
			||||||
 * \ref pw_filter APIs, which provides API to implement the SPA_TYPE_INTERFACE_Node
 | 
					 * \ref pw_filter APIs, which provides API to implement the \ref SPA_TYPE_INTERFACE_Node
 | 
				
			||||||
 * interface.
 | 
					 * interface.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * In some cases, it is possible to use this factory directly (the PipeWire JACK
 | 
					 * In some cases, it is possible to use this factory directly (the PipeWire JACK
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue