mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
doc: document module-link-factory
This commit is contained in:
parent
19d78ef195
commit
5d35986329
2 changed files with 80 additions and 0 deletions
|
|
@ -200,7 +200,11 @@ context.modules = [
|
|||
}
|
||||
|
||||
# Makes a factory for creating links between ports.
|
||||
# use module.link-factory.args = { ... } to override the arguments.
|
||||
{ name = libpipewire-module-link-factory
|
||||
args = {
|
||||
#allow.link.passive = false
|
||||
}
|
||||
condition = [ { module.link-factory = !false } ]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,84 @@
|
|||
#include <pipewire/impl.h>
|
||||
|
||||
/** \page page_module_link_factory Link Factory
|
||||
*
|
||||
* Allows clients to create links between ports.
|
||||
*
|
||||
* This module creates a new factory. Clients that can see the factory
|
||||
* can use the factory name (`link-factory`) to create new link
|
||||
* objects with \ref pw_core_create_object().
|
||||
*
|
||||
* Object of the \ref PW_TYPE_INTERFACE_Link will be created and a proxy
|
||||
* to it will be returned.
|
||||
*
|
||||
* As an argument to the create_object call, a set of properties will
|
||||
* control what ports will be linked.
|
||||
*
|
||||
* ## Module Name
|
||||
*
|
||||
* `libpipewire-module-link-factory`
|
||||
*
|
||||
* ## Module Options
|
||||
*
|
||||
* - `allow.link.passive`: if the `link.passive` property is allowed. Default false.
|
||||
* By default, the core will decide when a link is passive
|
||||
* based on the properties of the node and ports.
|
||||
*
|
||||
* ## Properties for the create_object call
|
||||
*
|
||||
* `link.output.node`: The output node to use. This can be the node id, node.name,
|
||||
* node.nick, node.description or object.path of a node. When the
|
||||
* property is not given or NULL, the output port should be
|
||||
* specified.
|
||||
* `link.output.port`: The output port to link. This can be a port id, port.name,
|
||||
* port.alias or object.path. If an output node is specified, the
|
||||
* port must belong to the node. If no output port is given, an
|
||||
* output node must be specified and a random (unlinked) port will
|
||||
* be used from the node.
|
||||
* `link.input.node`: The input node to use. This can be the node id, node.name,
|
||||
* node.nick, node.description or object.path of a node. When the
|
||||
* property is not given or NULL, the input port should be
|
||||
* specified.
|
||||
* `link.input.port`: The input port to link. This can be a port id, port.name,
|
||||
* port.alias or object.path. If an input node is specified, the
|
||||
* port must belong to the node. If no input port is given, an
|
||||
* input node must be specified and a random (unlinked) port will
|
||||
* be used from the node.
|
||||
* `object.linger`: Keep the link around even when the client that created it is gone.
|
||||
* `link.passive`: The link is passive, meaning that it will not keep nodes busy.
|
||||
* By default this property is ignored and the node and port properties
|
||||
* are used to determine the passive state of the link.
|
||||
*
|
||||
* ## Example configuration
|
||||
*
|
||||
* The module is usually added to the config file of the main pipewire daemon.
|
||||
*
|
||||
*\code{.unparsed}
|
||||
* context.modules = [
|
||||
* { name = libpipewire-link-factory
|
||||
* args = {
|
||||
* #allow.link.passive = false
|
||||
* }
|
||||
* }
|
||||
* ]
|
||||
*\endcode
|
||||
|
||||
* ## Config override
|
||||
*
|
||||
* A `module.link-factory.args` config section can be added
|
||||
* to override the module arguments.
|
||||
*
|
||||
*\code{.unparsed}
|
||||
* # ~/.config/pipewire/pipewire.conf.d/my-link-factory-args.conf
|
||||
*
|
||||
* module.link-factory.args = {
|
||||
* #allow.link.passive = false
|
||||
* }
|
||||
*\endcode
|
||||
*
|
||||
* ## See also
|
||||
*
|
||||
* - `pw-link`: a tool to manage port links
|
||||
*/
|
||||
|
||||
#define NAME "link-factory"
|
||||
|
|
@ -543,6 +617,8 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
|
|||
data->props = args ? pw_properties_new_string(args) : NULL;
|
||||
|
||||
if (data->props) {
|
||||
pw_context_conf_update_props(context, "module."NAME".args", data->props);
|
||||
|
||||
data->allow_passive = pw_properties_get_bool(data->props,
|
||||
"allow.link.passive", false);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue