Return TRUE if the currently linked PipeWire library version is equal
or newer than the specified version. Since 0.3.75
Free a \ref pw_client_info
Merge an existing \ref pw_client_info with \a update
Update an existing \ref pw_client_info with \a update with reset
\addtogroup pw_conf
{
Add a new event listener to a context
add a spa library for the given factory_name regex
emit callback for all config sections. Since 0.3.45
emit callback for all matched properties. Since 0.3.46
update properties from a section into props. Since 0.3.45
Connect to a PipeWire instance
Connect to a PipeWire instance on the given socket
Connect to a given PipeWire instance
Create a new client. This is mainly used by protocols.
Make a new link between two ports
\return a newly allocated link
Create a new node
Create a new port
\return a newly allocated port
destroy a context object, all resources except the main_loop will be destroyed
find information about registered export type
Find a factory by name
Find a context global by id
find the library name for a spa factory
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.
Get a config section for this context. Since 0.3.22, deprecated,
use pw_context_conf_section_for_each().
get the context data loop. Since 0.3.56
get the context main loop
Get the memmory pool from the context: Since 0.3.74
get an object from the context
Get the context properties
Get the context support objects
Get the context user data
Get the work queue from the context: Since 0.3.26
Make a new context object for a given main_loop. Ownership of the properties is taken
Parse a standard config section for this context. Since 0.3.22
register a type that can be exported on a context_proxy. This is usually used by
extension modules
add an object to the context
Update the context properties
Add an event listener on the control
Get the control parent port or NULL when not set
disconnect and destroy a core
Export an object into the PipeWire instance associated with core
Get the proxy with the given id
Get the client proxy of the connected core. This will have the id
of PW_ID_CLIENT (1)
Get the context object used to created this core
Get the core mempool object
Get properties from the core
Get the user_data. It is of the size specified when this object was
constructed
Free a \ref pw_core_info
Update an existing \ref pw_core_info with \a update
Update an existing \ref pw_core_info with \a update with reset
Pause or resume the core. When the core is paused, no new events
will be dispatched until the core is resumed again.
Steal the fd of the core connection or < 0 on error. The core
will be disconnected after this call.
Update the core properties. This updates the properties
of the associated client.
\return the number of properties that were updated
Add an event listener to loop
Destroy the loop
make sure the thread will exit. Can be called from a loop callback
Get the loop implementation of this data loop
Get the thread object
Check if the current thread is the processing thread
invoke func in the context of the thread or in the caller thread when
the loop is not running. Since 0.3.3
Make a new loop.
Set a custom spa_thread_utils for this loop. Setting NULL restores the
system default implementation. Since 0.3.50
Start the processing thread
Stop the processing thread
wait for activity on the loop up to \a timeout milliseconds.
Should be called from the loop function
Free a \ref pw_device_info
Merge and existing \ref pw_device_info with \a update
Update and existing \ref pw_device_info with \a update and reset
Convert a \ref pw_direction to a readable string
add a port to the filter, returns user data of port_data_size.
Connect a filter for processing.
\return 0 on success < 0 on error.
Get a buffer that can be filled for output ports or consumed
for input ports.
Destroy a filter
Disconnect \a filter
Flush a filter. When \a drain is true, the drained callback will
be called when all data is played or recorded
Get a data pointer to the buffer data
Get the node ID of the filter.
\return node ID.
Get the current time in nanoseconds. This value can be compared with
the nsec value in the spa_io_position. Since 1.0.4
get properties, port_data of NULL will give global properties
Query the time on the filter, deprecated, use the spa_io_position in the
process() method for timing information.
Check if the filter is driving. The filter needs to have the
PW_FILTER_FLAG_DRIVER set. When the filter is driving,
pw_filter_trigger_process() needs to be called when data is
available (output) or needed (input). Since 0.3.66
Create a new unconneced \ref pw_filter
\return a newly allocated \ref pw_filter
Submit a buffer for playback or recycle a buffer for capture.
remove a port from the filter
Activate or deactivate the filter
Set the filter in error state
Convert a filter state to a readable string
Trigger a push/pull on the filter. One iteration of the graph will
be scheduled and process() will be called. Since 0.3.66
Update params, use NULL port_data for global filter params
Update properties, use NULL port_data for global filter properties
Return the version of the library the current application is
linked to.
Add an event listener on the global
Add a resource to a global
Let a client bind to a global
Destroy a global
Iterate all resources added to the global 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
items are iterated.
Get the context object of this global
Get the unique id of the global
Get the object associated with the global. This depends on the type of the
global
Get the permissions of the global for a given client
Get the global properties
Get the serial number of the global
Get the global type
Get the global version
Check a global type
Create a new global object
Register a global object to the context registry
Update the global properties, must be done when unregistered
listen to events from this client
check if a client has permissions for global_id, Since 0.3.9
Destroy a previously created client
Get a resource with the given id
Get the context used to create this client
Get the client core resource
Get the global associated with this client
Get the client information
Get the mempool associated with this client, Since 0.3.74
Get the client properties
Get the protocol used to create this client
Get the client user data
Finish configuration and register a client
Mark the client busy. This can be used when an asynchronous operation is
started and no further processing is allowed to happen for the client
Update the client permissions
Update the client properties
Add an event listener
Get the global of this core
Get the core information
Get the core properties
Update the core properties
Add an event listener
Get the global of this device
Get the device implementation
Set the device implementation
Add an event listener
Get the global of this factory
Get the factory info
Get the factory properties
Update the factory properties
Add an event listener to \a link
Destroy a link
Find the link between 2 ports
Get the context of a link
Get the global of the link
Get the link info
Get the input port of the link
Get the output port of the link
Get the user_data of a link, the size of the memory is given when
constructing the link
Finish link configuration and register
Add an event listener
Get the global of this metadata
Get the metadata properties
Set a property
Add an event listener to a module
Destroy a module
Get the context of a module
Get the global of a module
Get the module info
Get the module properties
Schedule a destroy later on the main thread
Update the module properties
Add an event listener
Add an rt_event listener
Destroy a node
Find the port with direction and port_id or NULL when not found. Passing
PW_ID_ANY for port_id will return any port, preferably an unlinked one.
Iterate the ports in the given direction. 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
items are iterated.
Get the context of this node
Get a free unused port_id from the node
Get the global of this node
Get the node implementation
Get the node info
Get the node properties
Get node user_data. The size of the memory was given in \ref pw_context_create_node
Check if a node is active
Complete initialization of the node and register
Check if a node is active, Since 0.3.39
Set a node active. This will start negotiation with all linked active
nodes and start data transport
Set the node implementation
Set a param on the node, Since 0.3.65
Update the node properties
Add a port to a node
Add an event listener on the port
Get the port direction
Get the port id
Get the port info
Get the port parent node or NULL when not yet set
Get the port properties
check is a port has links, return 0 if not, 1 if it is linked
Get the port state as a string
Update the port properties
\addtogroup pw_pipewire
{
Convert a \ref pw_link_state to a readable string
Get the log interface
Log a message for the default topic
Log a message for a topic
Log a message for a topic
Log a message for the default topic
Configure a logging module. This is usually done automatically
in pw_init() but you can install a custom logger before calling
pw_init().
Configure the logging level
Add an event listener
Destroy a loop
Get the loop implementation
Create a new main loop.
Quit a main loop
Run a main loop. This blocks until \ref pw_main_loop_quit is called
Free a memblock regardless of the refcount and destroy all mappings
Map a region of a memory block
Unmap a region
Listen for events
Allocate a memory block from the pool
Clear a pool
Clear and destroy a pool
Find memblock for given \a fd
Find memblock for given \a id
Find memblock for given \a ptr
find a map with the given tag
Import an fd into the pool
Import a block from another pool
Map a region of a memory block with \a id
Create a new memory pool
Remove a memblock for given \a id
Free a \ref pw_module_info
Merge and existing \ref pw_module_info with \a update
Update and existing \ref pw_module_info with \a update with reset
Convert a \ref pw_node_state to a readable string
Add an event listener to proxy
Add a listener for the events received from the remote object. The
events depend on the type of the remote object type.
destroy a proxy
Generate an error for a proxy
Get the global id bound to this proxy of SPA_ID_INVALID when not bound
to a global
Get the local id of the proxy
Get the marshal functions for the proxy
Get the listener of proxy
Get the protocol used for the proxy
Get the type and version of the proxy
Get the user_data. The size was given in \ref pw_proxy_new
Install a marshal function on a proxy
Set the global id this proxy is bound to. This is usually used internally
and will also emit the bound event
Generate an sync method for a proxy. This will generate a done event
with the same seq number of the reply.
Add an event listener
Set the resource implementation.
Destroy a resource
Generate an error for a resource
Get the global id this resource is bound to or SPA_ID_INVALID when not bound
Get the client owning this resource
Get the unique id of this resource
Get the marshal functions for the resource
Get the list of object listeners from a resource
Get the permissions of this resource
Get the protocol used for this resource
Get the type and optionally the version of this resource
Get the user data for the resource, the size was given in \ref pw_resource_new
install a marshal function on a resource
Make a new resource for client
Generate an ping event for a resource. This will generate a pong event
with the same \a sequence number in the return value.
ref/unref a resource, Since 0.3.52
Remove a resource, like pw_resource_destroy but without sending a
remove_id message to the client
Notify global id this resource is bound to
Connect a stream for input or output on \a port_path.
\return 0 on success < 0 on error.
Get a buffer that can be filled for playback streams or consumed
for capture streams.
Destroy a stream
Disconnect \a stream
Flush a stream. When \a drain is true, the drained callback will
be called when all data is played or recorded
Get control values
Get the node ID of the stream.
\return node ID.
Get the current time in nanoseconds. This value can be compared with
the pw_time_now value. Since 1.0.4
Query the time on the stream, deprecated since 0.3.50,
use pw_stream_get_time_n() to get the fields added since 0.3.50.
Query the time on the stream
Check if the stream is driving. The stream needs to have the
PW_STREAM_FLAG_DRIVER set. When the stream is driving,
pw_stream_trigger_process() needs to be called when data is
available (output) or needed (input). Since 0.3.34
Create a new unconneced \ref pw_stream
\return a newly allocated \ref pw_stream
Submit a buffer for playback or recycle a buffer for capture.
Activate or deactivate the stream
Set control values
Set the stream in error state
Set a parameter on the stream. This is like pw_stream_set_control() but with
a complete spa_pod param. It can also be called from the param_changed event handler
to intercept and modify the param for the adapter. Since 0.3.70
Convert a stream state to a readable string
Trigger a push/pull on the stream. One iteration of the graph will
scheduled and process() will be called. Since 0.3.34
Update the param exposed on the stream.
Signal all threads executing \ref pw_thread_loop_signal with wait_for_accept
Add an event listener
Destroy a thread loop
Get the loop implementation of the thread loop
Get a struct timespec suitable for \ref pw_thread_loop_timed_wait_full.
Since: 0.3.7
Check if inside the thread
Lock the loop. This ensures exclusive ownership of the loop
Make a new thread loop with the given name and optional properties.
Make a new thread loop with the given loop, name and optional properties.
When \a loop is NULL, a new loop will be created.
Signal all threads waiting with \ref pw_thread_loop_wait
Start the thread loop
Stop the thread loop
Release the lock and wait a maximum of ‘wait_max_sec’ seconds
until some thread calls \ref pw_thread_loop_signal or time out
Release the lock and wait up to \a abstime until some thread calls
\ref pw_thread_loop_signal. Use \ref pw_thread_loop_get_time to make a timeout.
Since: 0.3.7
Unlock the loop
Release the lock and wait until some thread calls \ref pw_thread_loop_signal