Properties
Properties is a string-to-string dictionary, the type used throughout
WirePlumber for PipeWire object properties, event properties and so on. It
binds the WpProperties C API.
Most of the time scripts obtain a Properties object from somewhere else —
node.properties, Event.get_properties(),
Conf.get_section_as_properties() — rather than constructing one.
Accessing values
Values are read and written with the normal Lua indexing syntax. Reading a key that is not set returns nil.
local props = node.properties
local name = props ["node.name"]
props ["my.custom.property"] = "value"
Because a Properties object holds strings, the typed accessors below are
provided for the common cases of reading a value that represents a boolean or
a number.
- Properties(value)
Constructs a new
Propertiesobject.- Parameters:
value -- a Lua table of string keys and values to initialize from, or another
Propertiesobject to copy, or nothing for an empty object- Returns:
the new properties object
- Return type:
Properties
- Properties.get_boolean(self, key)
Returns the value of key interpreted as a boolean.
- Parameters:
key (string) -- the key to look up
- Returns:
the value, or nil if the key is not set
- Return type:
boolean
- Properties.get_int(self, key)
Returns the value of key interpreted as an integer.
- Parameters:
key (string) -- the key to look up
- Returns:
the value, or nil if the key is not set
- Return type:
integer
- Properties.get_float(self, key)
Returns the value of key interpreted as a floating point number.
- Parameters:
key (string) -- the key to look up
- Returns:
the value, or nil if the key is not set
- Return type:
number
- Properties.get_count(self)
Binds
wp_properties_get_count()- Returns:
the number of properties in the object
- Return type:
integer
- Properties.copy(self)
Binds
wp_properties_copy()Returns an independent copy of the properties, which can be modified without affecting the original.
- Returns:
a copy of the properties
- Return type:
Properties
- Properties.parse(self)
Converts the properties into a plain Lua table of string keys and values.
Note
This creates a full copy. Prefer indexing the
Propertiesobject directly when you only need a few keys; the shipped scripts were converted to do so because building a table for every object turned out to be measurably expensive.- Returns:
a table with the contents of the properties
- Return type:
table