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.
|
# Makes a factory for creating links between ports.
|
||||||
|
# use module.link-factory.args = { ... } to override the arguments.
|
||||||
{ name = libpipewire-module-link-factory
|
{ name = libpipewire-module-link-factory
|
||||||
|
args = {
|
||||||
|
#allow.link.passive = false
|
||||||
|
}
|
||||||
condition = [ { module.link-factory = !false } ]
|
condition = [ { module.link-factory = !false } ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,84 @@
|
||||||
#include <pipewire/impl.h>
|
#include <pipewire/impl.h>
|
||||||
|
|
||||||
/** \page page_module_link_factory Link Factory
|
/** \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
|
* ## Module Name
|
||||||
*
|
*
|
||||||
* `libpipewire-module-link-factory`
|
* `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"
|
#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;
|
data->props = args ? pw_properties_new_string(args) : NULL;
|
||||||
|
|
||||||
if (data->props) {
|
if (data->props) {
|
||||||
|
pw_context_conf_update_props(context, "module."NAME".args", data->props);
|
||||||
|
|
||||||
data->allow_passive = pw_properties_get_bool(data->props,
|
data->allow_passive = pw_properties_get_bool(data->props,
|
||||||
"allow.link.passive", false);
|
"allow.link.passive", false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue