PipeWire 1.1.0
Loading...
Searching...
No Matches
Context

The PipeWire context object manages all locally available resources. More...

Files

file  context.h
 pipewire/context.h
 

Data Structures

struct  pw_context_events
 context events emitted by the context object added with pw_context_add_listener More...
 
struct  pw_export_type
 data for registering export functions More...
 
struct  pw_context
 
struct  pw_global
 
struct  pw_impl_client
 
struct  pw_impl_node
 

Macros

#define PW_VERSION_CONTEXT_EVENTS   1
 

Functions

struct pw_contextpw_context_new (struct pw_loop *main_loop, struct pw_properties *props, size_t user_data_size)
 Make a new context object for a given main_loop.
 
void pw_context_destroy (struct pw_context *context)
 destroy a context object, all resources except the main_loop will be destroyed
 
void * pw_context_get_user_data (struct pw_context *context)
 Get the context user data.
 
void pw_context_add_listener (struct pw_context *context, struct spa_hook *listener, const struct pw_context_events *events, void *data)
 Add a new event listener to a context.
 
const struct pw_propertiespw_context_get_properties (struct pw_context *context)
 Get the context properties.
 
int pw_context_update_properties (struct pw_context *context, const struct spa_dict *dict)
 Update the context properties.
 
const char * pw_context_get_conf_section (struct pw_context *context, const char *section)
 Get a config section for this context.
 
int pw_context_parse_conf_section (struct pw_context *context, struct pw_properties *conf, const char *section)
 Parse a standard config section for this context.
 
int pw_context_conf_update_props (struct pw_context *context, const char *section, struct pw_properties *props)
 update properties from a section into props.
 
int pw_context_conf_section_for_each (struct pw_context *context, const char *section, int(*callback)(void *data, const char *location, const char *section, const char *str, size_t len), void *data)
 emit callback for all config sections.
 
int pw_context_conf_section_match_rules (struct pw_context *context, const char *section, const struct spa_dict *props, int(*callback)(void *data, const char *location, const char *action, const char *str, size_t len), void *data)
 emit callback for all matched properties.
 
const struct spa_supportpw_context_get_support (struct pw_context *context, uint32_t *n_support)
 Get the context support objects.
 
struct pw_looppw_context_get_main_loop (struct pw_context *context)
 Get the context main loop.
 
struct pw_data_looppw_context_get_data_loop (struct pw_context *context)
 Get the context data loop.
 
struct pw_work_queuepw_context_get_work_queue (struct pw_context *context)
 Get the work queue from the context: Since 0.3.26.
 
struct pw_mempoolpw_context_get_mempool (struct pw_context *context)
 Get the memory pool from the context: Since 0.3.74.
 
int pw_context_for_each_global (struct pw_context *context, int(*callback)(void *data, struct pw_global *global), void *data)
 Iterate the globals of the context.
 
struct pw_globalpw_context_find_global (struct pw_context *context, uint32_t id)
 Find a context global by id.
 
int pw_context_add_spa_lib (struct pw_context *context, const char *factory_regex, const char *lib)
 add a spa library for the given factory_name regex
 
const char * pw_context_find_spa_lib (struct pw_context *context, const char *factory_name)
 find the library name for a spa factory
 
struct spa_handlepw_context_load_spa_handle (struct pw_context *context, const char *factory_name, const struct spa_dict *info)
 Load a SPA handle from a context.
 
int pw_context_register_export_type (struct pw_context *context, struct pw_export_type *type)
 register a type that can be exported on a context_proxy.
 
const struct pw_export_typepw_context_find_export_type (struct pw_context *context, const char *type)
 find information about registered export type
 
int pw_context_set_object (struct pw_context *context, const char *type, void *value)
 add an object to the context
 
void * pw_context_get_object (struct pw_context *context, const char *type)
 get an object from the context
 

Detailed Description

The PipeWire context object manages all locally available resources.

It is used by both clients and servers.

The context is used to:

Macro Definition Documentation

◆ PW_VERSION_CONTEXT_EVENTS

#define PW_VERSION_CONTEXT_EVENTS   1

Function Documentation

◆ pw_context_new()

struct pw_context * pw_context_new ( struct pw_loop main_loop,
struct pw_properties properties,
size_t  user_data_size 
)

Make a new context object for a given main_loop.

Ownership of the properties is taken, even if the function returns NULL.

Parameters
main_loopA main loop to run in. This must stay alive unil pw_context_destroy() is called.
propsextra properties
user_data_sizeextra user data size
Returns
The context object on success, or NULL on failure, in which case errno is set.

Make a new context object for a given main_loop.

Parameters
main_loopthe main loop to use
propertiesextra properties for the context, ownership it taken
Returns
a newly allocated context object
Examples
bluez-session.c, export-sink.c, export-source.c, export-spa-device.c, export-spa.c, internal.c, local-v4l2.c, tutorial2.c, tutorial3.c, tutorial6.c, video-dsp-src.c, and video-src.c.

◆ pw_context_destroy()

void pw_context_destroy ( struct pw_context context)

destroy a context object, all resources except the main_loop will be destroyed

destroy a context object, all resources except the main_loop will be destroyed

Parameters
contexta context to destroy
Examples
bluez-session.c, export-sink.c, export-source.c, export-spa-device.c, export-spa.c, internal.c, local-v4l2.c, tutorial2.c, tutorial3.c, tutorial6.c, video-dsp-src.c, and video-src.c.

◆ pw_context_get_user_data()

void * pw_context_get_user_data ( struct pw_context context)

Get the context user data.

◆ pw_context_add_listener()

void pw_context_add_listener ( struct pw_context context,
struct spa_hook listener,
const struct pw_context_events events,
void *  data 
)

Add a new event listener to a context.

◆ pw_context_get_properties()

const struct pw_properties * pw_context_get_properties ( struct pw_context context)

Get the context properties.

◆ pw_context_update_properties()

int pw_context_update_properties ( struct pw_context context,
const struct spa_dict dict 
)

Update the context properties.

Update the context properties.

Parameters
contexta context
dictproperties to update

Update the context object with the given properties

◆ pw_context_get_conf_section()

const char * pw_context_get_conf_section ( struct pw_context context,
const char *  section 
)

Get a config section for this context.

Since 0.3.22, deprecated, use pw_context_conf_section_for_each().

◆ pw_context_parse_conf_section()

int pw_context_parse_conf_section ( struct pw_context context,
struct pw_properties conf,
const char *  section 
)

Parse a standard config section for this context.

Since 0.3.22

◆ pw_context_conf_update_props()

int pw_context_conf_update_props ( struct pw_context context,
const char *  section,
struct pw_properties props 
)

update properties from a section into props.

Since 0.3.45

◆ pw_context_conf_section_for_each()

int pw_context_conf_section_for_each ( struct pw_context context,
const char *  section,
int(*)(void *data, const char *location, const char *section, const char *str, size_t len)  callback,
void *  data 
)

emit callback for all config sections.

Since 0.3.45

◆ pw_context_conf_section_match_rules()

int pw_context_conf_section_match_rules ( struct pw_context context,
const char *  section,
const struct spa_dict props,
int(*)(void *data, const char *location, const char *action, const char *str, size_t len)  callback,
void *  data 
)

emit callback for all matched properties.

Since 0.3.46

◆ pw_context_get_support()

const struct spa_support * pw_context_get_support ( struct pw_context context,
uint32_t *  n_support 
)

Get the context support objects.

◆ pw_context_get_main_loop()

struct pw_loop * pw_context_get_main_loop ( struct pw_context context)

Get the context main loop.

Returns the value passed to pw_context_new().

◆ pw_context_get_data_loop()

struct pw_data_loop * pw_context_get_data_loop ( struct pw_context context)

Get the context data loop.

This loop runs on the realtime thread. Since 0.3.56

◆ pw_context_get_work_queue()

struct pw_work_queue * pw_context_get_work_queue ( struct pw_context context)

Get the work queue from the context: Since 0.3.26.

◆ pw_context_get_mempool()

struct pw_mempool * pw_context_get_mempool ( struct pw_context context)

Get the memory pool from the context: Since 0.3.74.

◆ pw_context_for_each_global()

int pw_context_for_each_global ( struct pw_context context,
int(*)(void *data, struct pw_global *global)  callback,
void *  data 
)

Iterate the globals of the context.

The callback should return 0 to fetch the next item, any other value stops the iteration and returns the value. When all callbacks return 0, this function returns 0 when all globals are iterated.

◆ pw_context_find_global()

struct pw_global * pw_context_find_global ( struct pw_context context,
uint32_t  id 
)

Find a context global by id.

Returns
The global on success, or NULL on failure. If id is PW_ID_CORE, this function will always return a non-NULL value.
Parameters
contextthe context
idthe global id

◆ pw_context_add_spa_lib()

int pw_context_add_spa_lib ( struct pw_context context,
const char *  factory_regex,
const char *  lib 
)

add a spa library for the given factory_name regex

◆ pw_context_find_spa_lib()

const char * pw_context_find_spa_lib ( struct pw_context context,
const char *  factory_name 
)

find the library name for a spa factory

◆ pw_context_load_spa_handle()

struct spa_handle * pw_context_load_spa_handle ( struct pw_context context,
const char *  factory_name,
const struct spa_dict info 
)

Load a SPA handle from a context.

On failure returns NULL and sets errno.

Examples
bluez-session.c, and export-spa.c.

◆ pw_context_register_export_type()

int pw_context_register_export_type ( struct pw_context context,
struct pw_export_type type 
)

register a type that can be exported on a context_proxy.

This is usually used by extension modules

◆ pw_context_find_export_type()

const struct pw_export_type * pw_context_find_export_type ( struct pw_context context,
const char *  type 
)

find information about registered export type

◆ pw_context_set_object()

int pw_context_set_object ( struct pw_context context,
const char *  type,
void *  value 
)

add an object to the context

Parameters
contextThe context.
typeThe type of the object, usually a TYPE_INTERFACE_ value.
valueThe object value. Must last as long as the context and must be of the type corresponding to the type.
Returns
A negative number on failure (out of memory).

◆ pw_context_get_object()

void * pw_context_get_object ( struct pw_context context,
const char *  type 
)

get an object from the context

Parameters
contextThe context.
typeThe string corresponding to the object's interface.
Returns
The object, or NULL if the object does not exist.