core.inc 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. const
  2. PW_VERSION_CORE = 3;
  3. PW_VERSION_REGISTRY = 3;
  4. PW_DEFAULT_REMOTE = 'pipewire-0';
  5. PW_ID_CORE = 0;
  6. PW_ID_ANY = tuint32_t($ffffffff);
  7. PW_VERSION_CORE_EVENTS = 0;
  8. type
  9. Ppw_core_events = ^Tpw_core_events;
  10. Ppw_core_info = ^Tpw_core_info;
  11. Ppw_core_methods = ^Tpw_core_methods;
  12. Ppw_registry = ^Tpw_registry;
  13. Ppw_registry_events = ^Tpw_registry_events;
  14. Ppw_registry_methods = ^Tpw_registry_methods;
  15. Tpw_core_events = record
  16. version: Tuint32_t;
  17. info: procedure(object_: pointer; info: Ppw_core_info); cdecl;
  18. done: procedure(object_: pointer; id: Tuint32_t; seq: longint); cdecl;
  19. ping: procedure(object_: pointer; id: Tuint32_t; seq: longint); cdecl;
  20. error: procedure(object_: pointer; id: Tuint32_t; seq: longint; res: longint; message: PChar); cdecl;
  21. remove_id: procedure(object_: pointer; id: Tuint32_t); cdecl;
  22. bound_id: procedure(object_: pointer; id: Tuint32_t; global_id: Tuint32_t); cdecl;
  23. add_mem: procedure(object_: pointer; id: Tuint32_t; _type: Tuint32_t; fd: longint; flags: Tuint32_t); cdecl;
  24. remove_mem: procedure(object_: pointer; id: Tuint32_t); cdecl;
  25. end;
  26. Tpw_core_methods = record
  27. version: Tuint32_t;
  28. add_listener: function(object_: pointer; listener: Pspa_hook; events: Ppw_core_events; Data: pointer) : longint; cdecl;
  29. hello: function(object_: pointer; version: Tuint32_t) : longint; cdecl;
  30. sync: function(object_: pointer; id: Tuint32_t; seq: longint) : longint; cdecl;
  31. pong: function(object_: pointer; id: Tuint32_t; seq: longint) : longint; cdecl;
  32. error: function(object_: pointer; id: Tuint32_t; seq: longint; res: longint; message: PChar) : longint; cdecl;
  33. get_registry: function(object_: pointer; version: Tuint32_t; user_data_size: Tsize_t) : Ppw_registry; cdecl;
  34. create_object: function(object_: pointer; factory_name: PChar; _type: PChar; version: Tuint32_t; props: Pspa_dict; user_data_size: Tsize_t) : pointer; cdecl;
  35. Destroy: function(object_: pointer; proxy: pointer) : longint; cdecl;
  36. end;
  37. Tpw_registry_events = record
  38. version: Tuint32_t;
  39. global: procedure(object_: pointer; id: Tuint32_t; permissions: Tuint32_t; _type: PChar; version: Tuint32_t; props: Pspa_dict); cdecl;
  40. global_remove: procedure(object_: pointer; id: Tuint32_t); cdecl;
  41. end;
  42. Tpw_registry_methods = record
  43. version: Tuint32_t;
  44. add_listener: function(object_: pointer; listener: Pspa_hook; events: Ppw_registry_events; Data: pointer) : longint; cdecl;
  45. bind: function(object_: pointer; id: Tuint32_t; _type: PChar; version: Tuint32_t; use_data_size: Tsize_t) : pointer; cdecl;
  46. Destroy: function(object_: pointer; id: Tuint32_t) : longint; cdecl;
  47. end;
  48. function pw_core_info_update(info: Ppw_core_info; update: Ppw_core_info) : Ppw_core_info; cdecl; external libpipewirename Name 'pw_core_info_update';
  49. function pw_core_info_merge(info: Ppw_core_info; update: Ppw_core_info; reset: T_Bool) : Ppw_core_info; cdecl; external libpipewirename Name 'pw_core_info_merge';
  50. procedure pw_core_info_free(info: Ppw_core_info); cdecl; external libpipewirename Name 'pw_core_info_free';
  51. function pw_core_sync(pw_core: Ppw_core; aID, aSync: cint) : cint;
  52. {
  53. static inline
  54. __attribute__((format(printf, 5, 0))) int
  55. pw_core_errorv(struct pw_core *core, uint32_t id, int seq,
  56. int res, const char *message, va_list args)
  57. char buffer[1024];
  58. vsnprintf(buffer, sizeof(buffer), message, args);
  59. buffer[1023] = '\0';
  60. return ( int _res = -
  61. # 342 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  62. 95
  63. # 342 "/usr/include/pipewire-0.3/pipewire/core.h"
  64. ; ( const struct pw_core_methods *_f = (const struct pw_core_methods *) (&((struct spa_interface*)core)->cb)->funcs; if ((__builtin_expect(!!((((_f) && ((0) == 0 || (_f)->version > (0)-1)) && (_f)->error)),1))) _res = _f->error((&((struct spa_interface*)core)->cb)->data, id, seq, res, buffer); _res; ); _res; );
  65. static inline
  66. __attribute__((format(printf, 5, 6))) int
  67. pw_core_errorf(struct pw_core *core, uint32_t id, int seq,
  68. int res, const char *message, ...)
  69. va_list args;
  70. int r;
  71. # 352 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  72. __builtin_va_start(
  73. # 352 "/usr/include/pipewire-0.3/pipewire/core.h"
  74. args
  75. # 352 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  76. ,
  77. # 352 "/usr/include/pipewire-0.3/pipewire/core.h"
  78. message
  79. # 352 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  80. )
  81. # 352 "/usr/include/pipewire-0.3/pipewire/core.h"
  82. ;
  83. r = pw_core_errorv(core, id, seq, res, message, args);
  84. # 354 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  85. __builtin_va_end(
  86. # 354 "/usr/include/pipewire-0.3/pipewire/core.h"
  87. args
  88. # 354 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  89. )
  90. # 354 "/usr/include/pipewire-0.3/pipewire/core.h"
  91. ;
  92. return r;
  93. static inline struct pw_registry *
  94. pw_core_get_registry(struct pw_core *core, uint32_t version, size_t user_data_size)
  95. struct pw_registry *res =
  96. # 361 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  97. ((void *)0)
  98. # 361 "/usr/include/pipewire-0.3/pipewire/core.h"
  99. ;
  100. ( const struct pw_core_methods *_f = (const struct pw_core_methods *) (&((struct spa_interface*)core)->cb)->funcs; if ((__builtin_expect(!!((((_f) && ((0) == 0 || (_f)->version > (0)-1)) && (_f)->get_registry)),1))) res = _f->get_registry((&((struct spa_interface*)core)->cb)->data, version, user_data_size); res; )
  101. ;
  102. return res;
  103. static inline void *
  104. pw_core_create_object(struct pw_core *core,
  105. const char *factory_name,
  106. const char *type,
  107. uint32_t version,
  108. const struct spa_dict *props,
  109. size_t user_data_size)
  110. void *res =
  111. # 376 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  112. ((void *)0)
  113. # 376 "/usr/include/pipewire-0.3/pipewire/core.h"
  114. ;
  115. ( const struct pw_core_methods *_f = (const struct pw_core_methods *) (&((struct spa_interface*)core)->cb)->funcs; if ((__builtin_expect(!!((((_f) && ((0) == 0 || (_f)->version > (0)-1)) && (_f)->create_object)),1))) res = _f->create_object((&((struct spa_interface*)core)->cb)->data, factory_name, type, version, props, user_data_size); res; )
  116. ;
  117. return res;
  118. }
  119. {
  120. # 511 "/usr/include/pipewire-0.3/pipewire/core.h"
  121. static inline void *
  122. pw_registry_bind(struct pw_registry *registry,
  123. uint32_t id, const char *type, uint32_t version,
  124. size_t user_data_size)
  125. void *res =
  126. # 516 "/usr/include/pipewire-0.3/pipewire/core.h" 3 4
  127. ((void *)0)
  128. # 516 "/usr/include/pipewire-0.3/pipewire/core.h"
  129. ;
  130. ( const struct pw_registry_methods *_f = (const struct pw_registry_methods *) (&((struct spa_interface*)registry)->cb)->funcs; if ((__builtin_expect(!!((((_f) && ((0) == 0 || (_f)->version > (0)-1)) && (_f)->bind)),1))) res = _f->bind((&((struct spa_interface*)registry)->cb)->data, id, type, version, user_data_size); res; )
  131. ;
  132. return res;
  133. }
  134. function pw_context_connect(context: Ppw_context; properties: Ppw_properties; user_data_size: Tsize_t) : Ppw_core; cdecl; external libpipewirename Name 'pw_context_connect';
  135. function pw_context_connect_fd(context: Ppw_context; fd: longint; properties: Ppw_properties; user_data_size: Tsize_t) : Ppw_core; cdecl; external libpipewirename Name 'pw_context_connect_fd';
  136. function pw_context_connect_self(context: Ppw_context; properties: Ppw_properties; user_data_size: Tsize_t) : Ppw_core; cdecl; external libpipewirename Name 'pw_context_connect_self';
  137. function pw_core_steal_fd(core: Ppw_core) : longint; cdecl; external libpipewirename Name 'pw_core_steal_fd';
  138. function pw_core_set_paused(core: Ppw_core; paused: T_Bool) : longint; cdecl; external libpipewirename Name 'pw_core_set_paused';
  139. function pw_core_disconnect(core: Ppw_core) : longint; cdecl; external libpipewirename Name 'pw_core_disconnect';
  140. function pw_core_get_user_data(core: Ppw_core) : pointer; cdecl; external libpipewirename Name 'pw_core_get_user_data';
  141. function pw_core_get_client(core: Ppw_core) : Ppw_client; cdecl; external libpipewirename Name 'pw_core_get_client';
  142. function pw_core_get_context(core: Ppw_core) : Ppw_context; cdecl; external libpipewirename Name 'pw_core_get_context';
  143. function pw_core_get_properties(core: Ppw_core) : Ppw_properties; cdecl; external libpipewirename Name 'pw_core_get_properties';
  144. function pw_core_update_properties(core: Ppw_core; dict: Pspa_dict) : longint; cdecl; external libpipewirename Name 'pw_core_update_properties';
  145. function pw_core_get_mempool(core: Ppw_core) : Ppw_mempool; cdecl; external libpipewirename Name 'pw_core_get_mempool';
  146. function pw_core_find_proxy(core: Ppw_core; id: Tuint32_t) : Ppw_proxy; cdecl; external libpipewirename Name 'pw_core_find_proxy';
  147. function pw_core_export(core: Ppw_core; _type: PChar; props: Pspa_dict; object_: pointer; user_data_size: Tsize_t) : Ppw_proxy; cdecl; external libpipewirename Name 'pw_core_export';
  148. function pw_core_add_listener(pw_core: ppw_core; aListener: Pspa_hook; aEvents: Ppw_core_events; aData: Pointer) : cint;