PipeWire: spa_loop_control_methods Struct Reference

PipeWire 0.3.50

Data Fields
spa_loop_control_methods Struct Reference
SPA » Support » Loop

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

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

  ctrl | the control to change
  hooks | the hooks to add

Adds hooks to the loop controlled by ctrl.

## ◆ enter

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

Enter a loop.

Parameters

  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.

## ◆ leave

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

Leave a loop.

Parameters

  ctrl | the 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

  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.

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

- spa/support/loop.h