State
Persistent state is how WirePlumber remembers things across restarts: which profile a device had, which node was the default, what volume a stream was last set to.
State binds the WpState C API and stores a set of
key/value pairs in a file under the user's state directory (see
Locations of WirePlumber's files). StateMetadata additionally mirrors the
stored values into a PipeWire metadata object, so that they can be inspected
and cleared with pw-metadata.
State
- State(name)
Binds
wp_state_new()Creates a state object backed by the state file called name.
- Parameters:
name (string) -- the name of the state
- Returns:
the new state object
- Return type:
State
- State.load(self)
Binds
wp_state_load()Loads the contents of the state file.
- Returns:
the stored key/value pairs
- Return type:
Properties, see Properties
- State.save(self, properties)
Binds
wp_state_save()Writes properties to the state file, replacing its previous contents.
- Parameters:
properties -- a table or Properties object
- Returns:
true on success, plus an error message string if it failed
- Return type:
boolean, string
- State.save_after_timeout(self, properties)
Binds
wp_state_save_after_timeout()The same as
State.save(), but delayed by a short timeout, and coalescing repeated calls into a single write. This is what the shipped scripts use, so that a burst of changes does not cause a burst of disk writes.- Parameters:
properties -- a table or Properties object
- State.clear(self)
Binds
wp_state_clear()Deletes the state file.
StateMetadata
- StateMetadata(name)
Binds
wp_state_metadata_new()Creates a state object that also exposes its contents as a PipeWire metadata object named name.
- Parameters:
name (string) -- the name of the state and of the metadata object
- Returns:
the new state metadata object
- Return type:
StateMetadata
- StateMetadata.get(self, key)
Binds
wp_state_metadata_get()- Parameters:
key (string) -- the key to look up
- Returns:
the stored value, or nil
- Return type:
string
- StateMetadata.set(self, key, value)
Binds
wp_state_metadata_set()Stores a value. Passing no value removes the key.
- Parameters:
key (string) -- the key to store under
value (string) -- (optional) the value to store
- StateMetadata.clear(self)
Binds
wp_state_metadata_clear()Removes all the stored values.
The metadata object that StateMetadata exports is created in the same way
as one created directly with ImplMetadata; see PipeWire Proxies.