20 #define SPA_API_LOOP SPA_API_IMPL
22 #define SPA_API_LOOP static inline
35#define SPA_TYPE_INTERFACE_Loop SPA_TYPE_INFO_INTERFACE_BASE "Loop"
36#define SPA_TYPE_INTERFACE_DataLoop SPA_TYPE_INFO_INTERFACE_BASE "DataLoop"
37#define SPA_VERSION_LOOP 0
40#define SPA_TYPE_INTERFACE_LoopControl SPA_TYPE_INFO_INTERFACE_BASE "LoopControl"
41#define SPA_VERSION_LOOP_CONTROL 1
44#define SPA_TYPE_INTERFACE_LoopUtils SPA_TYPE_INFO_INTERFACE_BASE "LoopUtils"
45#define SPA_VERSION_LOOP_UTILS 0
76#define SPA_VERSION_LOOP_METHODS 0
129 int (*
invoke) (
void *object,
155 size_t size,
bool block,
void *user_data)
159 size, block, user_data);
159 size, block, user_data); {
…}
166#define SPA_VERSION_LOOP_CONTROL_HOOKS 0
170 void (*
before) (
void *data);
173 void (*
after) (
void *data);
216#define SPA_VERSION_LOOP_CONTROL_METHODS 1
228 int (*get_fd) (
void *object);
236 void (*add_hook) (
void *object,
249 void (*enter) (
void *object);
256 void (*leave) (
void *object);
267 int (*iterate) (
void *object,
int timeout);
277 int (*check) (
void *object);
330#define SPA_VERSION_LOOP_UTILS_METHODS 0
330#define SPA_VERSION_LOOP_UTILS_METHODS 0 {
…}
346 struct spa_source *(*add_event) (
void *object,
354 struct timespec *value,
355 struct timespec *interval,
357 struct spa_source *(*add_signal) (
void *object,
412 struct spa_source *source,
struct timespec *value,
413 struct timespec *interval,
bool absolute)
417 value, interval, absolute);
413 struct timespec *interval,
bool absolute) {
…}
uint32_t int seq
Definition core.h:432
#define spa_api_method_r(rtype, def, type, o, method, version,...)
Definition hook.h:291
#define spa_api_method_fast_r(rtype, def, type, o, method, version,...)
Definition hook.h:325
#define spa_callbacks_call_fast(callbacks, type, method, vers,...)
Definition hook.h:184
#define spa_api_method_v(type, o, method, version,...)
Definition hook.h:285
#define spa_list_for_each_reverse(pos, head, member)
Definition list.h:122
#define spa_list_for_each(pos, head, member)
Definition list.h:119
SPA_API_LOOP int spa_loop_invoke(struct spa_loop *object, spa_invoke_func_t func, uint32_t seq, const void *data, size_t size, bool block, void *user_data)
Definition loop.h:169
SPA_API_LOOP void spa_loop_control_hook_before(struct spa_hook_list *l)
Definition loop.h:193
SPA_API_LOOP struct spa_source * spa_loop_utils_add_idle(struct spa_loop_utils *object, bool enabled, spa_source_idle_func_t func, void *data)
Definition loop.h:400
SPA_API_LOOP struct spa_source * spa_loop_utils_add_signal(struct spa_loop_utils *object, int signal_number, spa_source_signal_func_t func, void *data)
Definition loop.h:439
SPA_API_LOOP int spa_loop_add_source(struct spa_loop *object, struct spa_source *source)
Definition loop.h:154
void(* spa_source_timer_func_t)(void *data, uint64_t expirations)
Definition loop.h:339
SPA_API_LOOP struct spa_source * spa_loop_utils_add_timer(struct spa_loop_utils *object, spa_source_timer_func_t func, void *data)
Definition loop.h:425
SPA_API_LOOP int spa_loop_control_get_fd(struct spa_loop_control *object)
Definition loop.h:298
SPA_API_LOOP void spa_loop_control_enter(struct spa_loop_control *object)
Definition loop.h:310
SPA_API_LOOP int spa_loop_remove_source(struct spa_loop *object, struct spa_source *source)
Definition loop.h:164
SPA_API_LOOP int spa_loop_utils_update_timer(struct spa_loop_utils *object, struct spa_source *source, struct timespec *value, struct timespec *interval, bool absolute)
Definition loop.h:430
SPA_API_LOOP int spa_loop_utils_enable_idle(struct spa_loop_utils *object, struct spa_source *source, bool enabled)
Definition loop.h:406
void(* spa_source_event_func_t)(void *data, uint64_t count)
Definition loop.h:338
void(* spa_source_signal_func_t)(void *data, int signal_number)
Definition loop.h:340
SPA_API_LOOP int spa_loop_control_iterate_fast(struct spa_loop_control *object, int timeout)
Definition loop.h:324
SPA_API_LOOP void spa_loop_control_add_hook(struct spa_loop_control *object, struct spa_hook *hook, const struct spa_loop_control_hooks *hooks, void *data)
Definition loop.h:303
void(* spa_source_idle_func_t)(void *data)
Definition loop.h:337
SPA_API_LOOP int spa_loop_control_iterate(struct spa_loop_control *object, int timeout)
Definition loop.h:318
SPA_API_LOOP void spa_loop_utils_destroy_source(struct spa_loop_utils *object, struct spa_source *source)
Definition loop.h:446
void(* spa_source_func_t)(struct spa_source *source)
Definition loop.h:65
SPA_API_LOOP int spa_loop_control_check(struct spa_loop_control *object)
Definition loop.h:330
SPA_API_LOOP void spa_loop_control_hook_after(struct spa_hook_list *l)
Definition loop.h:200
SPA_API_LOOP struct spa_source * spa_loop_utils_add_event(struct spa_loop_utils *object, spa_source_event_func_t func, void *data)
Definition loop.h:413
int(* spa_invoke_func_t)(struct spa_loop *loop, bool async, uint32_t seq, const void *data, size_t size, void *user_data)
Definition loop.h:78
void(* spa_source_io_func_t)(void *data, int fd, uint32_t mask)
Definition loop.h:336
SPA_API_LOOP int spa_loop_utils_signal_event(struct spa_loop_utils *object, struct spa_source *source)
Definition loop.h:418
SPA_API_LOOP int spa_loop_utils_update_io(struct spa_loop_utils *object, struct spa_source *source, uint32_t mask)
Definition loop.h:393
SPA_API_LOOP void spa_loop_control_leave(struct spa_loop_control *object)
Definition loop.h:314
SPA_API_LOOP int spa_loop_update_source(struct spa_loop *object, struct spa_source *source)
Definition loop.h:159
SPA_API_LOOP struct spa_source * spa_loop_utils_add_io(struct spa_loop_utils *object, int fd, uint32_t mask, bool close, spa_source_io_func_t func, void *data)
Definition loop.h:387
#define SPA_API_LOOP
Definition loop.h:29
A list of hooks.
Definition hook.h:416
struct spa_list list
Definition hook.h:417
A hook, contains the structure with functions and the data passed to the functions.
Definition hook.h:427
struct spa_callbacks cb
Definition hook.h:429
struct spa_list link
Definition hook.h:428
Control hooks.
Definition loop.h:181
void(* before)(void *data)
Executed right before waiting for events.
Definition loop.h:187
uint32_t version
Definition loop.h:184
void(* after)(void *data)
Executed right after waiting for events.
Definition loop.h:190
Control an event loop.
Definition loop.h:230
struct spa_interface iface
Definition loop.h:54
Register sources and work items to an event loop.
Definition loop.h:88
int(* add_source)(void *object, struct spa_source *source)
Add a source to the loop.
Definition loop.h:101
int(* remove_source)(void *object, struct spa_source *source)
Remove a source from the loop.
Definition loop.h:119
int(* invoke)(void *object, spa_invoke_func_t func, uint32_t seq, const void *data, size_t size, bool block, void *user_data)
Invoke a function in the context of this loop.
Definition loop.h:145
int(* update_source)(void *object, struct spa_source *source)
Update the source io mask.
Definition loop.h:110
uint32_t version
Definition loop.h:93
Create sources for an event loop.
Definition loop.h:345
int(* update_io)(void *object, struct spa_source *source, uint32_t mask)
Definition loop.h:358
int(* enable_idle)(void *object, struct spa_source *source, bool enabled)
Definition loop.h:363
int(* signal_event)(void *object, struct spa_source *source)
Definition loop.h:367
int(* update_timer)(void *object, struct spa_source *source, struct timespec *value, struct timespec *interval, bool absolute)
Definition loop.h:371
void(* destroy_source)(void *object, struct spa_source *source)
destroy a source allocated with this interface.
Definition loop.h:383
uint32_t version
Definition loop.h:350
struct spa_interface iface
Definition loop.h:60
struct spa_interface iface
Definition loop.h:48
uint32_t rmask
Definition loop.h:73
void * data
Definition loop.h:70
void * priv
Definition loop.h:75
uint32_t mask
Definition loop.h:72
spa_source_func_t func
Definition loop.h:69
int fd
Definition loop.h:71
struct spa_loop * loop
Definition loop.h:68