PipeWire  0.3.49
Loop

Event loop interface. More...

Files

file  loop.h
 spa/support/loop.h
 

Data Structures

struct  spa_loop
 
struct  spa_loop_control
 
struct  spa_loop_utils
 
struct  spa_source
 
struct  spa_loop_methods
 Register sources and work items to an event loop. More...
 
struct  spa_loop_control_hooks
 Control hooks. More...
 
struct  spa_loop_control_methods
 Control an event loop. More...
 
struct  spa_loop_utils_methods
 Create sources for an event loop. More...
 

Macros

#define SPA_TYPE_INTERFACE_Loop   SPA_TYPE_INFO_INTERFACE_BASE "Loop"
 
#define SPA_TYPE_INTERFACE_DataLoop   SPA_TYPE_INFO_INTERFACE_BASE "DataLoop"
 
#define SPA_VERSION_LOOP   0
 
#define SPA_TYPE_INTERFACE_LoopControl   SPA_TYPE_INFO_INTERFACE_BASE "LoopControl"
 
#define SPA_VERSION_LOOP_CONTROL   0
 
#define SPA_TYPE_INTERFACE_LoopUtils   SPA_TYPE_INFO_INTERFACE_BASE "LoopUtils"
 
#define SPA_VERSION_LOOP_UTILS   0
 
#define SPA_VERSION_LOOP_METHODS   0
 
#define spa_loop_method(o, method, version, ...)
 
#define spa_loop_add_source(l, ...)   spa_loop_method(l,add_source,0,##__VA_ARGS__)
 
#define spa_loop_update_source(l, ...)   spa_loop_method(l,update_source,0,##__VA_ARGS__)
 
#define spa_loop_remove_source(l, ...)   spa_loop_method(l,remove_source,0,##__VA_ARGS__)
 
#define spa_loop_invoke(l, ...)   spa_loop_method(l,invoke,0,##__VA_ARGS__)
 
#define SPA_VERSION_LOOP_CONTROL_HOOKS   0
 
#define spa_loop_control_hook_before(l)
 
#define spa_loop_control_hook_after(l)
 
#define SPA_VERSION_LOOP_CONTROL_METHODS   0
 
#define spa_loop_control_method_v(o, method, version, ...)
 
#define spa_loop_control_method_r(o, method, version, ...)
 
#define spa_loop_control_get_fd(l)   spa_loop_control_method_r(l,get_fd,0)
 
#define spa_loop_control_add_hook(l, ...)   spa_loop_control_method_v(l,add_hook,0,__VA_ARGS__)
 
#define spa_loop_control_enter(l)   spa_loop_control_method_v(l,enter,0)
 
#define spa_loop_control_leave(l)   spa_loop_control_method_v(l,leave,0)
 
#define spa_loop_control_iterate(l, ...)   spa_loop_control_method_r(l,iterate,0,__VA_ARGS__)
 
#define SPA_VERSION_LOOP_UTILS_METHODS   0
 
#define spa_loop_utils_method_v(o, method, version, ...)
 
#define spa_loop_utils_method_r(o, method, version, ...)
 
#define spa_loop_utils_method_s(o, method, version, ...)
 
#define spa_loop_utils_add_io(l, ...)   spa_loop_utils_method_s(l,add_io,0,__VA_ARGS__)
 
#define spa_loop_utils_update_io(l, ...)   spa_loop_utils_method_r(l,update_io,0,__VA_ARGS__)
 
#define spa_loop_utils_add_idle(l, ...)   spa_loop_utils_method_s(l,add_idle,0,__VA_ARGS__)
 
#define spa_loop_utils_enable_idle(l, ...)   spa_loop_utils_method_r(l,enable_idle,0,__VA_ARGS__)
 
#define spa_loop_utils_add_event(l, ...)   spa_loop_utils_method_s(l,add_event,0,__VA_ARGS__)
 
#define spa_loop_utils_signal_event(l, ...)   spa_loop_utils_method_r(l,signal_event,0,__VA_ARGS__)
 
#define spa_loop_utils_add_timer(l, ...)   spa_loop_utils_method_s(l,add_timer,0,__VA_ARGS__)
 
#define spa_loop_utils_update_timer(l, ...)   spa_loop_utils_method_r(l,update_timer,0,__VA_ARGS__)
 
#define spa_loop_utils_add_signal(l, ...)   spa_loop_utils_method_s(l,add_signal,0,__VA_ARGS__)
 
#define spa_loop_utils_destroy_source(l, ...)   spa_loop_utils_method_v(l,destroy_source,0,__VA_ARGS__)
 

Typedefs

typedef void(* spa_source_func_t) (struct spa_source *source)
 
typedef int(* spa_invoke_func_t) (struct spa_loop *loop, bool async, uint32_t seq, const void *data, size_t size, void *user_data)
 
typedef void(* spa_source_io_func_t) (void *data, int fd, uint32_t mask)
 
typedef void(* spa_source_idle_func_t) (void *data)
 
typedef void(* spa_source_event_func_t) (void *data, uint64_t count)
 
typedef void(* spa_source_timer_func_t) (void *data, uint64_t expirations)
 
typedef void(* spa_source_signal_func_t) (void *data, int signal_number)
 

Detailed Description

Event loop interface.

Macro Definition Documentation

◆ SPA_TYPE_INTERFACE_Loop

◆ SPA_TYPE_INTERFACE_DataLoop

◆ SPA_VERSION_LOOP

#define SPA_VERSION_LOOP   0

◆ SPA_TYPE_INTERFACE_LoopControl

◆ SPA_VERSION_LOOP_CONTROL

#define SPA_VERSION_LOOP_CONTROL   0

◆ SPA_TYPE_INTERFACE_LoopUtils

