PipeWire: pw_properties Class Reference

PipeWire 0.3.4

Public Member Functions | Data Fields
pw_properties Class Reference

A collection of key/value pairs. More...

## Public Member Functions
SPA_EXPORT struct pw_properties * | pw_properties_new (const char *key,...)
| Make a new properties object. More...
SPA_EXPORT struct pw_properties * | pw_properties_new_dict (const struct spa_dict *dict)
| Make a new properties object from the given dictionary. More...
SPA_EXPORT struct pw_properties * | pw_properties_new_string (const char *str)
| Make a new properties object from the given str. More...
SPA_EXPORT struct pw_properties * | pw_properties_copy (const struct pw_properties *properties)
| Copy a properties object. More...
SPA_EXPORT int | pw_properties_update_keys (struct pw_properties *props, const struct spa_dict *dict, const char *keys[])
| Copy multiple keys from one property to another. More...
SPA_EXPORT void | pw_properties_clear (struct pw_properties *properties)
| Clear a properties object. More...
SPA_EXPORT int | pw_properties_update (struct pw_properties *props, const struct spa_dict *dict)
| Update properties. More...
SPA_EXPORT int | pw_properties_add (struct pw_properties *props, const struct spa_dict *dict)
| Add properties. More...
SPA_EXPORT int | pw_properties_add_keys (struct pw_properties *props, const struct spa_dict *dict, const char *keys[])
| Add keys. More...
SPA_EXPORT void | pw_properties_free (struct pw_properties *properties)
| Free a properties object. More...
SPA_EXPORT int | pw_properties_set (struct pw_properties *properties, const char *key, const char *value)
| Set a property value. More...
SPA_EXPORT int | pw_properties_setf (struct pw_properties *properties, const char *key, const char *format,...)
| Set a property value by format. More...
SPA_EXPORT const char * | pw_properties_get (const struct pw_properties *properties, const char *key)
| Get a property. More...
SPA_EXPORT const char * | pw_properties_iterate (const struct pw_properties *properties, void **state)
| Iterate property values. More...

## Data Fields
struct spa_dict | dict
| dictionary of key/values More...
uint32_t | flags
| extra flags More...

## Detailed Description

A collection of key/value pairs.

Properties are used to pass around arbitrary key/value pairs. Both keys and values are strings which keeps things simple. Encoding of arbitrary values should be done by using a string serialization such as base64 for binary blobs.

## Member Function Documentation

## ◆ pw_properties_add()

SPA_EXPORT int pw_properties_add | ( | struct pw_properties * | props,
|  | const struct spa_dict * | dict
| ) |  |

Add properties.

Parameters

  props | properties to add
  dict | new properties

Returns
  the number of added properties

The properties from dict that are not yet in props are added.

References pw_properties_get(), and pw_properties_set().

## ◆ pw_properties_add_keys()

SPA_EXPORT int pw_properties_add_keys | ( | struct pw_properties * | props,
|  | const struct spa_dict * | dict,
|  | const char * | keys[]
| ) |  |

Add keys.

Parameters

  props | properties to add
  dict | new properties
  keys | a NULL terminated list of keys to add

Returns
  the number of added properties

The properties with keys from dict that are not yet in props are added.

References pw_properties_get(), and pw_properties_set().

## ◆ pw_properties_clear()

SPA_EXPORT void pw_properties_clear | ( | struct pw_properties * | properties | ) |

Clear a properties object.

Parameters

  properties | properties to clear

References pw_array_for_each.

Referenced by pw_properties_free().

## ◆ pw_properties_copy()

SPA_EXPORT struct pw_properties * pw_properties_copy | ( | const struct pw_properties * | properties | ) |

Copy a properties object.

Parameters

  properties | properties to copy

Returns
  a new properties object

References dict, and pw_properties_new_dict().

## ◆ pw_properties_free()

SPA_EXPORT void pw_properties_free | ( | struct pw_properties * | properties | ) |

Free a properties object.

Parameters

  properties | the properties to free

References pw_properties_clear().

Referenced by pw_context_create_core(), pw_context_create_factory(), pw_global::pw_global_new(), pw_impl_core_destroy(), pw_impl_factory_destroy(), pw_impl_module::pw_impl_module_destroy(), and pw_mempool_destroy().

## ◆ pw_properties_get()

SPA_EXPORT const char * pw_properties_get | ( | const struct pw_properties * | properties,
|  | const char * | key
| ) |  |

Get a property.

Parameters

  properties | a pw_properties
  key | a key

Returns
  the property for key or NULL when the key was not found

Get the property in properties with key.

Referenced by pw_context_create_core(), pw_properties_add(), and pw_properties_add_keys().

## ◆ pw_properties_iterate()

SPA_EXPORT const char * pw_properties_iterate | ( | const struct pw_properties * | properties,
|  | void ** | state
| ) |  |

Iterate property values.

Parameters

  properties | a pw_properties
  state | state

Returns
  The next key or NULL when there are no more keys to iterate.

