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