The core global object. More...
Files | |
| file | core.h |
pipewire/core.h | |
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_core |
| struct | pw_registry |
Functions | |
| struct pw_core_info * | pw_core_info_update (struct pw_core_info *info, const struct pw_core_info *update) |
| Update an existing pw_core_info with update with reset. | |
| struct pw_core_info * | pw_core_info_merge (struct pw_core_info *info, const struct pw_core_info *update, bool reset) |
| Update an existing pw_core_info with update. | |
| void | pw_core_info_free (struct pw_core_info *info) |
| Free a pw_core_info. | |
| PW_API_CORE_IMPL int | pw_core_add_listener (struct pw_core *object, struct spa_hook *listener, const struct pw_core_events *events, void *data) |
| PW_API_CORE_IMPL int | pw_core_hello (struct pw_core *object, uint32_t version) |
| Start a conversation with the server. | |
| PW_API_CORE_IMPL int | pw_core_sync (struct pw_core *object, uint32_t id, int seq) |
| Do server roundtrip. | |
| PW_API_CORE_IMPL int | pw_core_pong (struct pw_core *object, uint32_t id, int seq) |
| Reply to a server ping event. | |
| PW_API_CORE_IMPL int | pw_core_error (struct pw_core *object, uint32_t id, int seq, int res, const char *message) |
| Fatal error event. | |
| PW_API_CORE_IMPL (5, 0) int pw_core_errorv(struct pw_core *core | |
| vsnprintf (buffer, sizeof(buffer), message, args) | |
| return | pw_core_error (core, id, seq, res, buffer) |
| PW_API_CORE_IMPL (5, 6) int pw_core_errorf(struct pw_core *core | |
| va_start (args, message) | |
| va_end (args) | |
| PW_API_CORE_IMPL struct pw_registry * | pw_core_get_registry (struct pw_core *core, uint32_t version, size_t user_data_size) |
| Get the registry object. | |
| PW_API_CORE_IMPL void * | pw_core_create_object (struct pw_core *core, const char *factory_name, const char *type, uint32_t version, const struct spa_dict *props, size_t user_data_size) |
| Create a new object on the PipeWire server from a factory. | |
| PW_API_CORE_IMPL void | pw_core_destroy (struct pw_core *core, void *proxy) |
| Destroy an resource. | |
| struct pw_core * | pw_context_connect (struct pw_context *context, struct pw_properties *properties, size_t user_data_size) |
| Connect to a PipeWire instance. | |
| struct pw_core * | pw_context_connect_fd (struct pw_context *context, int fd, struct pw_properties *properties, size_t user_data_size) |
| Connect to a PipeWire instance on the given socket. | |
| struct pw_core * | pw_context_connect_self (struct pw_context *context, struct pw_properties *properties, size_t user_data_size) |
| Connect to a given PipeWire instance. | |
| int | pw_core_steal_fd (struct pw_core *core) |
| Steal the fd of the core connection or < 0 on error. | |
| int | pw_core_set_paused (struct pw_core *core, bool paused) |
| Pause or resume the core. | |
| int | pw_core_disconnect (struct pw_core *core) |
| disconnect and destroy a core | |
| void * | pw_core_get_user_data (struct pw_core *core) |
| Get the user_data. | |
| struct pw_client * | pw_core_get_client (struct pw_core *core) |
| Get the client proxy of the connected core. | |
| struct pw_context * | pw_core_get_context (struct pw_core *core) |
| Get the context object used to created this core. | |
| const struct pw_properties * | pw_core_get_properties (struct pw_core *core) |
| Get properties from the core. | |
| int | pw_core_update_properties (struct pw_core *core, const struct spa_dict *dict) |
| Update the core properties. | |
| struct pw_mempool * | pw_core_get_mempool (struct pw_core *core) |
| Get the core mempool object. | |
| struct pw_proxy * | pw_core_find_proxy (struct pw_core *core, uint32_t id) |
| Get the proxy with the given id. | |
| 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. | |
Variables | |
| uint32_t | id |
| uint32_t int | seq |
| uint32_t int int | res |
| uint32_t int int const char * | message |
| uint32_t int int const char va_list | args |
| buffer [1023] = '\0' | |
| uint32_t int int const char int | r |
The core global object.
This is a special singleton object. It is used for internal PipeWire protocol features. Connecting to a PipeWire instance returns one core object, the caller should then register event listeners using pw_core_add_listener.
Updates to the core object are then provided through the pw_core_events interface. See Tutorial - Part 2: Enumerating Objects for an example.
| #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 4 |
| #define PW_VERSION_REGISTRY 3 |
| #define PW_API_CORE_IMPL static inline |
| #define PW_API_REGISTRY_IMPL static inline |
| #define PW_DEFAULT_REMOTE "pipewire-0" |
The default remote name to connect to.
| #define PW_ID_CORE 0 |
default ID for the core object after connect
| #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.
| #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_BOUND_PROPS 8 |
| #define PW_CORE_EVENT_NUM 9 |
| #define PW_VERSION_CORE_EVENTS 1 |
| #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 |
| struct pw_core_info * pw_core_info_update | ( | struct pw_core_info * | info, |
| const struct pw_core_info * | update ) |
Update an existing pw_core_info with update with reset.
When info is NULL, a new one will be allocated. Returns NULL on failure.
| struct pw_core_info * pw_core_info_merge | ( | struct pw_core_info * | info, |
| const struct pw_core_info * | update, | ||
| bool | reset ) |
Update an existing pw_core_info with update.
When info is NULL, a new one will be allocated. Returns NULL on failure
| void pw_core_info_free | ( | struct pw_core_info * | info | ) |
Free a pw_core_info.
| PW_API_CORE_IMPL int pw_core_add_listener | ( | struct pw_core * | object, |
| struct spa_hook * | listener, | ||
| const struct pw_core_events * | events, | ||
| void * | data ) |
| PW_API_CORE_IMPL int pw_core_hello | ( | struct pw_core * | object, |
| uint32_t | version ) |
Start a conversation with the server.
This will send the core info and will destroy all resources for the client (except the core and client resource).
This requires X permissions on the core.
| PW_API_CORE_IMPL int pw_core_sync | ( | struct pw_core * | object, |
| uint32_t | id, | ||
| int | seq ) |
Do server roundtrip.
Ask the server to emit the 'done' event with seq.
Since methods are handled in-order and events are delivered in-order, this can be used as a barrier to ensure all previous methods and the resulting events have been handled.
| seq | the seq number passed to the done event |
This requires X permissions on the core.
| PW_API_CORE_IMPL int pw_core_pong | ( | struct pw_core * | object, |
| uint32_t | id, | ||
| int | seq ) |
Reply to a server ping event.
Reply to the server ping event with the same seq.
| seq | the seq number received in the ping event |
This requires X permissions on the core.
| PW_API_CORE_IMPL int pw_core_error | ( | struct pw_core * | object, |
| uint32_t | id, | ||
| int | seq, | ||
| int | res, | ||
| const char * | message ) |
Fatal error event.
The error method is sent out when a fatal (non-recoverable) error has occurred. The id argument is the proxy object where the error occurred, most often in response to an event on that object. The message is a brief description of the error, for (debugging) convenience.
This method is usually also emitted on the resource object with id.
| id | resource id where the error occurred |
| res | error code |
| message | error description |
This requires X permissions on the core.
| PW_API_CORE_IMPL | ( | 5 | , |
| 0 | ) |
| PW_API_CORE_IMPL | ( | 5 | , |
| 6 | ) |
| va_end | ( | args | ) |
| PW_API_CORE_IMPL struct pw_registry * pw_core_get_registry | ( | struct pw_core * | core, |
| uint32_t | version, | ||
| size_t | user_data_size ) |
Get the registry object.
Create a registry object that allows the client to list and bind the global objects available from the PipeWire server
| version | the client version |
| user_data_size | extra size |
This requires X permissions on the core.
| PW_API_CORE_IMPL void * pw_core_create_object | ( | struct pw_core * | core, |
| const char * | factory_name, | ||
| const char * | type, | ||
| uint32_t | version, | ||
| const struct spa_dict * | props, | ||
| size_t | user_data_size ) |
Create a new object on the PipeWire server from a factory.
| factory_name | the factory name to use |
| type | the interface to bind to |
| version | the version of the interface |
| props | extra properties |
| user_data_size | extra size |
This requires X permissions on the core.
| PW_API_CORE_IMPL void pw_core_destroy | ( | struct pw_core * | core, |
| void * | proxy ) |
Destroy an resource.
Destroy the server resource for the given proxy.
| obj | the proxy to destroy |
This requires X permissions on the core.
| struct pw_core * pw_context_connect | ( | struct pw_context * | context, |
| struct pw_properties * | properties, | ||
| size_t | user_data_size ) |
Connect to a PipeWire instance.
| context | a Context |
| properties | optional properties, ownership of the properties is taken. |
| user_data_size | extra user data size |
| struct pw_core * pw_context_connect_fd | ( | struct pw_context * | context, |
| int | fd, | ||
| struct pw_properties * | properties, | ||
| size_t | user_data_size ) |
Connect to a PipeWire instance on the given socket.
| context | a Context |
| fd | the connected socket to use, the socket will be closed automatically on disconnect or error. |
| properties | optional properties, ownership of the properties is taken. |
| user_data_size | extra user data size |
| struct pw_core * pw_context_connect_self | ( | struct pw_context * | context, |
| struct pw_properties * | properties, | ||
| size_t | user_data_size ) |
Connect to a given PipeWire instance.
| context | a Context to connect to |
| properties | optional properties, ownership of the properties is taken. |
| user_data_size | extra user data size |
| 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.
| 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.
| int pw_core_disconnect | ( | struct pw_core * | core | ) |
disconnect and destroy a core
| 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
Get the client proxy of the connected core.
This will have the id of PW_ID_CLIENT (1)
| struct pw_context * pw_core_get_context | ( | struct pw_core * | core | ) |
Get the context object used to created this core.
| const struct pw_properties * pw_core_get_properties | ( | struct pw_core * | core | ) |
Get properties from the core.
Update the core properties.
This updates the properties of the associated client.
| struct pw_mempool * pw_core_get_mempool | ( | struct pw_core * | core | ) |
Get the core mempool object.
Get the proxy with the given id.
| 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.
| core | the core |
| type | the type of object |
| props | extra properties |
| object | object to export |
| user_data_size | extra user data |
| uint32_t id |
| uint32_t int seq |
| uint32_t int int res |
| uint32_t int int const char * message |
| uint32_t int int const char va_list args |
| buffer[1023] = '\0' |
| return r |