PipeWire 1.2.5
Loading...
Searching...
No Matches

Node interface More...

Files

file  node.h
 pipewire/node.h
 

Data Structures

struct  pw_node_info
 The node information. More...
 
struct  pw_node_events
 Node events. More...
 
struct  pw_node_methods
 Node methods. More...
 
struct  pw_node
 

Enumerations

enum  pw_node_state {
  PW_NODE_STATE_ERROR = -1 , PW_NODE_STATE_CREATING = 0 , PW_NODE_STATE_SUSPENDED = 1 , PW_NODE_STATE_IDLE = 2 ,
  PW_NODE_STATE_RUNNING = 3
}
 The different node states. More...
 

Macros

#define PW_TYPE_INTERFACE_Node   PW_TYPE_INFO_INTERFACE_BASE "Node"
 
#define PW_NODE_PERM_MASK   PW_PERM_RWXML
 
#define PW_VERSION_NODE   3
 
#define PW_NODE_CHANGE_MASK_INPUT_PORTS   (1 << 0)
 
#define PW_NODE_CHANGE_MASK_OUTPUT_PORTS   (1 << 1)
 
#define PW_NODE_CHANGE_MASK_STATE   (1 << 2)
 
#define PW_NODE_CHANGE_MASK_PROPS   (1 << 3)
 
#define PW_NODE_CHANGE_MASK_PARAMS   (1 << 4)
 
#define PW_NODE_CHANGE_MASK_ALL   ((1 << 5)-1)
 
#define PW_NODE_EVENT_INFO   0
 
#define PW_NODE_EVENT_PARAM   1
 
#define PW_NODE_EVENT_NUM   2
 
#define PW_VERSION_NODE_EVENTS   0
 
#define PW_NODE_METHOD_ADD_LISTENER   0
 
#define PW_NODE_METHOD_SUBSCRIBE_PARAMS   1
 
#define PW_NODE_METHOD_ENUM_PARAMS   2
 
#define PW_NODE_METHOD_SET_PARAM   3
 
#define PW_NODE_METHOD_SEND_COMMAND   4
 
#define PW_NODE_METHOD_NUM   5
 
#define PW_VERSION_NODE_METHODS   0
 
#define pw_node_method(o, method, version, ...)
 
#define pw_node_add_listener(c, ...)   pw_node_method(c,add_listener,0,__VA_ARGS__)
 Node.
 
#define pw_node_subscribe_params(c, ...)   pw_node_method(c,subscribe_params,0,__VA_ARGS__)
 Subscribe to parameter changes.
 
#define pw_node_enum_params(c, ...)   pw_node_method(c,enum_params,0,__VA_ARGS__)
 Enumerate node parameters.
 
#define pw_node_set_param(c, ...)   pw_node_method(c,set_param,0,__VA_ARGS__)
 Set a parameter on the node.
 
#define pw_node_send_command(c, ...)   pw_node_method(c,send_command,0,__VA_ARGS__)
 Send a command to the node.
 

Functions

const char * pw_node_state_as_string (enum pw_node_state state)
 Convert a pw_node_state to a readable string.
 
struct pw_node_infopw_node_info_update (struct pw_node_info *info, const struct pw_node_info *update)
 
struct pw_node_infopw_node_info_merge (struct pw_node_info *info, const struct pw_node_info *update, bool reset)
 
void pw_node_info_free (struct pw_node_info *info)
 

Detailed Description

Node interface

Enumeration Type Documentation

◆ pw_node_state

The different node states.

Enumerator
PW_NODE_STATE_ERROR 

error state

PW_NODE_STATE_CREATING 

the node is being created

PW_NODE_STATE_SUSPENDED 

the node is suspended, the device might be closed

PW_NODE_STATE_IDLE 

the node is running but there is no active port

PW_NODE_STATE_RUNNING 

the node is running

Macro Definition Documentation

◆ PW_TYPE_INTERFACE_Node

#define PW_TYPE_INTERFACE_Node   PW_TYPE_INFO_INTERFACE_BASE "Node"
Examples
internal.c.

◆ PW_NODE_PERM_MASK

#define PW_NODE_PERM_MASK   PW_PERM_RWXML

◆ PW_VERSION_NODE

#define PW_VERSION_NODE   3
Examples
internal.c.

◆ PW_NODE_CHANGE_MASK_INPUT_PORTS

