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);
 
 
  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 
 
  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);
 
 
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