PipeWire: impl-port.c File Reference

PipeWire 0.3.7

Data Structures | Macros | Functions
impl-port.c File Reference
Include dependency graph for impl-port.c:

## Data Structures
struct | result_port_params_data
struct | param_filter

## Macros
#define | NAME "port"

## Functions
void | pw_impl_port_update_state (struct pw_impl_port *port, enum pw_impl_port_state state, char *error)
SPA_EXPORT int | pw_impl_port_init_mix (struct pw_impl_port *port, struct pw_impl_port_mix *mix)
SPA_EXPORT int | pw_impl_port_release_mix (struct pw_impl_port *port, struct pw_impl_port_mix *mix)
SPA_EXPORT struct pw_impl_port * | pw_context_create_port (struct pw_context *context, enum pw_direction direction, uint32_t port_id, const struct spa_port_info *info, size_t user_data_size)
SPA_EXPORT int | pw_impl_port_set_mix (struct pw_impl_port *port, struct spa_node *node, uint32_t flags)
SPA_EXPORT enum pw_direction | pw_impl_port_get_direction (struct pw_impl_port *port)
| Get the port direction. More...
SPA_EXPORT uint32_t | pw_impl_port_get_id (struct pw_impl_port *port)
| Get the port id. More...
SPA_EXPORT const struct pw_properties * | pw_impl_port_get_properties (struct pw_impl_port *port)
| Get the port properties. More...
SPA_EXPORT int | pw_impl_port_update_properties (struct pw_impl_port *port, const struct spa_dict *dict)
| Update the port properties. More...
void | pw_impl_port_update_info (struct pw_impl_port *port, const struct spa_port_info *info)
SPA_EXPORT struct pw_impl_node * | pw_impl_port_get_node (struct pw_impl_port *port)
| Get the port parent node or NULL when not yet set. More...
SPA_EXPORT void | pw_impl_port_add_listener (struct pw_impl_port *port, struct spa_hook *listener, const struct pw_impl_port_events *events, void *data)
| Add an event listener on the port. More...
SPA_EXPORT const struct pw_port_info * | pw_impl_port_get_info (struct pw_impl_port *port)
| Get the port info. More...
SPA_EXPORT void * | pw_impl_port_get_user_data (struct pw_impl_port *port)
int | pw_impl_port_register (struct pw_impl_port *port, struct pw_properties *properties)
SPA_EXPORT int | pw_impl_port_add (struct pw_impl_port *port, struct pw_impl_node *node)
void | pw_impl_port_unlink (struct pw_impl_port *port)
void | pw_impl_port_destroy (struct pw_impl_port *port)
int | pw_impl_port_for_each_param (struct pw_impl_port *port, int seq, uint32_t param_id, uint32_t index, uint32_t max, const struct spa_pod *filter, int(*callback)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, struct spa_pod *param), void *data)
int | pw_impl_port_for_each_filtered_param (struct pw_impl_port *in_port, struct pw_impl_port *out_port, int seq, uint32_t in_param_id, uint32_t out_param_id, const struct spa_pod *filter, int(*callback)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, struct spa_pod *param), void *data)
int | pw_impl_port_for_each_link (struct pw_impl_port *port, int(*callback)(void *data, struct pw_impl_link *link), void *data)
SPA_EXPORT int | pw_impl_port_is_linked (struct pw_impl_port *port)
| check is a port has links, return 0 if not, 1 if it is linked More...
SPA_EXPORT int | pw_impl_port_set_param (struct pw_impl_port *port, uint32_t id, uint32_t flags, const struct spa_pod *param)
SPA_EXPORT int | pw_impl_port_use_buffers (struct pw_impl_port *port, struct pw_impl_port_mix *mix, uint32_t flags, struct spa_buffer **buffers, uint32_t n_buffers)

## Macro Definition Documentation

## ◆ NAME

#define NAME "port"

## Function Documentation

## ◆ pw_context_create_port()

SPA_EXPORT struct pw_impl_port* pw_context_create_port | ( | struct pw_context * | context,
|  | enum pw_direction | direction,
|  | uint32_t | port_id,
|  | const struct spa_port_info * | info,
|  | size_t | user_data_size
| ) |  |

