PipeWire: core.h File Reference

PipeWire 0.3.4

Data Structures | Macros | Functions | Variables
core.h File Reference
Include dependency graph for core.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures
struct | pw_core_info
| The core information. More...
struct | pw_core_events
| Core events. More...
struct | pw_core_methods
| Core methods. More...
struct | pw_registry_events
| Registry events. More...
struct | pw_registry_methods
| Registry methods. More...

## Macros
#define | PW_TYPE_INTERFACE_Core PW_TYPE_INFO_INTERFACE_BASE "Core"
#define | PW_TYPE_INTERFACE_Registry PW_TYPE_INFO_INTERFACE_BASE "Registry"
#define | PW_VERSION_CORE 3
#define | PW_VERSION_REGISTRY 3
#define | PW_ID_CORE 0
#define | PW_ID_ANY (uint32_t)(0xffffffff)
#define | PW_CORE_CHANGE_MASK_PROPS (1 << 0)
#define | PW_CORE_CHANGE_MASK_ALL ((1 << 1)-1)
#define | PW_CORE_EVENT_INFO 0
| Core. More...
#define | PW_CORE_EVENT_DONE 1
#define | PW_CORE_EVENT_PING 2
#define | PW_CORE_EVENT_ERROR 3
#define | PW_CORE_EVENT_REMOVE_ID 4
#define | PW_CORE_EVENT_BOUND_ID 5
#define | PW_CORE_EVENT_ADD_MEM 6
#define | PW_CORE_EVENT_REMOVE_MEM 7
#define | PW_CORE_EVENT_NUM 8
#define | PW_VERSION_CORE_EVENTS 0
#define | PW_CORE_METHOD_ADD_LISTENER 0
#define | PW_CORE_METHOD_HELLO 1
#define | PW_CORE_METHOD_SYNC 2
#define | PW_CORE_METHOD_PONG 3
#define | PW_CORE_METHOD_ERROR 4
#define | PW_CORE_METHOD_GET_REGISTRY 5
#define | PW_CORE_METHOD_CREATE_OBJECT 6
#define | PW_CORE_METHOD_DESTROY 7
#define | PW_CORE_METHOD_NUM 8
#define | PW_VERSION_CORE_METHODS 0
#define | pw_core_method(o, method, version, ...)
#define | pw_core_add_listener(c, ...) pw_core_method(c,add_listener,0,__VA_ARGS__)
#define | pw_core_hello(c, ...) pw_core_method(c,hello,0,__VA_ARGS__)
#define | pw_core_sync(c, ...) pw_core_method(c,sync,0,__VA_ARGS__)
#define | pw_core_pong(c, ...) pw_core_method(c,pong,0,__VA_ARGS__)
#define | pw_core_error(c, ...) pw_core_method(c,error,0,__VA_ARGS__)
#define | pw_core_destroy(c, ...) pw_core_method(c,destroy,0,__VA_ARGS__)
#define | PW_REGISTRY_EVENT_GLOBAL 0
#define | PW_REGISTRY_EVENT_GLOBAL_REMOVE 1
#define | PW_REGISTRY_EVENT_NUM 2
#define | PW_VERSION_REGISTRY_EVENTS 0
#define | PW_REGISTRY_METHOD_ADD_LISTENER 0
#define | PW_REGISTRY_METHOD_BIND 1
#define | PW_REGISTRY_METHOD_DESTROY 2
#define | PW_REGISTRY_METHOD_NUM 3
#define | PW_VERSION_REGISTRY_METHODS 0
#define | pw_registry_method(o, method, version, ...)
#define | pw_registry_add_listener(p, ...) pw_registry_method(p,add_listener,0,__VA_ARGS__)
| Registry. More...
#define | pw_registry_destroy(p, ...) pw_registry_method(p,destroy,0,__VA_ARGS__)

