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
132 int (*
invoke) (
void *object,
158 size_t size,
bool block,
void *user_data)
162 size, block, user_data);
162 size, block, user_data); {
…}
169#define SPA_VERSION_LOOP_CONTROL_HOOKS 0
173 void (*
before) (
void *data);
176 void (*
after) (
void *data);
219#define SPA_VERSION_LOOP_CONTROL_METHODS 1
231 int (*get_fd) (
void *object);
239 void (*add_hook) (
void *object,
252 void (*enter) (
void *object);
259 void (*leave) (
void *object);
270 int (*iterate) (
void *object,
int timeout);
280 int (*check) (
void *object);
333#define SPA_VERSION_LOOP_UTILS_METHODS 0
333#define SPA_VERSION_LOOP_UTILS_METHODS 0 {
…}
349 struct spa_source *(*add_event) (
void *object,
357 struct timespec *value,
358 struct timespec *interval,
360 struct spa_source *(*add_signal) (
void *object,
415 struct spa_source *source,
struct timespec *value,
416 struct timespec *interval,
bool absolute)
420 value, interval, absolute);
416 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:172
SPA_API_LOOP void spa_loop_control_hook_before(struct spa_hook_list *l)
Definition loop.h:196
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:403
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:442
SPA_API_LOOP int spa_loop_add_source(struct spa_loop *object, struct spa_source *source)
Definition loop.h:157
void(* spa_source_timer_func_t)(void *data, uint64_t expirations)
Definition loop.h:342
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:428
SPA_API_LOOP int spa_loop_control_get_fd(struct spa_loop_control *object)
Definition loop.h:301
SPA_API_LOOP void spa_loop_control_enter(struct spa_loop_control *object)
Definition loop.h:313
SPA_API_LOOP int spa_loop_remove_source(struct spa_loop *object, struct spa_source *source)
Definition loop.h:167
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:433
SPA_API_LOOP int spa_loop_utils_enable_idle(struct spa_loop_utils *object, struct spa_source *source, bool enabled)
Definition loop.h:409
void(* spa_source_event_func_t)(void *data, uint64_t count)
Definition loop.h:341
void(* spa_source_signal_func_t)(void *data, int signal_number)
Definition loop.h:343
SPA_API_LOOP int spa_loop_control_iterate_fast(struct spa_loop_control *object, int timeout)
Definition loop.h:327
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:306
void(* spa_source_idle_func_t)(void *data)
Definition loop.h:340
SPA_API_LOOP int spa_loop_control_iterate(struct spa_loop_control *object, int timeout)
Definition loop.h:321
SPA_API_LOOP void spa_loop_utils_destroy_source(struct spa_loop_utils *object, struct spa_source *source)
Definition loop.h:449
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:333
SPA_API_LOOP void spa_loop_control_hook_after(struct spa_hook_list *l)
Definition loop.h:203
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:416
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:339
SPA_API_LOOP int spa_loop_utils_signal_event(struct spa_loop_utils *object, struct spa_source *source)
Definition loop.h:421
SPA_API_LOOP int spa_loop_utils_update_io(struct spa_loop_utils *object, struct spa_source *source, uint32_t mask)
Definition loop.h:396
SPA_API_LOOP void spa_loop_control_leave(struct spa_loop_control *object)
Definition loop.h:317
SPA_API_LOOP int spa_loop_update_source(struct spa_loop *object, struct spa_source *source)
Definition loop.h:162
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:390
#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:184
void(* before)(void *data)
Executed right before waiting for events.
Definition loop.h:190
uint32_t version
Definition loop.h:187
void(* after)(void *data)
Executed right after waiting for events.
Definition loop.h:193
Control an event loop.
Definition loop.h:233
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:148
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:348
int(* update_io)(void *object, struct spa_source *source, uint32_t mask)
Definition loop.h:361
int(* enable_idle)(void *object, struct spa_source *source, bool enabled)
Definition loop.h:366
int(* signal_event)(void *object, struct spa_source *source)
Definition loop.h:370
int(* update_timer)(void *object, struct spa_source *source, struct timespec *value, struct timespec *interval, bool absolute)
Definition loop.h:374
void(* destroy_source)(void *object, struct spa_source *source)
destroy a source allocated with this interface.
Definition loop.h:386
uint32_t version
Definition loop.h:353
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