PipeWire 1.2.1
Loading...
Searching...
No Matches
pw_client_node_events Struct Reference

Client Node events More...

#include <pipewire/extensions/client-node.h>

Data Fields

uint32_t version
 
int(* transport )(void *data, int readfd, int writefd, uint32_t mem_id, uint32_t offset, uint32_t size)
 Notify of a new transport area.
 
int(* set_param )(void *data, uint32_t id, uint32_t flags, const struct spa_pod *param)
 Notify of a property change.
 
int(* set_io )(void *data, uint32_t id, uint32_t mem_id, uint32_t offset, uint32_t size)
 Configure an IO area for the client.
 
int(* event )(void *data, const struct spa_event *event)
 Receive an event from the client node.
 
int(* command )(void *data, const struct spa_command *command)
 Notify of a new node command.
 
int(* add_port )(void *data, enum spa_direction direction, uint32_t port_id, const struct spa_dict *props)
 A new port was added to the node.
 
int(* remove_port )(void *data, enum spa_direction direction, uint32_t port_id)
 A port was removed from the node.
 
int(* port_set_param )(void *data, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t flags, const struct spa_pod *param)
 A parameter was configured on the port.
 
int(* port_use_buffers )(void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t flags, uint32_t n_buffers, struct pw_client_node_buffer *buffers)
 Notify the port of buffers.
 
int(* port_set_io )(void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t id, uint32_t mem_id, uint32_t offset, uint32_t size)
 Configure the io area with id of port_id.
 
int(* set_activation )(void *data, uint32_t node_id, int signalfd, uint32_t mem_id, uint32_t offset, uint32_t size)
 Notify the activation record of the next node to trigger.
 
int(* port_set_mix_info )(void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t peer_id, const struct spa_dict *props)
 Notify about the peer of mix_id.
 

Detailed Description

Client Node events

Field Documentation

◆ version

uint32_t pw_client_node_events::version

◆ transport

int(* pw_client_node_events::transport) (void *data, int readfd, int writefd, uint32_t mem_id, uint32_t offset, uint32_t size)

Notify of a new transport area.

The transport area is used to signal the client and the server.

Parameters
readfdfd for signal data can be read
writefdfd for signal data can be written
mem_idid for activation memory
offsetoffset of activation memory
sizesize of activation memory

◆ set_param

int(* pw_client_node_events::set_param) (void *data, uint32_t id, uint32_t flags, const struct spa_pod *param)

Notify of a property change.

When the server configures the properties on the node this event is sent

Parameters
idthe id of the parameter
flagsparameter flags
paramthe param to set

◆ set_io

int(* pw_client_node_events::set_io) (void *data, uint32_t id, uint32_t mem_id, uint32_t offset, uint32_t size)

Configure an IO area for the client.

IO areas are identified with an id and are used to exchange state between client and server

Parameters
idthe id of the io area
mem_idthe id of the memory to use
offsetoffset of io area in memory
sizesize of the io area

◆ event

int(* pw_client_node_events::event) (void *data, const struct spa_event *event)

Receive an event from the client node.

Parameters
eventthe received event

◆ command

int(* pw_client_node_events::command) (void *data, const struct spa_command *command)

Notify of a new node command.

Parameters
commandthe command

◆ add_port

int(* pw_client_node_events::add_port) (void *data, enum spa_direction direction, uint32_t port_id, const struct spa_dict *props)

A new port was added to the node.

The server can at any time add a port to the node when there are free ports available.

Parameters
directionthe direction of the port
port_idthe new port id
propsextra properties

◆ remove_port

int(* pw_client_node_events::remove_port) (void *data, enum spa_direction direction, uint32_t port_id)

A port was removed from the node.

Parameters
directiona port direction
port_idthe remove port id

◆ port_set_param

int(* pw_client_node_events::port_set_param) (void *data, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t flags, const struct spa_pod *param)

A parameter was configured on the port.

Parameters
directiona port direction
port_idthe port id
idthe id of the parameter
flagsflags used when setting the param
paramthe new param

◆ port_use_buffers

int(* pw_client_node_events::port_use_buffers) (void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t flags, uint32_t n_buffers, struct pw_client_node_buffer *buffers)

Notify the port of buffers.

Parameters
directiona port direction
port_idthe port id
mix_idthe mixer port id
n_bufferthe number of buffers
buffersand array of buffer descriptions

◆ port_set_io

int(* pw_client_node_events::port_set_io) (void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t id, uint32_t mem_id, uint32_t offset, uint32_t size)

Configure the io area with id of port_id.

Parameters
directionthe direction of the port
port_idthe port id
mix_idthe mixer port id
idthe id of the io area to set
mem_idthe id of the memory to use
offsetoffset of io area in memory
sizesize of the io area

◆ set_activation

int(* pw_client_node_events::set_activation) (void *data, uint32_t node_id, int signalfd, uint32_t mem_id, uint32_t offset, uint32_t size)

Notify the activation record of the next node to trigger.

Parameters
node_idthe peer node id
signalfdthe fd to wake up the peer
mem_idthe mem id of the memory
theoffset in mem_id to map
thesize of mem_id to map

◆ port_set_mix_info

int(* pw_client_node_events::port_set_mix_info) (void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t peer_id, const struct spa_dict *props)

Notify about the peer of mix_id.

Parameters
directionthe direction of the port
port_idthe port id
mix_idthe mix id
peer_idthe id of the peer port
propsextra properties

Since version 4:1


The documentation for this struct was generated from the following file: