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