Iterate over properties, returning each key in turn. state should point to a pointer holding NULL to get the first element and will be updated after each iteration. When NULL is returned, all elements have been iterated.

References pw_array::pw_array_check_index, and pw_array::pw_array_get_unchecked.

## ◆ pw_properties_new()

SPA_EXPORT struct pw_properties * pw_properties_new | ( | const char * | key,
|  |  | ...
| ) |  |

Make a new properties object.

Parameters

  key | a first key
  ... | value and more keys NULL terminated

Returns
  a newly allocated properties object

Referenced by pw_context_connect_self(), pw_impl_client::pw_context_create_client(), pw_context_create_core(), pw_context_create_device(), pw_context_create_factory(), pw_context_create_node(), pw_context_create_port(), pw_filter_add_port(), pw_filter_new_simple(), pw_global::pw_global_new(), pw_impl_client_register(), pw_impl_core_register(), pw_impl_device_register(), pw_impl_factory_register(), pw_impl_link_register(), pw_impl_node_register(), pw_impl_port_register(), and pw_stream_new_simple().

## ◆ pw_properties_new_dict()

SPA_EXPORT struct pw_properties * pw_properties_new_dict | ( | const struct spa_dict * | dict | ) |

Make a new properties object from the given dictionary.

Parameters

  dict | a dictionary. keys and values are copied

Returns
  a new properties object

Referenced by pw_context_create_port(), and pw_properties_copy().

## ◆ pw_properties_new_string()

SPA_EXPORT struct pw_properties * pw_properties_new_string | ( | const char * | str | ) |

Make a new properties object from the given str.

str should be a whitespace separated list of key=value strings.

Parameters

  args | a property description

Returns
  a new properties object

References res.

## ◆ pw_properties_set()

SPA_EXPORT int pw_properties_set | ( | struct pw_properties * | properties,
|  | const char * | key,
|  | const char * | value
| ) |  |

Set a property value.

Parameters

  properties | the properties to change
  key | a key
  value | a value or NULL to remove the key

Returns
  1 if the properties were changed. 0 if nothing was changed because the property already existed with the same value or because the key to remove did not exist.

Set the property in properties with key to value. Any previous value of key will be overwritten. When value is NULL, the key will be removed.

Referenced by pw_context_connect_self(), pw_context_create_port(), pw_filter_connect(), pw_impl_factory_register(), pw_properties_add(), pw_properties_add_keys(), pw_properties_update(), and pw_properties_update_keys().

## ◆ pw_properties_setf()

SPA_EXPORT int pw_properties_setf | ( | struct pw_properties * | properties,
|  | const char * | key,
|  | const char * | format,
|  |  | ...
| ) |  |

Set a property value by format.

Parameters

  properties | a pw_properties
  key | a key
  format | a value
  ... | extra arguments

Returns
  1 if the property was changed. 0 if nothing was changed because the property already existed with the same value or because the key to remove did not exist.

Set the property in properties with key to the value in printf style format Any previous value of key will be overwritten.

References pw_properties_setva(), res, va_end(), and va_start().

Referenced by pw_context_create_core(), pw_impl_factory_register(), pw_impl_link_register(), and pw_impl_port_register().

## ◆ pw_properties_update()

SPA_EXPORT int pw_properties_update | ( | struct pw_properties * | props,
|  | const struct spa_dict * | dict
| ) |  |

Update properties.

Parameters

  props | properties to update
  dict | new properties

Returns
  the number of changed properties

The properties in props are updated with dict. Keys in dict with NULL values are removed from props.

References pw_properties_set().

Referenced by pw_core_update_properties(), pw_filter_update_properties(), pw_impl_client::pw_impl_client_update_properties(), pw_impl_core_update_properties(), pw_impl_factory_update_properties(), pw_impl_module_update_properties(), and pw_stream_update_properties().

## ◆ pw_properties_update_keys()

SPA_EXPORT int pw_properties_update_keys | ( | struct pw_properties * | props,
|  | const struct spa_dict * | dict,
|  | const char * | keys[]
| ) |  |

Copy multiple keys from one property to another.

Parameters

  src | properties to copy from
  dst | properties to copy to
  keys | a NULL terminated list of keys to copy

Returns
  the number of keys changed in dest

References dict, and pw_properties_set().

Referenced by pw_impl_client_register(), pw_impl_core_register(), pw_impl_device_register(), pw_impl_factory_register(), pw_impl_link_register(), pw_impl_node_register(), and pw_impl_port_register().

## Field Documentation

## ◆ dict

struct spa_dict pw_properties::dict

dictionary of key/values

Referenced by pw_context_create_device(), pw_context_create_factory(), pw_context_create_port(), pw_core_update_properties(), pw_filter_update_properties(), pw_impl_node_register(), pw_properties_copy(), and pw_properties_update_keys().

## ◆ flags

uint32_t pw_properties::flags

extra flags

The documentation for this class was generated from the following files:

- properties.h
- properties.c