PipeWire: interfaces.h Source File

PipeWire 0.2.4

interfaces.h
Go to the documentation of this file.
1 /* PipeWire
2 * Copyright (C) 2016 Wim Taymans <wim.taymans@gmail.com>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef __PIPEWIRE_INTERFACES_H__
21 #define __PIPEWIRE_INTERFACES_H__
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #include <spa/utils/defs.h>
28 #include <spa/param/param.h>
29 #include <spa/node/node.h>
30
31 #include <pipewire/introspect.h>
32 #include <pipewire/proxy.h>
33
34 struct pw_core_proxy;
35 struct pw_registry_proxy;
36 struct pw_module_proxy;
37 struct pw_node_proxy;
38 struct pw_port_proxy;
39 struct pw_factory_proxy;
40 struct pw_client_proxy;
41 struct pw_link_proxy;
42
61 #define PW_TYPE_INTERFACE__Core PW_TYPE_INTERFACE_BASE "Core"
62 #define PW_TYPE_INTERFACE__Registry PW_TYPE_INTERFACE_BASE "Registry"
63 #define PW_TYPE_INTERFACE__Module PW_TYPE_INTERFACE_BASE "Module"
64 #define PW_TYPE_INTERFACE__Node PW_TYPE_INTERFACE_BASE "Node"
65 #define PW_TYPE_INTERFACE__Port PW_TYPE_INTERFACE_BASE "Port"
66 #define PW_TYPE_INTERFACE__Client PW_TYPE_INTERFACE_BASE "Client"
67 #define PW_TYPE_INTERFACE__Link PW_TYPE_INTERFACE_BASE "Link"
68
69 #define PW_VERSION_CORE 0
70
71 #define PW_CORE_PROXY_METHOD_HELLO 0
72 #define PW_CORE_PROXY_METHOD_UPDATE_TYPES 1
73 #define PW_CORE_PROXY_METHOD_SYNC 2
74 #define PW_CORE_PROXY_METHOD_GET_REGISTRY 3
75 #define PW_CORE_PROXY_METHOD_CLIENT_UPDATE 4
76 #define PW_CORE_PROXY_METHOD_PERMISSIONS 5
77 #define PW_CORE_PROXY_METHOD_CREATE_OBJECT 6
78 #define PW_CORE_PROXY_METHOD_DESTROY 7
79 #define PW_CORE_PROXY_METHOD_NUM 8
80
84 #define PW_CORE_PROXY_PERMISSIONS_DEFAULT "permissions.default"
85
91 #define PW_CORE_PROXY_PERMISSIONS_GLOBAL "permissions.global"
92
99 #define PW_CORE_PROXY_PERMISSIONS_EXISTING "permissions.existing"
100
101 #define PW_LINK_OUTPUT_NODE_ID "link.output_node.id"
102 #define PW_LINK_OUTPUT_PORT_ID "link.output_port.id"
103 #define PW_LINK_INPUT_NODE_ID "link.input_node.id"
104 #define PW_LINK_INPUT_PORT_ID "link.input_port.id"
105
114 struct pw_core_proxy_methods {
115 #define PW_VERSION_CORE_PROXY_METHODS 0
116 uint32_t version;
121 void (*hello) (void *object);
131 void (*update_types) (void *object,
132 uint32_t first_id,
133 const char **types,
134 uint32_t n_types);
144 void (*sync) (void *object, uint32_t seq);
153 void (*get_registry) (void *object, uint32_t version, uint32_t new_id);
158 void (*client_update) (void *object, const struct spa_dict *props);
171 void (*permissions) (void *object, const struct spa_dict *props);
183 void (*create_object) (void *object,
184 const char *factory_name,
185 uint32_t type,
186 uint32_t version,
187 const struct spa_dict *props,
188 uint32_t new_id);
189
195 void (*destroy) (void *object, uint32_t id);
196 };
197
198 static inline void
199 pw_core_proxy_hello(struct pw_core_proxy *core)
200 {
201 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, hello);
202 }
203
204 static inline void
205 pw_core_proxy_update_types(struct pw_core_proxy *core, uint32_t first_id, const char **types, uint32_t n_types)
206 {
207 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, update_types, first_id, types, n_types);
208 }
209
210 static inline void
211 pw_core_proxy_sync(struct pw_core_proxy *core, uint32_t seq)
212 {
213 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, sync, seq);
214 }
215
216 static inline struct pw_registry_proxy *
217 pw_core_proxy_get_registry(struct pw_core_proxy *core, uint32_t type, uint32_t version, size_t user_data_size)
218 {
219 struct pw_proxy *p = pw_proxy_new((struct pw_proxy*)core, type, user_data_size);
220 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, get_registry, version, pw_proxy_get_id(p));
221 return (struct pw_registry_proxy *) p;
222 }
223
224 static inline void
225 pw_core_proxy_client_update(struct pw_core_proxy *core, const struct spa_dict *props)
226 {
227 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, client_update, props);
228 }
229
230 static inline void
231 pw_core_proxy_permissions(struct pw_core_proxy *core, const struct spa_dict *props)
232 {
233 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, permissions, props);
234 }
235
236 static inline void *
237 pw_core_proxy_create_object(struct pw_core_proxy *core,
238 const char *factory_name,
239 uint32_t type,
240 uint32_t version,
241 const struct spa_dict *props,
242 size_t user_data_size)
243 {
244 struct pw_proxy *p = pw_proxy_new((struct pw_proxy*)core, type, user_data_size);
245 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, create_object, factory_name,
246 type, version, props, pw_proxy_get_id(p));
247 return p;
248 }
249
250 static inline void
251 pw_core_proxy_destroy(struct pw_core_proxy *core, uint32_t id)
252 {
253 pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, destroy, id);
254 }
255
256 #define PW_CORE_PROXY_EVENT_UPDATE_TYPES 0
257 #define PW_CORE_PROXY_EVENT_DONE 1
258 #define PW_CORE_PROXY_EVENT_ERROR 2
259 #define PW_CORE_PROXY_EVENT_REMOVE_ID 3
260 #define PW_CORE_PROXY_EVENT_INFO 4
261 #define PW_CORE_PROXY_EVENT_NUM 5
262
267 struct pw_core_proxy_events {
268 #define PW_VERSION_CORE_PROXY_EVENTS 0
269 uint32_t version;
279 void (*update_types) (void *object,
280 uint32_t first_id,
281 const char **types,
282 uint32_t n_types);
290 void (*done) (void *object, uint32_t seq);
303 void (*error) (void *object, uint32_t id, int res, const char *error, ...);
314 void (*remove_id) (void *object, uint32_t id);
320 void (*info) (void *object, struct pw_core_info *info);
321 };
322
323 static inline void
324 pw_core_proxy_add_listener(struct pw_core_proxy *core,
325 struct spa_hook *listener,
326 const struct pw_core_proxy_events *events,
327 void *data)
328 {
329 pw_proxy_add_proxy_listener((struct pw_proxy*)core, listener, events, data);
330 }
331
332
333 #define pw_core_resource_update_types(r,...) pw_resource_notify(r,struct pw_core_proxy_events,update_types,__VA_ARGS__)
334 #define pw_core_resource_done(r,...) pw_resource_notify(r,struct pw_core_proxy_events,done,__VA_ARGS__)
335 #define pw_core_resource_error(r,...) pw_resource_notify(r,struct pw_core_proxy_events,error,__VA_ARGS__)
336 #define pw_core_resource_remove_id(r,...) pw_resource_notify(r,struct pw_core_proxy_events,remove_id,__VA_ARGS__)
337 #define pw_core_resource_info(r,...) pw_resource_notify(r,struct pw_core_proxy_events,info,__VA_ARGS__)
338
339
340 #define PW_VERSION_REGISTRY 0
341
373 #define PW_REGISTRY_PROXY_METHOD_BIND 0
374 #define PW_REGISTRY_PROXY_METHOD_NUM 1
375
377 struct pw_registry_proxy_methods {
378 #define PW_VERSION_REGISTRY_PROXY_METHODS 0
379 uint32_t version;
392 void (*bind) (void *object, uint32_t id, uint32_t type, uint32_t version, uint32_t new_id);
393 };
394
396 static inline void *
397 pw_registry_proxy_bind(struct pw_registry_proxy *registry,
398 uint32_t id, uint32_t type, uint32_t version,
399 size_t user_data_size)
400 {
401 struct pw_proxy *reg = (struct pw_proxy*)registry;
402 struct pw_proxy *p = pw_proxy_new(reg, type, user_data_size);
403 pw_proxy_do(reg, struct pw_registry_proxy_methods, bind, id, type, version, pw_proxy_get_id(p));
404 return p;
405 }
406
407 #define PW_REGISTRY_PROXY_EVENT_GLOBAL 0
408 #define PW_REGISTRY_PROXY_EVENT_GLOBAL_REMOVE 1
409 #define PW_REGISTRY_PROXY_EVENT_NUM 2
410
412 struct pw_registry_proxy_events {
413 #define PW_VERSION_REGISTRY_PROXY_EVENTS 0
414 uint32_t version;
428 void (*global) (void *object, uint32_t id, uint32_t parent_id,
429 uint32_t permissions, uint32_t type, uint32_t version,
430 const struct spa_dict *props);
440 void (*global_remove) (void *object, uint32_t id);
441 };
442
443 static inline void
444 pw_registry_proxy_add_listener(struct pw_registry_proxy *registry,
445 struct spa_hook *listener,
446 const struct pw_registry_proxy_events *events,
447 void *data)
448 {
449 pw_proxy_add_proxy_listener((struct pw_proxy*)registry, listener, events, data);
450 }
451
452 #define pw_registry_resource_global(r,...) pw_resource_notify(r,struct pw_registry_proxy_events,global,__VA_ARGS__)
453 #define pw_registry_resource_global_remove(r,...) pw_resource_notify(r,struct pw_registry_proxy_events,global_remove,__VA_ARGS__)
454
455
456 #define PW_VERSION_MODULE 0
457
458 #define PW_MODULE_PROXY_EVENT_INFO 0
459 #define PW_MODULE_PROXY_EVENT_NUM 1
460
462 struct pw_module_proxy_events {
463 #define PW_VERSION_MODULE_PROXY_EVENTS 0
464 uint32_t version;
470 void (*info) (void *object, struct pw_module_info *info);
471 };
472
473 static inline void
474 pw_module_proxy_add_listener(struct pw_module_proxy *module,
475 struct spa_hook *listener,
476 const struct pw_module_proxy_events *events,
477 void *data)
478 {
479 pw_proxy_add_proxy_listener((struct pw_proxy*)module, listener, events, data);
480 }
481
482 #define pw_module_resource_info(r,...) pw_resource_notify(r,struct pw_module_proxy_events,info,__VA_ARGS__)
483
484 #define PW_VERSION_NODE 0
485
486 #define PW_NODE_PROXY_EVENT_INFO 0
487 #define PW_NODE_PROXY_EVENT_PARAM 1
488 #define PW_NODE_PROXY_EVENT_NUM 2
489
491 struct pw_node_proxy_events {
492 #define PW_VERSION_NODE_PROXY_EVENTS 0
493 uint32_t version;
499 void (*info) (void *object, struct pw_node_info *info);
510 void (*param) (void *object,
511 uint32_t id, uint32_t index, uint32_t next,
512 const struct spa_pod *param);
513 };
514
515 static inline void
516 pw_node_proxy_add_listener(struct pw_node_proxy *node,
517 struct spa_hook *listener,
518 const struct pw_node_proxy_events *events,
519 void *data)
520 {
521 pw_proxy_add_proxy_listener((struct pw_proxy*)node, listener, events, data);
522 }
523
524 #define pw_node_resource_info(r,...) pw_resource_notify(r,struct pw_node_proxy_events,info,__VA_ARGS__)
525 #define pw_node_resource_param(r,...) pw_resource_notify(r,struct pw_node_proxy_events,param,__VA_ARGS__)
526
527 #define PW_NODE_PROXY_METHOD_ENUM_PARAMS 0
528 #define PW_NODE_PROXY_METHOD_NUM 1
529
531 struct pw_node_proxy_methods {
532 #define PW_VERSION_NODE_PROXY_METHODS 0
533 uint32_t version;
545 void (*enum_params) (void *object, uint32_t id, uint32_t start, uint32_t num,
546 const struct spa_pod *filter);
547 };
548
550 static inline void
551 pw_node_proxy_enum_params(struct pw_node_proxy *node, uint32_t id, uint32_t index,
552 uint32_t num, const struct spa_pod *filter)
553 {
554 pw_proxy_do((struct pw_proxy*)node, struct pw_node_proxy_methods, enum_params,
555 id, index, num, filter);
556 }
557
558 #define PW_VERSION_PORT 0
559
560 #define PW_PORT_PROXY_EVENT_INFO 0
561 #define PW_PORT_PROXY_EVENT_PARAM 1
562 #define PW_PORT_PROXY_EVENT_NUM 2
563
565 struct pw_port_proxy_events {
566 #define PW_VERSION_PORT_PROXY_EVENTS 0
567 uint32_t version;
573 void (*info) (void *object, struct pw_port_info *info);
584 void (*param) (void *object,
585 uint32_t id, uint32_t index, uint32_t next,
586 const struct spa_pod *param);
587 };
588
589 static inline void
590 pw_port_proxy_add_listener(struct pw_port_proxy *port,
591 struct spa_hook *listener,
592 const struct pw_port_proxy_events *events,
593 void *data)
594 {
595 pw_proxy_add_proxy_listener((struct pw_proxy*)port, listener, events, data);
596 }
597
598 #define pw_port_resource_info(r,...) pw_resource_notify(r,struct pw_port_proxy_events,info,__VA_ARGS__)
599 #define pw_port_resource_param(r,...) pw_resource_notify(r,struct pw_port_proxy_events,param,__VA_ARGS__)
600
601 #define PW_PORT_PROXY_METHOD_ENUM_PARAMS 0
602 #define PW_PORT_PROXY_METHOD_NUM 1
603
605 struct pw_port_proxy_methods {
606 #define PW_VERSION_PORT_PROXY_METHODS 0
607 uint32_t version;
619 void (*enum_params) (void *object, uint32_t id, uint32_t start, uint32_t num,
620 const struct spa_pod *filter);
621 };
622
624 static inline void
625 pw_port_proxy_enum_params(struct pw_port_proxy *port, uint32_t id, uint32_t index,
626 uint32_t num, const struct spa_pod *filter)
627 {
628 pw_proxy_do((struct pw_proxy*)port, struct pw_port_proxy_methods, enum_params,
629 id, index, num, filter);
630 }
631
632 #define PW_VERSION_FACTORY 0
633
634 #define PW_FACTORY_PROXY_EVENT_INFO 0
635 #define PW_FACTORY_PROXY_EVENT_NUM 1
636
638 struct pw_factory_proxy_events {
639 #define PW_VERSION_FACTORY_PROXY_EVENTS 0
640 uint32_t version;
646 void (*info) (void *object, struct pw_factory_info *info);
647 };
648
650 static inline void
651 pw_factory_proxy_add_listener(struct pw_factory_proxy *factory,
652 struct spa_hook *listener,
653 const struct pw_factory_proxy_events *events,
654 void *data)
655 {
656 pw_proxy_add_proxy_listener((struct pw_proxy*)factory, listener, events, data);
657 }
658
659 #define pw_factory_resource_info(r,...) pw_resource_notify(r,struct pw_factory_proxy_events,info,__VA_ARGS__)
660
661 #define PW_VERSION_CLIENT 0
662
663 #define PW_CLIENT_PROXY_EVENT_INFO 0
664 #define PW_CLIENT_PROXY_EVENT_NUM 1
665
667 struct pw_client_proxy_events {
668 #define PW_VERSION_CLIENT_PROXY_EVENTS 0
669 uint32_t version;
675 void (*info) (void *object, struct pw_client_info *info);
676 };
677
679 static inline void
680 pw_client_proxy_add_listener(struct pw_client_proxy *client,
681 struct spa_hook *listener,
682 const struct pw_client_proxy_events *events,
683 void *data)
684 {
685 pw_proxy_add_proxy_listener((struct pw_proxy*)client, listener, events, data);
686 }
687
688 #define pw_client_resource_info(r,...) pw_resource_notify(r,struct pw_client_proxy_events,info,__VA_ARGS__)
689
690
691 #define PW_VERSION_LINK 0
692
693 #define PW_LINK_PROXY_EVENT_INFO 0
694 #define PW_LINK_PROXY_EVENT_NUM 1
695
697 struct pw_link_proxy_events {
698 #define PW_VERSION_LINK_PROXY_EVENTS 0
699 uint32_t version;
705 void (*info) (void *object, struct pw_link_info *info);
706 };
707
709 static inline void
710 pw_link_proxy_add_listener(struct pw_link_proxy *link,
711 struct spa_hook *listener,
712 const struct pw_link_proxy_events *events,
713 void *data)
714 {
715 pw_proxy_add_proxy_listener((struct pw_proxy*)link, listener, events, data);
716 }
717
718 #define pw_link_resource_info(r,...) pw_resource_notify(r,struct pw_link_proxy_events,info,__VA_ARGS__)
719
720 #ifdef __cplusplus
721 } /* extern "C" */
722 #endif
723
724 #endif /* __PIPEWIRE_INTERFACES_H__ */
pw_core_proxy_events::update_types
void(* update_types)(void *object, uint32_t first_id, const char **types, uint32_t n_types)
Update the type map.
Definition: interfaces.h:279
pw_module_proxy_events::version
uint32_t version
Definition: interfaces.h:464
pw_client_proxy_events::version
uint32_t version
Definition: interfaces.h:669
introspect.h
pw_registry_proxy_methods::bind
void(* bind)(void *object, uint32_t id, uint32_t type, uint32_t version, uint32_t new_id)
Bind to a global object.
Definition: interfaces.h:392
pw_registry_proxy_events::global
void(* global)(void *object, uint32_t id, uint32_t parent_id, uint32_t permissions, uint32_t type, uint32_t version, const struct spa_dict *props)
Notify of a new global object.
Definition: interfaces.h:428
pw_core_proxy_methods::client_update
void(* client_update)(void *object, const struct spa_dict *props)
Update the client properties.
Definition: interfaces.h:158
pw_module_proxy_events
Module events.
Definition: interfaces.h:462
pw_core_proxy_methods::destroy
void(* destroy)(void *object, uint32_t id)
Destroy an object id.
Definition: interfaces.h:195
pw_port_proxy_events::info
void(* info)(void *object, struct pw_port_info *info)
Notify port info.
Definition: interfaces.h:573
pw_node_proxy_methods::version
uint32_t version
Definition: interfaces.h:533
pw_core_proxy_methods::get_registry
void(* get_registry)(void *object, uint32_t version, uint32_t new_id)
Get the registry object.
Definition: interfaces.h:153
pw_module_proxy_events::info
void(* info)(void *object, struct pw_module_info *info)
Notify module info.
Definition: interfaces.h:470
pw_port_info
Definition: introspect.h:168
pw_link_proxy_events::version
uint32_t version
Definition: interfaces.h:699
pw_core_info
The core information.
Definition: introspect.h:76
pw_core_proxy_methods::hello
void(* hello)(void *object)
Start a conversation with the server.
Definition: interfaces.h:121
pw_core_proxy_methods::permissions
void(* permissions)(void *object, const struct spa_dict *props)
Manage the permissions of the global objects.
Definition: interfaces.h:171
pw_registry_proxy_events::version
uint32_t version
Definition: interfaces.h:414
pw_factory_proxy_events
Factory events.
Definition: interfaces.h:638
pw_proxy
Represents an object on the client side.
pw_proxy_get_id
uint32_t pw_proxy_get_id(struct pw_proxy *proxy)
Get the local id of the proxy.
Definition: proxy.c:83
pw_node_proxy_events
Node events.
Definition: interfaces.h:491
pw_port_proxy_methods
Port methods.
Definition: interfaces.h:605
pw_proxy_do
#define pw_proxy_do(p, type, method,...)
Definition: proxy.h:149
pw_proxy_add_proxy_listener
void pw_proxy_add_proxy_listener(struct pw_proxy *proxy, struct spa_hook *listener, const void *events, void *data)
Add a listener for the events received from the remote resource.
Definition: proxy.c:101
pw_port_proxy_methods::enum_params
void(* enum_params)(void *object, uint32_t id, uint32_t start, uint32_t num, const struct spa_pod *filter)
Enumerate port parameters.
Definition: interfaces.h:619
pw_node_proxy_events::param
void(* param)(void *object, uint32_t id, uint32_t index, uint32_t next, const struct spa_pod *param)
Notify a node param.
Definition: interfaces.h:510
pw_core_proxy_events::remove_id
void(* remove_id)(void *object, uint32_t id)
Remove an object ID.
Definition: interfaces.h:314
pw_registry_proxy_methods::version
uint32_t version
Definition: interfaces.h:379
pw_port_info::id
uint32_t id
id of the global
Definition: introspect.h:169
pw_core_proxy_events::error
void(* error)(void *object, uint32_t id, int res, const char *error,...)
Fatal error event.
Definition: interfaces.h:303
pw_port_proxy_events::version
uint32_t version
Definition: interfaces.h:567
pw_node_info::id
uint32_t id
id of the global
Definition: introspect.h:143
pw_client_info
The client information.
Definition: introspect.h:125
pw_link_proxy_events
Link events.
Definition: interfaces.h:697
pw_factory_proxy_events::info
void(* info)(void *object, struct pw_factory_info *info)
Notify factory info.
Definition: interfaces.h:646
pw_port_proxy_events
Port events.
Definition: interfaces.h:565
pw_client_proxy_events::info
void(* info)(void *object, struct pw_client_info *info)
Notify client info.
Definition: interfaces.h:675
pw_node_proxy_events::version
uint32_t version
Definition: interfaces.h:493
pw_core_proxy_events::done
void(* done)(void *object, uint32_t seq)
Emit a done event.
Definition: interfaces.h:290
pw_registry_proxy_events::global_remove
void(* global_remove)(void *object, uint32_t id)
Notify of a global object removal.
Definition: interfaces.h:440
pw_port_proxy_events::param
void(* param)(void *object, uint32_t id, uint32_t index, uint32_t next, const struct spa_pod *param)
Notify a port param.
Definition: interfaces.h:584
pw_core_proxy_events
Core events
Definition: interfaces.h:267
pw_factory_proxy_events::version
uint32_t version
Definition: interfaces.h:640
pw_link_info
The link information.
Definition: introspect.h:204
pw_factory_info
The factory information.
Definition: introspect.h:186
pw_core_proxy_methods::create_object
void(* create_object)(void *object, const char *factory_name, uint32_t type, uint32_t version, const struct spa_dict *props, uint32_t new_id)
Create a new object on the PipeWire server from a factory.
Definition: interfaces.h:183
pw_module_info
The module information.
Definition: introspect.h:103
proxy.h
pw_client_proxy_events
Client events.
Definition: interfaces.h:667
pw_node_proxy_methods::enum_params
void(* enum_params)(void *object, uint32_t id, uint32_t start, uint32_t num, const struct spa_pod *filter)
Enumerate node parameters.
Definition: interfaces.h:545
registry
Definition: pipewire.c:54
pw_core_proxy_methods::version
uint32_t version
Definition: interfaces.h:116
pw_proxy::pw_proxy_new
struct pw_proxy * pw_proxy_new(struct pw_proxy *factory, uint32_t type, size_t user_data_size)
Create a proxy object with a given id and type.
Definition: proxy.c:46
pw_link_proxy_events::info
void(* info)(void *object, struct pw_link_info *info)
Notify link info.
Definition: interfaces.h:705
pw_core_proxy_events::version
uint32_t version
Definition: interfaces.h:269
pw_node_proxy_methods
Node methods.
Definition: interfaces.h:531
pw_registry_proxy_methods
Registry methods.
Definition: interfaces.h:377
pw_core_proxy_events::info
void(* info)(void *object, struct pw_core_info *info)
Notify new core info.
Definition: interfaces.h:320
pw_port_proxy_methods::version
uint32_t version
Definition: interfaces.h:607
pw_node_info
The node information.
Definition: introspect.h:142
pw_core_proxy_methods::update_types
void(* update_types)(void *object, uint32_t first_id, const char **types, uint32_t n_types)
Update the type map.
Definition: interfaces.h:131
pw_node_proxy_events::info
void(* info)(void *object, struct pw_node_info *info)
Notify node info.
Definition: interfaces.h:499
pw_core_proxy_methods
Core methods.
Definition: interfaces.h:114
pw_registry_proxy_events
Registry events.
Definition: interfaces.h:412
pw_core_proxy_methods::sync
void(* sync)(void *object, uint32_t seq)
Do server roundtrip.
Definition: interfaces.h:144