PipeWire  0.3.36
PipeWire Link

A link is the connection between 2 nodes (PipeWire Node). More...

Data Structures

struct  pw_link_info
 The link information. More...
 
struct  pw_link_events
 Link events. More...
 
struct  pw_link_methods
 Link methods. More...
 

Macros

#define PW_TYPE_INTERFACE_Link   PW_TYPE_INFO_INTERFACE_BASE "Link"
 
#define PW_VERSION_LINK   3
 
#define PW_LINK_EVENT_INFO   0
 
#define PW_LINK_EVENT_NUM   1
 
#define PW_LINK_METHOD_ADD_LISTENER   0
 
#define PW_LINK_METHOD_NUM   1
 
#define pw_link_method(o, method, version, ...)
 
#define pw_link_add_listener(c, ...)   pw_link_method(c,add_listener,0,__VA_ARGS__)
 

Enumerations

enum  pw_link_state {
  PW_LINK_STATE_ERROR = -2 , PW_LINK_STATE_UNLINKED = -1 , PW_LINK_STATE_INIT = 0 , PW_LINK_STATE_NEGOTIATING = 1 ,
  PW_LINK_STATE_ALLOCATING = 2 , PW_LINK_STATE_PAUSED = 3 , PW_LINK_STATE_ACTIVE = 4
}
 The different link states. More...
 

Functions

const char * pw_link_state_as_string (enum pw_link_state state)
 Convert a pw_link_state to a readable string. More...
 
struct pw_link_infopw_link_info_update (struct pw_link_info *info, const struct pw_link_info *update)
 
struct pw_link_infopw_link_info_merge (struct pw_link_info *info, const struct pw_link_info *update, bool reset)
 
void pw_link_info_free (struct pw_link_info *info)
 

Detailed Description

A link is the connection between 2 nodes (PipeWire Node).

Nodes are linked together on ports.

The link is responsible for negotiating the format and buffers for the nodes.

Macro Definition Documentation

◆ pw_link_add_listener

#define pw_link_add_listener (   c,
  ... 
)    pw_link_method(c,add_listener,0,__VA_ARGS__)

◆ PW_LINK_EVENT_INFO

#define PW_LINK_EVENT_INFO   0

◆ PW_LINK_EVENT_NUM

#define PW_LINK_EVENT_NUM   1

◆ pw_link_method

#define pw_link_method (   o,
  method,
  version,
  ... 
)
Value:
({ \
int _res = -ENOTSUP; \
spa_interface_call_res((struct spa_interface*)o, \
struct pw_link_methods, _res, \
method, version, ##__VA_ARGS__); \
_res; \
})
Definition: hook.h:146

◆ PW_LINK_METHOD_ADD_LISTENER

#define PW_LINK_METHOD_ADD_LISTENER   0

◆ PW_LINK_METHOD_NUM

#define PW_LINK_METHOD_NUM   1

◆ PW_TYPE_INTERFACE_Link

#define PW_TYPE_INTERFACE_Link   PW_TYPE_INFO_INTERFACE_BASE "Link"

◆ PW_VERSION_LINK

#define PW_VERSION_LINK   3

Enumeration Type Documentation

◆ pw_link_state

The different link states.

Enumerator
PW_LINK_STATE_ERROR 

the link is in error

PW_LINK_STATE_UNLINKED 

the link is unlinked

PW_LINK_STATE_INIT 

the link is initialized

PW_LINK_STATE_NEGOTIATING 

the link is negotiating formats

PW_LINK_STATE_ALLOCATING 

the link is allocating buffers

PW_LINK_STATE_PAUSED 

the link is paused

PW_LINK_STATE_ACTIVE 

the link is active

Function Documentation

◆ pw_link_info_free()

void pw_link_info_free ( struct pw_link_info info)

◆ pw_link_info_merge()

◆ pw_link_info_update()

struct pw_link_info* pw_link_info_update ( struct pw_link_info info,
const struct pw_link_info update 
)

References pw_link_info_merge().

◆ pw_link_state_as_string()

const char* pw_link_state_as_string ( enum pw_link_state  state)