D-Bus Interface: Streams

(Back to the toplevel D-Bus Interface page)

Objects and their interfaces:

  • /org/pulseaudio/core1/playback_streamX
    • org.PulseAudio.Core1.Stream
    • org.freedesktop.DBus.Properties
    • org.freedesktop.DBus.Introspectable
  • /org/pulseaudio/core1/record_streamX
    • org.PulseAudio.Core1.Stream
    • org.freedesktop.DBus.Properties
    • org.freedesktop.DBus.Introspectable

org.PulseAudio.Core1.Stream

Properties

Index

  • Type: Uint32
  • Access: read

The stream index. Playback and record stream indices are separate, so it's perfectly normal to have two streams with the same index: the other stream is a playback stream and the other is a record stream.

Driver

  • Type: String
  • Access: read

The driver that implements the stream object. This is usually expressed as a source code file name, for example "protocol-native.c".

OwnerModule

  • Type: ObjectPath
  • Access: read

The module that owns this stream. It's not guaranteed that any module claims ownership; in such case this property does not exist.

Client

  • Type: ObjectPath
  • Access: read

The client whose stream this is. Not all streams are created by clients, in those cases this property does not exist.

Device

  • Type: ObjectPath
  • Access: read

The device this stream is connected to.

SampleFormat

  • Type: Uint32
  • Access: read

The sample format of the stream. See DBusInterface/Enumerations#Sampleformats for the list of possible values.

SampleRate

  • Type: Uint32
  • Access: read

The sample rate of the stream.

Channels

  • Type: [Uint32]
  • Access: read

The channel map of the stream. The channel count can be inferred from this. The channel map is expressed as a list of channel positions, see DBusInterface/Enumerations#Channelpositions for the list of possible channel position values.

Volume

  • Type: [Uint32]
  • Access: read/write

The volume of the stream. The array is matched against the Channels property: the first array element is the volume of the first channel in the Channels property, and so on.

There are two ways to adjust the volume. You can either adjust the overall volume by giving a single-value array, or you can precisely control the individual channels by passing an array containing a value for each channel.

The volume can only be written if VolumeWritable is true.

VolumeWritable

  • Type: Boolean
  • Access: read

Whether or not the Volume property can be set. Note that read-only volumes can still change, clients just can't control them.

Mute

  • Type: Boolean
  • Access: read/write

Whether or not the stream is currently muted. Record streams don't currently support muting, so this property exists for playback streams only for now.

BufferLatency

  • Type: Uint64
  • Access: read

The length of buffered audio in microseconds that is not at the device yet/anymore.

DeviceLatency

  • Type: Uint64
  • Access: read

The length of buffered audio in microseconds at the device.

ResampleMethod

  • Type: String
  • Access: read

The resampling algorithm that is used to convert the stream audio data to/from the device's sample rate.

PropertyList

  • Type: {String -> [Byte]}
  • Access: read

The stream's property list.

Methods

Move

  • Arguments: device : ObjectPath
    • device: The device to move to

Moves the stream to another device.

Kill

Kills the stream.

Signals

DeviceUpdated

  • Parameters: device : ObjectPath
    • device: The new device

The stream was moved to another device.

SampleRateUpdated

  • Parameters: sample_rate : Uint32
    • sample_rate: The new sample rate

The stream's sample rate was changed.

VolumeUpdated

  • Parameters: volume : [Uint32]
    • volume: The new volume values

The stream's volume was modified.

MuteUpdated

  • Parameters: muted : Boolean
    • muted: The new mute state

The stream was muted or unmuted.

PropertyListUpdated

  • Parameters: property_list : {String -> [Byte]}
    • property_list: The new property list

The stream's property list was modified.

StreamEvent

  • Parameters: name : String, property_list : {String -> [Byte]}
    • name: Event name
    • property_list: Additional event parameters

This signal is emitted when the server sends an event to a stream. Currently two stream events are defined:

  • "request-cork"
    • An application should cork a specific stream. This can be sent for example if the server implements a policy that when a phone call starts, all music streams shall pause. The property list doesn't contain any additional parameters.
  • "request-uncork"
    • Opposite of "request-cork". The property list doesn't contain any additional parameters.