#define SPA_TYPE_INTERFACE_LoopUtils   SPA_TYPE_INFO_INTERFACE_BASE "LoopUtils"

◆ SPA_VERSION_LOOP_UTILS

#define SPA_VERSION_LOOP_UTILS   0

◆ SPA_VERSION_LOOP_METHODS

#define SPA_VERSION_LOOP_METHODS   0

◆ spa_loop_method

#define spa_loop_method (   o,
  method,
  version,
  ... 
)

◆ spa_loop_add_source

#define spa_loop_add_source (   l,
  ... 
)    spa_loop_method(l,add_source,0,##__VA_ARGS__)

◆ spa_loop_update_source

#define spa_loop_update_source (   l,
  ... 
)    spa_loop_method(l,update_source,0,##__VA_ARGS__)

◆ spa_loop_remove_source

#define spa_loop_remove_source (   l,
  ... 
)    spa_loop_method(l,remove_source,0,##__VA_ARGS__)

◆ spa_loop_invoke

#define spa_loop_invoke (   l,
  ... 
)    spa_loop_method(l,invoke,0,##__VA_ARGS__)

◆ SPA_VERSION_LOOP_CONTROL_HOOKS

#define SPA_VERSION_LOOP_CONTROL_HOOKS   0

◆ spa_loop_control_hook_before

#define spa_loop_control_hook_before (   l)

◆ spa_loop_control_hook_after

#define spa_loop_control_hook_after (   l)

◆ SPA_VERSION_LOOP_CONTROL_METHODS

#define SPA_VERSION_LOOP_CONTROL_METHODS   0

◆ spa_loop_control_method_v

#define spa_loop_control_method_v (   o,
  method,
  version,
  ... 
)

◆ spa_loop_control_method_r

#define spa_loop_control_method_r (   o,
  method,
  version,
  ... 
)

◆ spa_loop_control_get_fd

#define spa_loop_control_get_fd (   l)    spa_loop_control_method_r(l,get_fd,0)

◆ spa_loop_control_add_hook

#define spa_loop_control_add_hook (   l,
  ... 
)    spa_loop_control_method_v(l,add_hook,0,__VA_ARGS__)

◆ spa_loop_control_enter

◆ spa_loop_control_leave

◆ spa_loop_control_iterate

#define spa_loop_control_iterate (   l,
  ... 
)    spa_loop_control_method_r(l,iterate,0,__VA_ARGS__)

◆ SPA_VERSION_LOOP_UTILS_METHODS

#define SPA_VERSION_LOOP_UTILS_METHODS   0

◆ spa_loop_utils_method_v

#define spa_loop_utils_method_v (   o,
  method,
  version,
  ... 
)

◆ spa_loop_utils_method_r

#define spa_loop_utils_method_r (   o,
  method,
  version,
  ... 
)

◆ spa_loop_utils_method_s

#define spa_loop_utils_method_s (   o,
  method,
  version,
  ... 
)

◆ spa_loop_utils_add_io

#define spa_loop_utils_add_io (   l,
  ... 
)    spa_loop_utils_method_s(l,add_io,0,__VA_ARGS__)

◆ spa_loop_utils_update_io

#define spa_loop_utils_update_io (   l,
  ... 
)    spa_loop_utils_method_r(l,update_io,0,__VA_ARGS__)

◆ spa_loop_utils_add_idle

#define spa_loop_utils_add_idle (   l,
  ... 
)    spa_loop_utils_method_s(l,add_idle,0,__VA_ARGS__)

◆ spa_loop_utils_enable_idle

#define spa_loop_utils_enable_idle (   l,
  ... 
)    spa_loop_utils_method_r(l,enable_idle,0,__VA_ARGS__)

◆ spa_loop_utils_add_event

#define spa_loop_utils_add_event (   l,
  ... 
)    spa_loop_utils_method_s(l,add_event,0,__VA_ARGS__)

◆ spa_loop_utils_signal_event

#define spa_loop_utils_signal_event (   l,
  ... 
)    spa_loop_utils_method_r(l,signal_event,0,__VA_ARGS__)

◆ spa_loop_utils_add_timer

#define spa_loop_utils_add_timer (   l,
  ... 
)    spa_loop_utils_method_s(l,add_timer,0,__VA_ARGS__)

◆ spa_loop_utils_update_timer

#define spa_loop_utils_update_timer (   l,
  ... 
)    spa_loop_utils_method_r(l,update_timer,0,__VA_ARGS__)

◆ spa_loop_utils_add_signal

#define spa_loop_utils_add_signal (   l,
  ... 
)    spa_loop_utils_method_s(l,add_signal,0,__VA_ARGS__)

◆ spa_loop_utils_destroy_source

#define spa_loop_utils_destroy_source (   l,
  ... 
)    spa_loop_utils_method_v(l,destroy_source,0,__VA_ARGS__)

Typedef Documentation

◆ spa_source_func_t

typedef void(* spa_source_func_t) (struct spa_source *source)

◆ spa_invoke_func_t

typedef int(* spa_invoke_func_t) (struct spa_loop *loop, bool async, uint32_t seq, const void *data, size_t size, void *user_data)

◆ spa_source_io_func_t

typedef void(* spa_source_io_func_t) (void *data, int fd, uint32_t mask)

◆ spa_source_idle_func_t

typedef void(* spa_source_idle_func_t) (void *data)

◆ spa_source_event_func_t

typedef void(* spa_source_event_func_t) (void *data, uint64_t count)

◆ spa_source_timer_func_t

typedef void(* spa_source_timer_func_t) (void *data, uint64_t expirations)

◆ spa_source_signal_func_t

typedef void(* spa_source_signal_func_t) (void *data, int signal_number)