References pw_properties::dict, NAME, pw_introspect::pw_direction_as_string(), PW_DIRECTION_INPUT, PW_IMPL_PORT_STATE_INIT, PW_KEY_PORT_PHYSICAL, PW_KEY_PORT_TERMINAL, pw_log::pw_log_debug, PW_PORT_CHANGE_MASK_PROPS, pw_properties::pw_properties_new(), pw_properties::pw_properties_new_dict(), pw_properties::pw_properties_set(), res, and impl::this.

## ◆ pw_impl_port_add()

SPA_EXPORT int pw_impl_port_add | ( | struct pw_impl_port * | port,
|  | struct pw_impl_node * | node
| ) |  |

References port::direction, port::node, port::port_id, PW_DIRECTION_INPUT, pw_impl_port_for_each_param(), pw_map::pw_map_insert_at(), pw_map::pw_map_lookup(), and res.

## ◆ pw_impl_port_add_listener()

SPA_EXPORT void pw_impl_port_add_listener | ( | struct pw_impl_port * | port,
|  | struct spa_hook * | listener,
|  | const struct pw_impl_port_events * | events,
|  | void * | data
| ) |  |

Add an event listener on the port.

## ◆ pw_impl_port_destroy()

void pw_impl_port_destroy | ( | struct pw_impl_port * | port | ) |

References NAME, pw_control_destroy(), and pw_log::pw_log_debug.

## ◆ pw_impl_port_for_each_filtered_param()

int pw_impl_port_for_each_filtered_param | ( | struct pw_impl_port * | in_port,
|  | struct pw_impl_port * | out_port,
|  | int | seq,
|  | uint32_t | in_param_id,
|  | uint32_t | out_param_id,
|  | const struct spa_pod * | filter,
|  | int(*)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, struct spa_pod *param) | callback,
|  | void * | data
| ) |  |

References param_filter::callback, param_filter::data, param_filter::in_param_id, param_filter::in_port, param_filter::out_param_id, param_filter::out_port, pw_impl_port_for_each_param(), res, and seq.

## ◆ pw_impl_port_for_each_link()

int pw_impl_port_for_each_link | ( | struct pw_impl_port * | port,
|  | int(*)(void *data, struct pw_impl_link *link) | callback,
|  | void * | data
| ) |  |

References port::direction, PW_DIRECTION_OUTPUT, and res.

Referenced by pw_impl_port_unlink().

## ◆ pw_impl_port_for_each_param()

int pw_impl_port_for_each_param | ( | struct pw_impl_port * | port,
|  | int | seq,
|  | uint32_t | param_id,
|  | uint32_t | index,
|  | uint32_t | max,
|  | const struct spa_pod * | filter,
|  | int(*)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, struct spa_pod *param) | callback,
|  | void * | data
| ) |  |

References result_port_params_data::callback, result_port_params_data::data, port::node, res, and seq.

Referenced by pw_impl_port_add(), and pw_impl_port_for_each_filtered_param().

## ◆ pw_impl_port_get_direction()

SPA_EXPORT enum pw_direction pw_impl_port_get_direction | ( | struct pw_impl_port * | port | ) |

Get the port direction.

References port::direction.

## ◆ pw_impl_port_get_id()

SPA_EXPORT uint32_t pw_impl_port_get_id | ( | struct pw_impl_port * | port | ) |

Get the port id.

References port::port_id.

## ◆ pw_impl_port_get_info()

SPA_EXPORT const struct pw_port_info* pw_impl_port_get_info | ( | struct pw_impl_port * | port | ) |

Get the port info.

References port::info.

## ◆ pw_impl_port_get_node()

SPA_EXPORT struct pw_impl_node* pw_impl_port_get_node | ( | struct pw_impl_port * | port | ) |

Get the port parent node or NULL when not yet set.

References port::node.

## ◆ pw_impl_port_get_properties()

SPA_EXPORT const struct pw_properties* pw_impl_port_get_properties | ( | struct pw_impl_port * | port | ) |

Get the port properties.

## ◆ pw_impl_port_get_user_data()