## Functions
| vsnprintf (buffer, sizeof(buffer), message, args)
return | pw_core_error (core, id, seq, res, buffer)
| va_start (args, message)
| va_end (args)
int | pw_core_steal_fd (struct pw_core *core)
| Steal the fd of the core connection or < 0 on error. More...
int | pw_core_set_paused (struct pw_core *core, bool paused)
| Pause or resume the core. More...
int | pw_core_disconnect (struct pw_core *core)
| disconnect and destroy a core More...
void * | pw_core_get_user_data (struct pw_core *core)
| Get the user_data. More...
struct pw_client * | pw_core_get_client (struct pw_core *core)
| Get the client proxy of the connected core. More...
struct pw_context * | pw_core_get_context (struct pw_core *core)
| Get the context object used to created this core. More...
const struct pw_properties * | pw_core_get_properties (struct pw_core *core)
| Get properties from the core. More...
int | pw_core_update_properties (struct pw_core *core, const struct spa_dict *dict)
| Update the core properties. More...
struct pw_mempool * | pw_core_get_mempool (struct pw_core *core)
| Get the core mempool object. More...
struct pw_proxy * | pw_core_find_proxy (struct pw_core *core, uint32_t id)
| Get the proxy with the given id. More...
struct pw_proxy * | pw_core_export (struct pw_core *core, const char *type, const struct spa_dict *props, void *object, size_t user_data_size)
| Export an object into the PipeWire instance associated with core. More...

## Variables
static uint32_t | id
static uint32_t int | seq
static uint32_t int int | res
static uint32_t int int const char * | message
static uint32_t int int const char va_list | args
| buffer [1023] = '\0'
static uint32_t int int const char int | r

## Macro Definition Documentation

## ◆ pw_core_add_listener

#define pw_core_add_listener | ( |  | c,
|  |  | ...
| ) |  | pw_core_method(c,add_listener,0,__VA_ARGS__)

## ◆ PW_CORE_CHANGE_MASK_ALL

#define PW_CORE_CHANGE_MASK_ALL ((1 << 1)-1)

## ◆ PW_CORE_CHANGE_MASK_PROPS

#define PW_CORE_CHANGE_MASK_PROPS (1 << 0)

## ◆ pw_core_destroy

#define pw_core_destroy | ( |  | c,
|  |  | ...
| ) |  | pw_core_method(c,destroy,0,__VA_ARGS__)

## ◆ pw_core_error

#define pw_core_error | ( |  | c,
|  |  | ...
| ) |  | pw_core_method(c,error,0,__VA_ARGS__)

## ◆ PW_CORE_EVENT_ADD_MEM

#define PW_CORE_EVENT_ADD_MEM 6

## ◆ PW_CORE_EVENT_BOUND_ID

#define PW_CORE_EVENT_BOUND_ID 5

## ◆ PW_CORE_EVENT_DONE

#define PW_CORE_EVENT_DONE 1

## ◆ PW_CORE_EVENT_ERROR

#define PW_CORE_EVENT_ERROR 3

## ◆ PW_CORE_EVENT_INFO

#define PW_CORE_EVENT_INFO 0

Core.

## ◆ PW_CORE_EVENT_NUM

#define PW_CORE_EVENT_NUM 8

## ◆ PW_CORE_EVENT_PING

#define PW_CORE_EVENT_PING 2

## ◆ PW_CORE_EVENT_REMOVE_ID

#define PW_CORE_EVENT_REMOVE_ID 4

## ◆ PW_CORE_EVENT_REMOVE_MEM

#define PW_CORE_EVENT_REMOVE_MEM 7

## ◆ pw_core_hello

#define pw_core_hello | ( |  | c,
|  |  | ...
| ) |  | pw_core_method(c,hello,0,__VA_ARGS__)

## ◆ pw_core_method

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

