PipeWire Proxies
Proxy
Lua objects that bind a WpProxy contain the following methods:
- Proxy.get_interface_type(self)
Binds
wp_proxy_get_interface_type()
- Parameters
self – the proxy
- Returns
the proxy type, the proxy type version
- Return type
string, integer
PipeWire Object
Lua objects that bind a WpPipewireObject contain the following methods:
- PipewireObject.iterate_params(self, param_name)
Binds
wp_pipewire_object_enum_params_sync()
- Parameters
self – the proxy
param_name (string) – the PipeWire param name to enumerate, ex “Props”, “Route”
- Returns
the available parameters
- Return type
Iterator; the iteration items are Spa Pod objects
- PipewireObject.set_param(self, param_name, pod)
Binds
wp_pipewire_object_set_param()
- Parameters
self – the proxy
param_name (string) – The PipeWire param name to set, ex “Props”, “Route”
pod (Pod) – A Spa Pod object containing the new params
Global Proxy
Lua objects that bind a WpGlobalProxy contain the following methods:
- GlobalProxy.request_destroy(self)
Binds
wp_global_proxy_request_destroy()
- Parameters
self – the proxy
PipeWire Node
Lua objects that bind a WpNode contain the following methods:
- Node.get_state(self)
Binds
wp_node_get_state()
- Parameters
self – the proxy
- Returns
the current state of the node and an error message, if any
- Return type
string (
WpNodeState
), string (error message)- Since
0.4.2
- Node.get_n_input_ports(self)
Binds
wp_node_get_n_input_ports()
- Parameters
self – the proxy
- Returns
the current and max numbers of input ports on the node
- Return type
integer (current), integer (max)
- Since
0.4.2
- Node.get_n_output_ports(self)
Binds
wp_node_get_n_output_ports()
- Parameters
self – the proxy
- Returns
the current and max numbers of output ports on the node
- Return type
integer (current), integer (max)
- Since
0.4.2
- Node.get_n_ports(self)
Binds
wp_node_get_n_ports()
- Parameters
self – the proxy
- Returns
the number of ports on the node
- Since
0.4.2
- Node.iterate_ports(self, interest)
Binds
wp_node_iterate_ports()
- Node.lookup_port(self, interest)
Binds
wp_node_lookup_port()
- Node.send_command(self, command)
Binds
wp_node_send_command()
- Parameters
self – the proxy
command (string) – the command to send to the node (ex “Suspend”)
PipeWire Port
Lua objects that bind a WpPort contain the following methods:
- Port.get_direction(self)
Binds
wp_port_get_direction()
- Parameters
self – the port
- Returns
the direction of the Port
- Return type
string (
WpDirection
)- Since
0.4.2
PipeWire Client
Lua objects that bind a WpClient contain the following methods:
- Client.update_permissions(self, perms)
Binds
wp_client_update_permissions()
Takes a table where the keys are object identifiers and the values are permission strings.
Valid object identifiers are:
A number, meaning the bound ID of a proxy
The string “any” or the string “all”, which sets the default permissions for this client
The permission strings have a chmod-like syntax (ex. “rwx” or “r-xm”), where:
“r” means permission to read the object
“w” means permission to write data to the object
“x” means permission to call methods on the object
“m” means permission to set metadata for the object
“-” is ignored and can be used to make the string more readable when a permission flag is omitted
Example:
client:update_permissions { ["all"] = "r-x", [35] = "rwxm", }
- Parameters
self – the proxy
perms (table) – the permissions to update for this client
PipeWire Metadata
Lua objects that bind a WpMetadata contain the following methods:
- Metadata.iterate(self, subject)
Binds
wp_metadata_new_iterator()
- Parameters
self – the proxy
subject (integer) – the subject id
- Returns
an iterator
- Metadata.find(self, subject, key)
Binds
wp_metadata_find()
- Parameters
self – the proxy
subject (string) – the subject id
key (string) – the metadata key to find
- Returns
the value for this metadata key, the type of the value
- Return type
string, string