PipeWire 1.2.5
|
Control an event loop. More...
#include <spa/support/loop.h>
Data Fields | |
uint32_t | version |
int(* | get_fd )(void *object) |
void(* | add_hook )(void *object, struct spa_hook *hook, const struct spa_loop_control_hooks *hooks, void *data) |
Add a hook. | |
void(* | enter )(void *object) |
Enter a loop. | |
void(* | leave )(void *object) |
Leave a loop. | |
int(* | iterate )(void *object, int timeout) |
Perform one iteration of the loop. | |
int(* | check )(void *object) |
Check context of the loop. | |
Control an event loop.
uint32_t spa_loop_control_methods::version |
int(* spa_loop_control_methods::get_fd) (void *object) |
void(* spa_loop_control_methods::add_hook) (void *object, struct spa_hook *hook, const struct spa_loop_control_hooks *hooks, void *data) |
Add a hook.
ctrl | the control to change |
hooks | the hooks to add |
Adds hooks to the loop controlled by ctrl.
void(* spa_loop_control_methods::enter) (void *object) |
Enter a loop.
ctrl | the control |
Start an iteration of the loop. This function should be called before calling iterate and is typically used to capture the thread that this loop will run in.
void(* spa_loop_control_methods::leave) (void *object) |
Leave a loop.
ctrl | the control |
Ends the iteration of a loop. This should be called after calling iterate.
int(* spa_loop_control_methods::iterate) (void *object, int timeout) |
Perform one iteration of the loop.
ctrl | the control |
timeout | an optional timeout in milliseconds. 0 for no timeout, -1 for infinite timeout. |
This function will block up to timeout milliseconds and then dispatch the fds with activity. The number of dispatched fds is returned.
int(* spa_loop_control_methods::check) (void *object) |
Check context of the loop.
ctrl | the control |
This function will check if the current thread is currently the one that did the enter call. Since version 1:1.
returns 1 on success, 0 or negative errno value on error.