PipeWire: spa_loop_control_methods Struct Reference

PipeWire 0.3.69

Loading...
Searching...
No Matches
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.
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.

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

## ◆ check

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

Check context of the loop.

Parameters

  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.

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

- spa/include/spa/support/loop.h