Value:
({ \
int _res = -ENOTSUP; \
spa_interface_call_res((struct spa_interface*)o, \
struct pw_core_methods, _res, \
method, version, ##__VA_ARGS__); \
_res; \
})

## ◆ PW_CORE_METHOD_ADD_LISTENER

#define PW_CORE_METHOD_ADD_LISTENER 0

## ◆ PW_CORE_METHOD_CREATE_OBJECT

#define PW_CORE_METHOD_CREATE_OBJECT 6

## ◆ PW_CORE_METHOD_DESTROY

#define PW_CORE_METHOD_DESTROY 7

## ◆ PW_CORE_METHOD_ERROR

#define PW_CORE_METHOD_ERROR 4

## ◆ PW_CORE_METHOD_GET_REGISTRY

#define PW_CORE_METHOD_GET_REGISTRY 5

## ◆ PW_CORE_METHOD_HELLO

#define PW_CORE_METHOD_HELLO 1

## ◆ PW_CORE_METHOD_NUM

#define PW_CORE_METHOD_NUM 8

## ◆ PW_CORE_METHOD_PONG

#define PW_CORE_METHOD_PONG 3

## ◆ PW_CORE_METHOD_SYNC

#define PW_CORE_METHOD_SYNC 2

## ◆ pw_core_pong

#define pw_core_pong | ( |  | c,
|  |  | ...
| ) |  | pw_core_method(c,pong,0,__VA_ARGS__)

## ◆ pw_core_sync

#define pw_core_sync | ( |  | c,
|  |  | ...
| ) |  | pw_core_method(c,sync,0,__VA_ARGS__)

## ◆ PW_ID_ANY

#define PW_ID_ANY (uint32_t)(0xffffffff)

## ◆ PW_ID_CORE

#define PW_ID_CORE 0

## ◆ pw_registry_add_listener

#define pw_registry_add_listener | ( |  | p,
|  |  | ...
| ) |  | pw_registry_method(p,add_listener,0,__VA_ARGS__)

Registry.

## ◆ pw_registry_destroy

#define pw_registry_destroy | ( |  | p,
|  |  | ...
| ) |  | pw_registry_method(p,destroy,0,__VA_ARGS__)

## ◆ PW_REGISTRY_EVENT_GLOBAL

#define PW_REGISTRY_EVENT_GLOBAL 0

## ◆ PW_REGISTRY_EVENT_GLOBAL_REMOVE

#define PW_REGISTRY_EVENT_GLOBAL_REMOVE 1

## ◆ PW_REGISTRY_EVENT_NUM

#define PW_REGISTRY_EVENT_NUM 2

## ◆ pw_registry_method

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

