| PipeWire 1.2.2
    | 
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.