SPA_EXPORT void* pw_impl_port_get_user_data | ( | struct pw_impl_port * | port | ) |

References port::user_data.

## ◆ pw_impl_port_init_mix()

SPA_EXPORT int pw_impl_port_init_mix | ( | struct pw_impl_port * | port,
|  | struct pw_impl_port_mix * | mix
| ) |  |

References port::direction, port::link, NAME, port::port_id, pw_pipewire::pw_direction_reverse(), pw_log::pw_log_debug, pw_map::pw_map_insert_new(), and res.

## ◆ pw_impl_port_is_linked()

SPA_EXPORT int pw_impl_port_is_linked | ( | struct pw_impl_port * | port | ) |

check is a port has links, return 0 if not, 1 if it is linked

## ◆ pw_impl_port_register()

int pw_impl_port_register | ( | struct pw_impl_port * | port,
|  | struct pw_properties * | properties
| ) |  |

References port::node, pw_global::pw_global_new(), PW_KEY_FORMAT_DSP, PW_KEY_NODE_ID, PW_KEY_OBJECT_PATH, PW_KEY_PORT_ALIAS, PW_KEY_PORT_CONTROL, PW_KEY_PORT_DIRECTION, PW_KEY_PORT_NAME, PW_KEY_PORT_PHYSICAL, PW_KEY_PORT_TERMINAL, pw_properties::pw_properties_new(), pw_properties::pw_properties_setf(), pw_properties::pw_properties_update_keys(), PW_TYPE_INTERFACE_Port, and PW_VERSION_PORT.

## ◆ pw_impl_port_release_mix()

SPA_EXPORT int pw_impl_port_release_mix | ( | struct pw_impl_port * | port,
|  | struct pw_impl_port_mix * | mix
| ) |  |

References port::direction, NAME, port::port_id, pw_log::pw_log_debug, pw_map::pw_map_remove(), and res.

## ◆ pw_impl_port_set_mix()

SPA_EXPORT int pw_impl_port_set_mix | ( | struct pw_impl_port * | port,
|  | struct spa_node * | node,
|  | uint32_t | flags
| ) |  |

References port::direction, port::io, NAME, port::port, pw_pipewire::pw_direction_reverse(), pw_log::pw_log_debug, and pw_unload_spa_handle().

## ◆ pw_impl_port_set_param()

SPA_EXPORT int pw_impl_port_set_param | ( | struct pw_impl_port * | port,
|  | uint32_t | id,
|  | uint32_t | flags,
|  | const struct spa_pod * | param
| ) |  |

References port::direction, port::flags, NAME, port::node, port::port_id, PW_DIRECTION_INPUT, pw_log::pw_log_debug, and res.

## ◆ pw_impl_port_unlink()

void pw_impl_port_unlink | ( | struct pw_impl_port * | port | ) |

References pw_impl_port_for_each_link().

## ◆ pw_impl_port_update_info()

void pw_impl_port_update_info | ( | struct pw_impl_port * | port,
|  | const struct spa_port_info * | info
| ) |  |

## ◆ pw_impl_port_update_properties()

SPA_EXPORT int pw_impl_port_update_properties | ( | struct pw_impl_port * | port,
|  | const struct spa_dict * | dict
| ) |  |

Update the port properties.

## ◆ pw_impl_port_update_state()

void pw_impl_port_update_state | ( | struct pw_impl_port * | port,
|  | enum pw_impl_port_state | state,
|  | char * | error
| ) |  |

References NAME, PW_IMPL_PORT_STATE_ERROR, and pw_log.

Referenced by pw_impl_port_use_buffers().

## ◆ pw_impl_port_use_buffers()

SPA_EXPORT int pw_impl_port_use_buffers | ( | struct pw_impl_port * | port,
|  | struct pw_impl_port_mix * | mix,
|  | uint32_t | flags,
|  | struct spa_buffer ** | buffers,
|  | uint32_t | n_buffers
| ) |  |

References port::direction, NAME, port::port_id, PW_IMPL_PORT_STATE_READY, pw_impl_port_update_state(), pw_log::pw_log_debug, and res.