#define PW_NODE_CHANGE_MASK_INPUT_PORTS   (1 << 0)

◆ PW_NODE_CHANGE_MASK_OUTPUT_PORTS

#define PW_NODE_CHANGE_MASK_OUTPUT_PORTS   (1 << 1)

◆ PW_NODE_CHANGE_MASK_STATE

#define PW_NODE_CHANGE_MASK_STATE   (1 << 2)

◆ PW_NODE_CHANGE_MASK_PROPS

#define PW_NODE_CHANGE_MASK_PROPS   (1 << 3)

◆ PW_NODE_CHANGE_MASK_PARAMS

#define PW_NODE_CHANGE_MASK_PARAMS   (1 << 4)

◆ PW_NODE_CHANGE_MASK_ALL

#define PW_NODE_CHANGE_MASK_ALL   ((1 << 5)-1)

◆ PW_NODE_EVENT_INFO

#define PW_NODE_EVENT_INFO   0

◆ PW_NODE_EVENT_PARAM

#define PW_NODE_EVENT_PARAM   1

◆ PW_NODE_EVENT_NUM

#define PW_NODE_EVENT_NUM   2

◆ PW_VERSION_NODE_EVENTS

#define PW_VERSION_NODE_EVENTS   0

◆ PW_NODE_METHOD_ADD_LISTENER

#define PW_NODE_METHOD_ADD_LISTENER   0

◆ PW_NODE_METHOD_SUBSCRIBE_PARAMS

#define PW_NODE_METHOD_SUBSCRIBE_PARAMS   1

◆ PW_NODE_METHOD_ENUM_PARAMS

#define PW_NODE_METHOD_ENUM_PARAMS   2

◆ PW_NODE_METHOD_SET_PARAM

#define PW_NODE_METHOD_SET_PARAM   3

◆ PW_NODE_METHOD_SEND_COMMAND

#define PW_NODE_METHOD_SEND_COMMAND   4

◆ PW_NODE_METHOD_NUM

#define PW_NODE_METHOD_NUM   5

◆ PW_VERSION_NODE_METHODS

#define PW_VERSION_NODE_METHODS   0

◆ pw_node_method

#define pw_node_method ( o,
method,
version,
... )

◆ pw_node_add_listener

#define pw_node_add_listener ( c,
... )   pw_node_method(c,add_listener,0,__VA_ARGS__)

◆ pw_node_subscribe_params

#define pw_node_subscribe_params ( c,
... )   pw_node_method(c,subscribe_params,0,__VA_ARGS__)

Subscribe to parameter changes.

Automatically emit param events for the given ids when they are changed.

Parameters
idsan array of param ids
n_idsthe number of ids in ids

This requires X permissions on the node.

See also
pw_node_methods.subscribe_params

◆ pw_node_enum_params

#define pw_node_enum_params ( c,
... )   pw_node_method(c,enum_params,0,__VA_ARGS__)

Enumerate node parameters.

Start enumeration of node parameters. For each param, a param event will be emitted.

Parameters
seqa sequence number to place in the reply
idthe parameter id to enum or PW_ID_ANY for all
startthe start index or 0 for the first param
numthe maximum number of params to retrieve
filtera param filter or NULL

This requires X permissions on the node.

See also
pw_node_methods.enum_params

◆ pw_node_set_param

#define pw_node_set_param ( c,
... )   pw_node_method(c,set_param,0,__VA_ARGS__)

Set a parameter on the node.

Parameters
idthe parameter id to set
flagsextra parameter flags
paramthe parameter to set

This requires X and W permissions on the node.

See also
pw_node_methods.set_param

◆ pw_node_send_command

#define pw_node_send_command ( c,
... )   pw_node_method(c,send_command,0,__VA_ARGS__)

Send a command to the node.

Parameters
commandthe command to send

This requires X and W permissions on the node.

See also
pw_node_methods.send_command

Function Documentation

◆ pw_node_state_as_string()

const char * pw_node_state_as_string ( enum pw_node_state state)

Convert a pw_node_state to a readable string.

◆ pw_node_info_update()

struct pw_node_info * pw_node_info_update ( struct pw_node_info * info,
const struct pw_node_info * update )

◆ pw_node_info_merge()

struct pw_node_info * pw_node_info_merge ( struct pw_node_info * info,
const struct pw_node_info * update,
bool reset )

◆ pw_node_info_free()

void pw_node_info_free ( struct pw_node_info * info)