Loading...
Searching...
No Matches
Data Loop
Implementation API

PipeWire rt-loop object. More...

## Files

file | data-loop.h
| `pipewire/data-loop.h`

## Data Structures

struct | pw_data_loop_events
| Loop events, use pw_data_loop_add_listener to add a listener. More...
struct | pw_data_loop

## Macros

#define | PW_VERSION_DATA_LOOP_EVENTS 0

## Functions

struct pw_data_loop * | pw_data_loop_new (const struct spa_dict *props)
| Make a new loop.
void | pw_data_loop_add_listener (struct pw_data_loop *loop, struct spa_hook *listener, const struct pw_data_loop_events *events, void *data)
| Add an event listener to loop.
int | pw_data_loop_wait (struct pw_data_loop *loop, int timeout)
| wait for activity on the loop up to timeout milliseconds.
void | pw_data_loop_exit (struct pw_data_loop *loop)
| make sure the thread will exit.
struct pw_loop * | pw_data_loop_get_loop (struct pw_data_loop *loop)
| Get the loop implementation of this data loop.
void | pw_data_loop_destroy (struct pw_data_loop *loop)
| Destroy the loop.
int | pw_data_loop_start (struct pw_data_loop *loop)
| Start the processing thread.
int | pw_data_loop_stop (struct pw_data_loop *loop)
| Stop the processing thread.
bool | pw_data_loop_in_thread (struct pw_data_loop *loop)
| Check if the current thread is the processing thread.
struct spa_thread * | pw_data_loop_get_thread (struct pw_data_loop *loop)
| Get the thread object.
int | pw_data_loop_invoke (struct pw_data_loop *loop, spa_invoke_func_t func, uint32_t seq, const void *data, size_t size, bool block, void *user_data)
| invoke func in the context of the thread or in the caller thread when the loop is not running.
void | pw_data_loop_set_thread_utils (struct pw_data_loop *loop, struct spa_thread_utils *impl)
| Set a custom spa_thread_utils for this loop.

## Detailed Description

PipeWire rt-loop object.

This loop starts a new real-time thread that is designed to run the processing graph.

## Macro Definition Documentation

## PW_VERSION_DATA_LOOP_EVENTS

#define PW_VERSION_DATA_LOOP_EVENTS 0

## Function Documentation

## pw_data_loop_new()

struct pw_data_loop * pw_data_loop_new | ( | const struct spa_dict * | props | ) |

Make a new loop.

Make a new loop.

Returns
  a newly allocated data loop

## pw_data_loop_add_listener()

void pw_data_loop_add_listener | ( | struct pw_data_loop * | loop,
|  | struct spa_hook * | listener,
|  | const struct pw_data_loop_events * | events,
|  | void * | data
| ) |  |

Add an event listener to loop.

## pw_data_loop_wait()

int pw_data_loop_wait | ( | struct pw_data_loop * | loop,
|  | int | timeout
| ) |  |

wait for activity on the loop up to timeout milliseconds.

Should be called from the loop function

## pw_data_loop_exit()

void pw_data_loop_exit | ( | struct pw_data_loop * | loop | ) |

make sure the thread will exit.

Can be called from a loop callback

## pw_data_loop_get_loop()

struct pw_loop * pw_data_loop_get_loop | ( | struct pw_data_loop * | loop | ) |

Get the loop implementation of this data loop.

## pw_data_loop_destroy()

void pw_data_loop_destroy | ( | struct pw_data_loop * | loop | ) |

Destroy the loop.

Destroy the loop.

Parameters

  loop | the data loop to destroy

## pw_data_loop_start()

int pw_data_loop_start | ( | struct pw_data_loop * | loop | ) |

Start the processing thread.

Start the processing thread.

Parameters

  loop | the data loop to start

Returns
  0 if ok, -1 on error

This will start the realtime thread that manages the loop.

## pw_data_loop_stop()

int pw_data_loop_stop | ( | struct pw_data_loop * | loop | ) |

Stop the processing thread.

Stop the processing thread.

Parameters

  loop | the data loop to Stop

Returns
  0

This will stop and join the realtime thread that manages the loop.

## pw_data_loop_in_thread()

bool pw_data_loop_in_thread | ( | struct pw_data_loop * | loop | ) |

Check if the current thread is the processing thread.

Check if the current thread is the processing thread.

Parameters

  loop | the data loop to check

Returns
  true is the current thread is the data loop thread

## pw_data_loop_get_thread()

struct spa_thread * pw_data_loop_get_thread | ( | struct pw_data_loop * | loop | ) |

Get the thread object.

Parameters

  loop | the data loop to get the thread of

Returns
  the thread object or NULL when the thread is not running

On posix based systems this returns a pthread_t

## pw_data_loop_invoke()

int pw_data_loop_invoke | ( | struct pw_data_loop * | loop,
|  | spa_invoke_func_t | func,
|  | uint32_t | seq,
|  | const void * | data,
|  | size_t | size,
|  | bool | block,
|  | void * | user_data
| ) |  |

invoke func in the context of the thread or in the caller thread when the loop is not running.

Since 0.3.3

## pw_data_loop_set_thread_utils()

void pw_data_loop_set_thread_utils | ( | struct pw_data_loop * | loop,
|  | struct spa_thread_utils * | impl
| ) |  |

Set a custom spa_thread_utils for this loop.

Setting NULL restores the system default implementation. Since 0.3.50

Set a custom spa_thread_utils for this loop.

Parameters

  loop | the data loop to set the thread utils on
  impl | the thread utils implementation

This configures a custom spa_thread_utils implementation for this data loop. Use NULL to restore the system default implementation.