PipeWire 0.3.77
Loading...
Searching...
No Matches
spa_loop_control_methods Struct Reference

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. More...
 
void(* enter )(void *object)
 Enter a loop. More...
 
void(* leave )(void *object)
 Leave a loop. More...
 
int(* iterate )(void *object, int timeout)
 Perform one iteration of the loop. More...
 
int(* check )(void *object)
 Check context of the loop. More...
 

Detailed Description

Control an event loop.

Field Documentation

◆ version

uint32_t spa_loop_control_methods::version

◆ get_fd

int(* spa_loop_control_methods::get_fd) (void *object)

◆ add_hook

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.

Parameters
ctrlthe control to change
hooksthe hooks to add

Adds hooks to the loop controlled by ctrl.

◆ enter

void(* spa_loop_control_methods::enter) (void *object)

Enter a loop.

Parameters
ctrlthe 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.

◆ leave

void(* spa_loop_control_methods::leave) (void *object)

Leave a loop.

Parameters
ctrlthe control

Ends the iteration of a loop. This should be called after calling iterate.

◆ iterate

int(* spa_loop_control_methods::iterate) (void *object, int timeout)

Perform one iteration of the loop.

Parameters
ctrlthe control
timeoutan 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.

◆ check

int(* spa_loop_control_methods::check) (void *object)

Check context of the loop.

Parameters
ctrlthe 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.


The documentation for this struct was generated from the following file: