PipeWire  0.3.33
spa_loop_control_methods Struct Reference

Control an event loop. More...

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

Detailed Description

Control an event loop.

Field Documentation

◆ 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.

◆ get_fd

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

◆ 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.

◆ 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.

◆ version

uint32_t spa_loop_control_methods::version

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