Release history

Version 0.7
  • The documentation has been entirely rewritten.

  • Error handling is documented in a new section of the libpulse documentation.

  • The LibPulseOperationError exception is raised when a method listed in LibPulse.context_success_methods does not have PA_OPERATION_DONE set by the corresponding pulseaudio callback. In other words these methods always return PA_OPERATION_DONE.

  • pactl-py load-module prints an error message upon failure instead of the value of PA_INVALID_INDEX.

  • A pdf document is part of the libpulse documentation. To access the documentation as a pdf document one must click on the icon at the down-right corner of any page of the documentation on the web. It allows to switch between stable and latest versions and to select the corresponding pdf document.

  • The development version name is PEP 440 conformant.

Version 0.6
  • The pactl-py command runs the pactl Python module. It is created by the libpulse installation process (issue #1).

Version 0.5
  • libpulse versioning conforms to PEP 440.

  • The LibPulse methods listed by LibPulse.context_list_methods and whose name ends with _info or _formats return now a single element instead of a list with one element.

Version 0.4
  • Rename LibPulse.get_events() to get_events_iterator().

  • Replace the Interface section by Libpulse API in the documentation.

  • Add the CtypesPulseStructure subclasses Pa_buffer_attr, Pa_channel_map, Pa_cvolume, Pa_format_info and Pa_sample_spec. These classes are used to build ctypes Structure instances and pass their pointer to some of the pulse functions.

  • Add the static coroutine LibPulse.get_current_instance().

Version 0.3
  • The pactl module is a Python implementation of the pactl command that runs both on Pulseaudio and Pipewire.

  • server and flags are optional parameters of the LibPulse constructor used by pa_context_connect() when connecting to the server.

  • Exceptions in callbacks and asyncio tasks are propagated to the async methods.

  • Use pa_strerror() to log errors.

  • Drain the pulse context before disconnecting.

Version 0.2
  • Add the pa_context_subscribe.py example.

  • Add the pa_context_load_module.py example.

  • Unreference stream pointer upon exit in pa_stream_new.py example.

  • Raise LibPulseArgumentError when args do not match the signature.

  • Document callback concurrent access.

  • stream_success_methods require a pa_stream * ctypes pointer as first argument.

Version 0.1
  • Publish the project on PyPi.

  • Raise an exception upon instantiation of more than one LibPulse instance.