Module libpulse_binding::mainloop [] [src]

Main loop abstraction layer

Overview

Both the PulseAudio core and the PulseAudio client library use a main loop abstraction layer. Due to this it is possible to embed PulseAudio into other applications easily. Three main loop implementations are currently available:

  • A minimal implementation based on the C library's poll() function (See ::mainloop::standard).
  • A variation of the previous implementation, where it runs in a separate thread. (See ::mainloop::threaded).
  • A wrapper around the GLIB main loop. Use this to embed PulseAudio into your GLIB/GTK+/GNOME programs. (See the separate libpulse_glib_binding crate).

The structure ::mainloop::api::MainloopApi is used as a 'vtable' for the main loop abstraction.

This mainloop abstraction layer has no direct support for UNIX signals. Generic, mainloop implementation agnostic support is available through ::mainloop::signal.

Modules

api

Main loop abstraction layer API.

events

Main loop events.

signal

UNIX signal support for main loops.

standard

Standard/minimal main loop implementation based on poll().

threaded

A variation of the standard main loop implementation, using a background thread.