Link
Core API

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

## Files

file | link.h
| `pipewire/link.h`

## Data Structures

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

## Macros

#define | PW_TYPE_INTERFACE_Link PW_TYPE_INFO_INTERFACE_BASE "Link"
#define | PW_VERSION_LINK 3
#define | PW_LINK_CHANGE_MASK_STATE (1 << 0)
#define | PW_LINK_CHANGE_MASK_FORMAT (1 << 1)
#define | PW_LINK_CHANGE_MASK_PROPS (1 << 2)
#define | PW_LINK_CHANGE_MASK_ALL ((1 << 3)-1)
#define | PW_LINK_EVENT_INFO 0
#define | PW_LINK_EVENT_NUM 1
#define | PW_VERSION_LINK_EVENTS 0
#define | PW_LINK_METHOD_ADD_LISTENER 0
#define | PW_LINK_METHOD_NUM 1
#define | PW_VERSION_LINK_METHODS 0
#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_info * | pw_link_info_update (struct pw_link_info *info, const struct pw_link_info *update)
struct pw_link_info * | pw_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 (Node).

Nodes are linked together on ports.

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

## Macro Definition Documentation

## PW_TYPE_INTERFACE_Link

#define PW_TYPE_INTERFACE_Link PW_TYPE_INFO_INTERFACE_BASE "Link"

Examples
  local-v4l2.c.

## PW_VERSION_LINK

#define PW_VERSION_LINK 3

Examples
  local-v4l2.c.

## PW_LINK_CHANGE_MASK_STATE

#define PW_LINK_CHANGE_MASK_STATE (1 << 0)

## PW_LINK_CHANGE_MASK_FORMAT

#define PW_LINK_CHANGE_MASK_FORMAT (1 << 1)

## PW_LINK_CHANGE_MASK_PROPS

#define PW_LINK_CHANGE_MASK_PROPS (1 << 2)

## PW_LINK_CHANGE_MASK_ALL

#define PW_LINK_CHANGE_MASK_ALL ((1 << 3)-1)

## PW_LINK_EVENT_INFO

#define PW_LINK_EVENT_INFO 0

## PW_LINK_EVENT_NUM

#define PW_LINK_EVENT_NUM 1

## PW_VERSION_LINK_EVENTS

#define PW_VERSION_LINK_EVENTS 0

## PW_LINK_METHOD_ADD_LISTENER

#define PW_LINK_METHOD_ADD_LISTENER 0

## PW_LINK_METHOD_NUM

#define PW_LINK_METHOD_NUM 1

## PW_VERSION_LINK_METHODS

#define PW_VERSION_LINK_METHODS 0

## pw_link_method

#define pw_link_method | ( |  | o,
|  |  | method,
|  |  | version,
|  |  | ...
| ) |  |

## pw_link_add_listener

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

See also
  pw_link_methods.add_listener

## Enumeration Type Documentation

## pw_link_state

enum 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_state_as_string()

const char* pw_link_state_as_string | ( | enum pw_link_state | state | ) |

Convert a pw_link_state to a readable string.

## pw_link_info_update()

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

## pw_link_info_merge()

struct pw_link_info* pw_link_info_merge | ( | struct pw_link_info * | info,
|  | const struct pw_link_info * | update,
|  | bool | reset
| ) |  |

## pw_link_info_free()

void pw_link_info_free | ( | struct pw_link_info * | info | ) |