Value:
({ \
int _res = -ENOTSUP; \
spa_interface_call_res((struct spa_interface*)o, \
struct pw_registry_methods, _res, \
method, version, ##__VA_ARGS__); \
_res; \
})

## ◆ PW_REGISTRY_METHOD_ADD_LISTENER

#define PW_REGISTRY_METHOD_ADD_LISTENER 0

## ◆ PW_REGISTRY_METHOD_BIND

#define PW_REGISTRY_METHOD_BIND 1

## ◆ PW_REGISTRY_METHOD_DESTROY

#define PW_REGISTRY_METHOD_DESTROY 2

## ◆ PW_REGISTRY_METHOD_NUM

#define PW_REGISTRY_METHOD_NUM 3

## ◆ PW_TYPE_INTERFACE_Core

#define PW_TYPE_INTERFACE_Core PW_TYPE_INFO_INTERFACE_BASE "Core"

## ◆ PW_TYPE_INTERFACE_Registry

#define PW_TYPE_INTERFACE_Registry PW_TYPE_INFO_INTERFACE_BASE "Registry"

## ◆ PW_VERSION_CORE

#define PW_VERSION_CORE 3

## ◆ PW_VERSION_CORE_EVENTS

#define PW_VERSION_CORE_EVENTS 0

## ◆ PW_VERSION_CORE_METHODS

#define PW_VERSION_CORE_METHODS 0

## ◆ PW_VERSION_REGISTRY

#define PW_VERSION_REGISTRY 3

## ◆ PW_VERSION_REGISTRY_EVENTS

#define PW_VERSION_REGISTRY_EVENTS 0

## ◆ PW_VERSION_REGISTRY_METHODS

#define PW_VERSION_REGISTRY_METHODS 0

## Function Documentation

## ◆ pw_core_disconnect()

int pw_core_disconnect | ( | struct pw_core * | core | ) |

disconnect and destroy a core

References NAME, pw_log::pw_log_debug, pw_proxy::pw_proxy_destroy(), and pw_proxy_remove().

Referenced by pw_filter_disconnect(), and pw_stream_disconnect().

## ◆ pw_core_error()

return pw_core_error | ( | core | ,
|  | id | ,
|  | seq | ,
|  | res | ,
|  | buffer |
| ) |  |

Referenced by pw_proxy_error().

## ◆ pw_core_export()

struct pw_proxy* pw_core_export | ( | struct pw_core * | core,
|  | const char * | type,
|  | const struct spa_dict * | props,
|  | void * | object,
|  | size_t | user_data_size
| ) |  |

Export an object into the PipeWire instance associated with core.

Parameters

  core | the core
  type | the type of object
  props | extra properties
  object | object to export
  user_data_size | extra user data

References pw_export_type::func, NAME, pw_context_find_export_type(), pw_log::pw_log_error, res, and pw_export_type::type.

## ◆ pw_core_find_proxy()

struct pw_proxy* pw_core_find_proxy | ( | struct pw_core * | core,
|  | uint32_t | id
| ) |  |

Get the proxy with the given id.

References pw_map::pw_map_lookup().

## ◆ pw_core_get_client()

struct pw_client* pw_core_get_client | ( | struct pw_core * | core | ) |

Get the client proxy of the connected core.

This will have the id of PW_ID_CLIENT (1)

## ◆ pw_core_get_context()

struct pw_context* pw_core_get_context | ( | struct pw_core * | core | ) |

Get the context object used to created this core.

## ◆ pw_core_get_mempool()

struct pw_mempool* pw_core_get_mempool | ( | struct pw_core * | core | ) |

Get the core mempool object.

## ◆ pw_core_get_properties()

const struct pw_properties* pw_core_get_properties | ( | struct pw_core * | core | ) |

Get properties from the core.

## ◆ pw_core_get_user_data()

void* pw_core_get_user_data | ( | struct pw_core * | core | ) |

Get the user_data.

It is of the size specified when this object was constructed

## ◆ pw_core_set_paused()

int pw_core_set_paused | ( | struct pw_core * | core,
|  | bool | paused
| ) |  |

Pause or resume the core.

When the core is paused, no new events will be dispatched until the core is resumed again.

References pw_protocol_client_set_paused.

## ◆ pw_core_steal_fd()

int pw_core_steal_fd | ( | struct pw_core * | core | ) |

Steal the fd of the core connection or < 0 on error.

The core will be disconnected after this call.

References pw_protocol_client_steal_fd.

## ◆ pw_core_update_properties()

int pw_core_update_properties | ( | struct pw_core * | core,
|  | const struct spa_dict * | dict
| ) |  |

Update the core properties.

This updates the properties of the associated client.

Returns
  the number of properties that were updated

References pw_properties::dict, NAME, pw_client_update_properties, pw_log::pw_log_debug, and pw_properties::pw_properties_update().

## ◆ va_end()

va_end | ( | args |  | ) |

Referenced by pw_properties::pw_properties_setf(), pw_proxy_errorf(), pw_resource_errorf(), and pw_resource_errorf_id().

## ◆ va_start()

va_start | ( | args | ,
|  | message |
| ) |  |

Referenced by pw_filter_set_error(), pw_log::pw_log_log(), pw_properties::pw_properties_setf(), pw_proxy_errorf(), pw_resource_errorf(), pw_resource_errorf_id(), pw_stream_set_control(), and pw_stream_set_error().

## ◆ vsnprintf()

vsnprintf | ( | buffer | ,
|  | sizeof(buffer) | ,
|  | message | ,
|  | args |
| ) |  |

## Variable Documentation

## ◆ args

uint32_t int int const char va_list args

Initial value:
{
char buffer[1024]

Referenced by pw_filter_set_error(), pw_log::pw_log_log(), pw_properties_setva(), and pw_stream_set_error().

## ◆ buffer

buffer[1023] = '\0'

## ◆ id

static uint32_t id

Referenced by pw_control_new(), pw_map::pw_map_insert_new(), and pw_resource_new().

## ◆ message

static uint32_t int int const char * message

## ◆ r

return r

Initial value:
{
va_list args

Referenced by pw_proxy_error(), and pw_proxy_errorf().

## ◆ res

static uint32_t int int res

Referenced by pw_buffers_negotiate(), pw_context_connect(), pw_context_connect_fd(), pw_impl_client::pw_context_create_client(), pw_context_create_core(), pw_context_create_device(), pw_context_create_factory(), pw_context_create_link(), pw_context_create_node(), pw_context_create_port(), pw_impl_module::pw_context_load_module(), pw_control_add_link(), pw_control_remove_link(), pw_core_export(), pw_data_loop_invoke(), pw_data_loop_wait(), pw_filter_add_port(), pw_filter_connect(), pw_filter_dequeue_buffer(), pw_filter_new_simple(), pw_filter_queue_buffer(), pw_filter_set_error(), pw_filter_update_params(), pw_global::pw_global_bind(), pw_global_for_each_resource(), pw_global::pw_global_new(), pw_impl_core_register(), pw_impl_device_for_each_param(), pw_impl_factory_create_object(), pw_impl_link_activate(), pw_impl_node_for_each_param(), pw_impl_node_for_each_port(), pw_impl_node_get_free_port_id(), pw_impl_node_set_driver(), pw_impl_node_set_implementation(), pw_impl_node::pw_impl_node_set_state(), pw_impl_port_add(), pw_impl_port_for_each_filtered_param(), pw_impl_port_for_each_link(), pw_impl_port_for_each_param(), pw_impl_port_init_mix(), pw_impl_port_release_mix(), pw_impl_port_set_param(), pw_impl_port_use_buffers(), pw_loop::pw_loop_new(), pw_main_loop::pw_main_loop_run(), pw_map::pw_map_for_each(), pw_memblock::pw_mempool_alloc(), pw_properties::pw_properties_new_string(), pw_properties::pw_properties_setf(), pw_proxy_error(), pw_proxy_errorf(), pw_proxy_init(), pw_proxy::pw_proxy_new(), pw_proxy_sync(), pw_resource_error(), pw_resource_errorf(), pw_resource_errorf_id(), pw_resource_new(), pw_resource_ping(), pw_stream_connect(), pw_stream_dequeue_buffer(), pw_stream_new_simple(), pw_stream_queue_buffer(), pw_stream_set_error(), pw_stream_update_params(), pw_stream_update_properties(), pw_work_queue::pw_work_queue_add(), pw_work_queue::pw_work_queue_complete(), and pw_work_queue::pw_work_queue_new().

## ◆ seq

static uint32_t int seq

Referenced by pw_data_loop_invoke(), pw_impl_node_for_each_param(), pw_impl_port_for_each_filtered_param(), pw_impl_port_for_each_param(), pw_proxy_sync(), pw_resource_ping(), and pw_work_queue::pw_work_queue_complete().

pw_core_methods
Core methods.
Definition: core.h:217
buffer
Definition: filter.c:55
args
static uint32_t int int const char va_list args
Definition: core.h:324
pw_registry_methods
Registry methods.
Definition: core.h:445