Ancillary classes
Exceptions
LibPulseError(Exception)
LibPulseClosedError(LibPulseError)
LibPulseStateError(LibPulseError)
LibPulseOperationError(LibPulseError)
LibPulseClosedIteratorError(LibPulseError)
LibPulseInstanceExistsError(LibPulseError)
LibPulseArgumentError(LibPulseError)
PulseEvent
An instance of PulseEvent is returned by the async iterator returned by the get_events_iterator() method of a LibPulse instance.
Its attributes are:
- facility
str - name of the facility, for example
sink.
- index
int - index of the facility.
- type
str - type of the event, either
new,changeorremove.
PulseStructure
class PulseStructure(c_struct, c_structure_type)
- c_struct
ctypes structure such as a ctypes pointer dereferenced using its contents attribute.
- c_structure_type
subclass of ctypes Structure corresponding to the type of the c_struct structure. It is one of the values of the structures defined in the struct_ctypes dictionary, attribute of the libpulse module.
An instance of this class is the representation of a pulse ctypes structure.
Instantiating a PulseStructure class constructs a pure Python object as a deep copy of a ctypes structure using the _fields_ class attribute of the corresponding subclass of the ctypes Structure class (one of the values of the struct_ctypes dictionary, see the pulse_structs module and the ctypes pulse structures section).
A deep copy of the pulse structure pointed to by one of the parameters of a callback (one of the results of the corresponding LibPulse method) is needed because the memory pointed to by the pointer is short-lived, only valid during the execution of the callback.
The PulseStructure instance embeds PulseStructure instances for those of its members that are nested pulse structures or pointers to other pulse structures (recursively). The attributes names of the PulseStructure instance are the names of the members of the pulse structure as listed in the pulse_structs module. Their values are of type int, float, bytes, PropList or PulseStructure.
This class is used internally by callbacks of the LibPulse class and by the to_pulse_structure() method of the CtypesPulseStructure class.
PropList
When the type of the member of a pulse structure is proplist *, the corresponding PulseStructure attribute is set to an instance of the PropList class.
The PropList class is a subclass of dict and the elements of an instance can be accessed as the elements of a dictionary. Instantiation of this class skips all the elements of the proplist that are not of the bytes type. The keys and values of the dictionary are strings (bytes are decoded to str).
AsyncioTasks
An instance of AsyncioTasks keeps track of the active asyncio tasks that have been created using its create_task() method. It is also an iterator that can iterate over these tasks. See the Session management section for how to use it.
CtypesPulseStructure
An abstract class whose subclasses provide the reverse of what does the PulseStructure class by building a ctypes structure whose pointer can be used as the parameter of one of the pulse functions. Those subclasses are:
Pa_buffer_attr
Pa_cvolume
Pa_channel_map
Pa_format_info
Pa_sample_spec
Instantiate one of these subclasses with a list of the pulse structure values and use byref() to get the pointer. For example:
values = [3, 44100, 2]
ptr = libpulse.Pa_sample_spec(*values).byref()
See also ctypes pulse structures.