PulseAudio  3.0.0-7.mga3
def.h File Reference

Global definitions. More...

Go to the source code of this file.

Data Structures

struct  pa_buffer_attr
 Playback and record buffer metrics. More...
 
struct  pa_timing_info
 A structure for all kinds of timing information of a stream. More...
 
struct  pa_spawn_api
 A structure for the spawn api. More...
 

Macros

#define PA_CONTEXT_UNCONNECTED   PA_CONTEXT_UNCONNECTED
 
#define PA_CONTEXT_CONNECTING   PA_CONTEXT_CONNECTING
 
#define PA_CONTEXT_AUTHORIZING   PA_CONTEXT_AUTHORIZING
 
#define PA_CONTEXT_SETTING_NAME   PA_CONTEXT_SETTING_NAME
 
#define PA_CONTEXT_READY   PA_CONTEXT_READY
 
#define PA_CONTEXT_FAILED   PA_CONTEXT_FAILED
 
#define PA_CONTEXT_TERMINATED   PA_CONTEXT_TERMINATED
 
#define PA_CONTEXT_IS_GOOD   PA_CONTEXT_IS_GOOD
 
#define PA_STREAM_UNCONNECTED   PA_STREAM_UNCONNECTED
 
#define PA_STREAM_CREATING   PA_STREAM_CREATING
 
#define PA_STREAM_READY   PA_STREAM_READY
 
#define PA_STREAM_FAILED   PA_STREAM_FAILED
 
#define PA_STREAM_TERMINATED   PA_STREAM_TERMINATED
 
#define PA_STREAM_IS_GOOD   PA_STREAM_IS_GOOD
 
#define PA_OPERATION_RUNNING   PA_OPERATION_RUNNING
 
#define PA_OPERATION_DONE   PA_OPERATION_DONE
 
#define PA_OPERATION_CANCELED   PA_OPERATION_CANCELLED
 
#define PA_OPERATION_CANCELLED   PA_OPERATION_CANCELLED
 
#define PA_INVALID_INDEX   ((uint32_t) -1)
 An invalid index.
 
#define PA_CONTEXT_NOAUTOSPAWN   PA_CONTEXT_NOAUTOSPAWN
 
#define PA_CONTEXT_NOFAIL   PA_CONTEXT_NOFAIL
 
#define PA_DIRECTION_OUTPUT   PA_DIRECTION_OUTPUT
 
#define PA_DIRECTION_INPUT   PA_DIRECTION_INPUT
 
#define PA_DEVICE_TYPE_SINK   PA_DEVICE_TYPE_SINK
 
#define PA_DEVICE_TYPE_SOURCE   PA_DEVICE_TYPE_SOURCE
 
#define PA_STREAM_NODIRECTION   PA_STREAM_NODIRECTION
 
#define PA_STREAM_PLAYBACK   PA_STREAM_PLAYBACK
 
#define PA_STREAM_RECORD   PA_STREAM_RECORD
 
#define PA_STREAM_UPLOAD   PA_STREAM_UPLOAD
 
#define PA_STREAM_NOT_MONOTONOUS   PA_STREAM_NOT_MONOTONIC
 
#define PA_STREAM_START_CORKED   PA_STREAM_START_CORKED
 
#define PA_STREAM_INTERPOLATE_TIMING   PA_STREAM_INTERPOLATE_TIMING
 
#define PA_STREAM_NOT_MONOTONIC   PA_STREAM_NOT_MONOTONIC
 
#define PA_STREAM_AUTO_TIMING_UPDATE   PA_STREAM_AUTO_TIMING_UPDATE
 
#define PA_STREAM_NO_REMAP_CHANNELS   PA_STREAM_NO_REMAP_CHANNELS
 
#define PA_STREAM_NO_REMIX_CHANNELS   PA_STREAM_NO_REMIX_CHANNELS
 
#define PA_STREAM_FIX_FORMAT   PA_STREAM_FIX_FORMAT
 
#define PA_STREAM_FIX_RATE   PA_STREAM_FIX_RATE
 
#define PA_STREAM_FIX_CHANNELS   PA_STREAM_FIX_CHANNELS
 
#define PA_STREAM_DONT_MOVE   PA_STREAM_DONT_MOVE
 
#define PA_STREAM_VARIABLE_RATE   PA_STREAM_VARIABLE_RATE
 
#define PA_STREAM_PEAK_DETECT   PA_STREAM_PEAK_DETECT
 
#define PA_STREAM_START_MUTED   PA_STREAM_START_MUTED
 
#define PA_STREAM_ADJUST_LATENCY   PA_STREAM_ADJUST_LATENCY
 
#define PA_STREAM_EARLY_REQUESTS   PA_STREAM_EARLY_REQUESTS
 
#define PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND   PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND
 
#define PA_STREAM_START_UNMUTED   PA_STREAM_START_UNMUTED
 
#define PA_STREAM_FAIL_ON_SUSPEND   PA_STREAM_FAIL_ON_SUSPEND
 
#define PA_STREAM_RELATIVE_VOLUME   PA_STREAM_RELATIVE_VOLUME
 
#define PA_STREAM_PASSTHROUGH   PA_STREAM_PASSTHROUGH
 
#define PA_OK   PA_OK
 
#define PA_ERR_ACCESS   PA_ERR_ACCESS
 
#define PA_ERR_COMMAND   PA_ERR_COMMAND
 
#define PA_ERR_INVALID   PA_ERR_INVALID
 
#define PA_ERR_EXIST   PA_ERR_EXIST
 
#define PA_ERR_NOENTITY   PA_ERR_NOENTITY
 
#define PA_ERR_CONNECTIONREFUSED   PA_ERR_CONNECTIONREFUSED
 
#define PA_ERR_PROTOCOL   PA_ERR_PROTOCOL
 
#define PA_ERR_TIMEOUT   PA_ERR_TIMEOUT
 
#define PA_ERR_AUTHKEY   PA_ERR_AUTHKEY
 
#define PA_ERR_INTERNAL   PA_ERR_INTERNAL
 
#define PA_ERR_CONNECTIONTERMINATED   PA_ERR_CONNECTIONTERMINATED
 
#define PA_ERR_KILLED   PA_ERR_KILLED
 
#define PA_ERR_INVALIDSERVER   PA_ERR_INVALIDSERVER
 
#define PA_ERR_MODINITFAILED   PA_ERR_MODINITFAILED
 
#define PA_ERR_BADSTATE   PA_ERR_BADSTATE
 
#define PA_ERR_NODATA   PA_ERR_NODATA
 
#define PA_ERR_VERSION   PA_ERR_VERSION
 
#define PA_ERR_TOOLARGE   PA_ERR_TOOLARGE
 
#define PA_ERR_NOTSUPPORTED   PA_ERR_NOTSUPPORTED
 
#define PA_ERR_UNKNOWN   PA_ERR_UNKNOWN
 
#define PA_ERR_NOEXTENSION   PA_ERR_NOEXTENSION
 
#define PA_ERR_OBSOLETE   PA_ERR_OBSOLETE
 
#define PA_ERR_NOTIMPLEMENTED   PA_ERR_NOTIMPLEMENTED
 
#define PA_ERR_FORKED   PA_ERR_FORKED
 
#define PA_ERR_MAX   PA_ERR_MAX
 
#define pa_subscription_match_flags(m, t)   (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK))))
 Return one if an event type t matches an event mask bitfield.
 
#define PA_SUBSCRIPTION_MASK_NULL   PA_SUBSCRIPTION_MASK_NULL
 
#define PA_SUBSCRIPTION_MASK_SINK   PA_SUBSCRIPTION_MASK_SINK
 
#define PA_SUBSCRIPTION_MASK_SOURCE   PA_SUBSCRIPTION_MASK_SOURCE
 
#define PA_SUBSCRIPTION_MASK_SINK_INPUT   PA_SUBSCRIPTION_MASK_SINK_INPUT
 
#define PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT   PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT
 
#define PA_SUBSCRIPTION_MASK_MODULE   PA_SUBSCRIPTION_MASK_MODULE
 
#define PA_SUBSCRIPTION_MASK_CLIENT   PA_SUBSCRIPTION_MASK_CLIENT
 
#define PA_SUBSCRIPTION_MASK_SAMPLE_CACHE   PA_SUBSCRIPTION_MASK_SAMPLE_CACHE
 
#define PA_SUBSCRIPTION_MASK_SERVER   PA_SUBSCRIPTION_MASK_SERVER
 
#define PA_SUBSCRIPTION_MASK_AUTOLOAD   PA_SUBSCRIPTION_MASK_AUTOLOAD
 
#define PA_SUBSCRIPTION_MASK_CARD   PA_SUBSCRIPTION_MASK_CARD
 
#define PA_SUBSCRIPTION_MASK_ALL   PA_SUBSCRIPTION_MASK_ALL
 
#define PA_SUBSCRIPTION_EVENT_SINK   PA_SUBSCRIPTION_EVENT_SINK
 
#define PA_SUBSCRIPTION_EVENT_SOURCE   PA_SUBSCRIPTION_EVENT_SOURCE
 
#define PA_SUBSCRIPTION_EVENT_SINK_INPUT   PA_SUBSCRIPTION_EVENT_SINK_INPUT
 
#define PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT   PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT
 
#define PA_SUBSCRIPTION_EVENT_MODULE   PA_SUBSCRIPTION_EVENT_MODULE
 
#define PA_SUBSCRIPTION_EVENT_CLIENT   PA_SUBSCRIPTION_EVENT_CLIENT
 
#define PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE   PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE
 
#define PA_SUBSCRIPTION_EVENT_SERVER   PA_SUBSCRIPTION_EVENT_SERVER
 
#define PA_SUBSCRIPTION_EVENT_AUTOLOAD   PA_SUBSCRIPTION_EVENT_AUTOLOAD
 
#define PA_SUBSCRIPTION_EVENT_CARD   PA_SUBSCRIPTION_EVENT_CARD
 
#define PA_SUBSCRIPTION_EVENT_FACILITY_MASK   PA_SUBSCRIPTION_EVENT_FACILITY_MASK
 
#define PA_SUBSCRIPTION_EVENT_NEW   PA_SUBSCRIPTION_EVENT_NEW
 
#define PA_SUBSCRIPTION_EVENT_CHANGE   PA_SUBSCRIPTION_EVENT_CHANGE
 
#define PA_SUBSCRIPTION_EVENT_REMOVE   PA_SUBSCRIPTION_EVENT_REMOVE
 
#define PA_SUBSCRIPTION_EVENT_TYPE_MASK   PA_SUBSCRIPTION_EVENT_TYPE_MASK
 
#define PA_SEEK_RELATIVE   PA_SEEK_RELATIVE
 
#define PA_SEEK_ABSOLUTE   PA_SEEK_ABSOLUTE
 
#define PA_SEEK_RELATIVE_ON_READ   PA_SEEK_RELATIVE_ON_READ
 
#define PA_SEEK_RELATIVE_END   PA_SEEK_RELATIVE_END
 
#define PA_SINK_HW_VOLUME_CTRL   PA_SINK_HW_VOLUME_CTRL
 
#define PA_SINK_LATENCY   PA_SINK_LATENCY
 
#define PA_SINK_HARDWARE   PA_SINK_HARDWARE
 
#define PA_SINK_NETWORK   PA_SINK_NETWORK
 
#define PA_SINK_HW_MUTE_CTRL   PA_SINK_HW_MUTE_CTRL
 
#define PA_SINK_DECIBEL_VOLUME   PA_SINK_DECIBEL_VOLUME
 
#define PA_SINK_FLAT_VOLUME   PA_SINK_FLAT_VOLUME
 
#define PA_SINK_DYNAMIC_LATENCY   PA_SINK_DYNAMIC_LATENCY
 
#define PA_SINK_SET_FORMATS   PA_SINK_SET_FORMATS
 
#define PA_SINK_INVALID_STATE   PA_SINK_INVALID_STATE
 
#define PA_SINK_RUNNING   PA_SINK_RUNNING
 
#define PA_SINK_IDLE   PA_SINK_IDLE
 
#define PA_SINK_SUSPENDED   PA_SINK_SUSPENDED
 
#define PA_SINK_INIT   PA_SINK_INIT
 
#define PA_SINK_UNLINKED   PA_SINK_UNLINKED
 
#define PA_SINK_IS_OPENED   PA_SINK_IS_OPENED
 
#define PA_SOURCE_HW_VOLUME_CTRL   PA_SOURCE_HW_VOLUME_CTRL
 
#define PA_SOURCE_LATENCY   PA_SOURCE_LATENCY
 
#define PA_SOURCE_HARDWARE   PA_SOURCE_HARDWARE
 
#define PA_SOURCE_NETWORK   PA_SOURCE_NETWORK
 
#define PA_SOURCE_HW_MUTE_CTRL   PA_SOURCE_HW_MUTE_CTRL
 
#define PA_SOURCE_DECIBEL_VOLUME   PA_SOURCE_DECIBEL_VOLUME
 
#define PA_SOURCE_DYNAMIC_LATENCY   PA_SOURCE_DYNAMIC_LATENCY
 
#define PA_SOURCE_FLAT_VOLUME   PA_SOURCE_FLAT_VOLUME
 
#define PA_SOURCE_INVALID_STATE   PA_SOURCE_INVALID_STATE
 
#define PA_SOURCE_RUNNING   PA_SOURCE_RUNNING
 
#define PA_SOURCE_IDLE   PA_SOURCE_IDLE
 
#define PA_SOURCE_SUSPENDED   PA_SOURCE_SUSPENDED
 
#define PA_SOURCE_INIT   PA_SOURCE_INIT
 
#define PA_SOURCE_UNLINKED   PA_SOURCE_UNLINKED
 
#define PA_SOURCE_IS_OPENED   PA_SOURCE_IS_OPENED
 
#define PA_STREAM_EVENT_REQUEST_CORK   "request-cork"
 A stream policy/meta event requesting that an application should cork a specific stream.
 
#define PA_STREAM_EVENT_REQUEST_UNCORK   "request-uncork"
 A stream policy/meta event requesting that an application should cork a specific stream.
 
#define PA_STREAM_EVENT_FORMAT_LOST   "format-lost"
 A stream event notifying that the stream is going to be disconnected because the underlying sink changed and no longer supports the format that was originally negotiated.
 
#define PA_PORT_AVAILABLE_UNKNOWN   PA_PORT_AVAILABLE_UNKNOWN
 
#define PA_PORT_AVAILABLE_NO   PA_PORT_AVAILABLE_NO
 
#define PA_PORT_AVAILABLE_YES   PA_PORT_AVAILABLE_YES
 

Typedefs

typedef enum pa_context_state pa_context_state_t
 The state of a connection context.
 
typedef enum pa_stream_state pa_stream_state_t
 The state of a stream.
 
typedef enum pa_operation_state pa_operation_state_t
 The state of an operation.
 
typedef enum pa_context_flags pa_context_flags_t
 Some special flags for contexts.
 
typedef enum pa_direction pa_direction_t
 Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e g if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future.
 
typedef enum pa_device_type pa_device_type_t
 The type of device we are dealing with.
 
typedef enum pa_stream_direction pa_stream_direction_t
 The direction of a pa_stream object.
 
typedef enum pa_stream_flags pa_stream_flags_t
 Some special flags for stream connections.
 
typedef struct pa_buffer_attr pa_buffer_attr
 Playback and record buffer metrics.
 
typedef enum pa_error_code pa_error_code_t
 Error values as used by pa_context_errno().
 
typedef enum pa_subscription_mask pa_subscription_mask_t
 Subscription event mask, as used by pa_context_subscribe()
 
typedef enum
pa_subscription_event_type 
pa_subscription_event_type_t
 Subscription event types, as used by pa_context_subscribe()
 
typedef struct pa_timing_info pa_timing_info
 A structure for all kinds of timing information of a stream.
 
typedef struct pa_spawn_api pa_spawn_api
 A structure for the spawn api.
 
typedef enum pa_seek_mode pa_seek_mode_t
 Seek type for pa_stream_write().
 
typedef enum pa_sink_flags pa_sink_flags_t
 Special sink flags.
 
typedef enum pa_sink_state pa_sink_state_t
 Sink state.
 
typedef enum pa_source_flags pa_source_flags_t
 Special source flags.
 
typedef enum pa_source_state pa_source_state_t
 Source state.
 
typedef void(* pa_free_cb_t )(void *p)
 A generic free() like callback prototype.
 
typedef enum pa_port_available pa_port_available_t
 Port availability / jack detection status.
 

Enumerations

enum  pa_context_state {
  PA_CONTEXT_UNCONNECTED,
  PA_CONTEXT_CONNECTING,
  PA_CONTEXT_AUTHORIZING,
  PA_CONTEXT_SETTING_NAME,
  PA_CONTEXT_READY,
  PA_CONTEXT_FAILED,
  PA_CONTEXT_TERMINATED
}
 The state of a connection context. More...
 
enum  pa_stream_state {
  PA_STREAM_UNCONNECTED,
  PA_STREAM_CREATING,
  PA_STREAM_READY,
  PA_STREAM_FAILED,
  PA_STREAM_TERMINATED
}
 The state of a stream. More...
 
enum  pa_operation_state {
  PA_OPERATION_RUNNING,
  PA_OPERATION_DONE,
  PA_OPERATION_CANCELLED
}
 The state of an operation. More...
 
enum  pa_context_flags {
  PA_CONTEXT_NOFLAGS = 0x0000U,
  PA_CONTEXT_NOAUTOSPAWN = 0x0001U,
  PA_CONTEXT_NOFAIL = 0x0002U
}
 Some special flags for contexts. More...
 
enum  pa_direction {
  PA_DIRECTION_OUTPUT = 0x0001U,
  PA_DIRECTION_INPUT = 0x0002U
}
 Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e g if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future. More...
 
enum  pa_device_type {
  PA_DEVICE_TYPE_SINK,
  PA_DEVICE_TYPE_SOURCE
}
 The type of device we are dealing with. More...
 
enum  pa_stream_direction {
  PA_STREAM_NODIRECTION,
  PA_STREAM_PLAYBACK,
  PA_STREAM_RECORD,
  PA_STREAM_UPLOAD
}
 The direction of a pa_stream object. More...
 
enum  pa_stream_flags {
  PA_STREAM_NOFLAGS = 0x0000U,
  PA_STREAM_START_CORKED = 0x0001U,
  PA_STREAM_INTERPOLATE_TIMING = 0x0002U,
  PA_STREAM_NOT_MONOTONIC = 0x0004U,
  PA_STREAM_AUTO_TIMING_UPDATE = 0x0008U,
  PA_STREAM_NO_REMAP_CHANNELS = 0x0010U,
  PA_STREAM_NO_REMIX_CHANNELS = 0x0020U,
  PA_STREAM_FIX_FORMAT = 0x0040U,
  PA_STREAM_FIX_RATE = 0x0080U,
  PA_STREAM_FIX_CHANNELS = 0x0100,
  PA_STREAM_DONT_MOVE = 0x0200U,
  PA_STREAM_VARIABLE_RATE = 0x0400U,
  PA_STREAM_PEAK_DETECT = 0x0800U,
  PA_STREAM_START_MUTED = 0x1000U,
  PA_STREAM_ADJUST_LATENCY = 0x2000U,
  PA_STREAM_EARLY_REQUESTS = 0x4000U,
  PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND = 0x8000U,
  PA_STREAM_START_UNMUTED = 0x10000U,
  PA_STREAM_FAIL_ON_SUSPEND = 0x20000U,
  PA_STREAM_RELATIVE_VOLUME = 0x40000U,
  PA_STREAM_PASSTHROUGH = 0x80000U
}
 Some special flags for stream connections. More...
 
enum  pa_error_code {
  PA_OK = 0,
  PA_ERR_ACCESS,
  PA_ERR_COMMAND,
  PA_ERR_INVALID,
  PA_ERR_EXIST,
  PA_ERR_NOENTITY,
  PA_ERR_CONNECTIONREFUSED,
  PA_ERR_PROTOCOL,
  PA_ERR_TIMEOUT,
  PA_ERR_AUTHKEY,
  PA_ERR_INTERNAL,
  PA_ERR_CONNECTIONTERMINATED,
  PA_ERR_KILLED,
  PA_ERR_INVALIDSERVER,
  PA_ERR_MODINITFAILED,
  PA_ERR_BADSTATE,
  PA_ERR_NODATA,
  PA_ERR_VERSION,
  PA_ERR_TOOLARGE,
  PA_ERR_NOTSUPPORTED,
  PA_ERR_UNKNOWN,
  PA_ERR_NOEXTENSION,
  PA_ERR_OBSOLETE,
  PA_ERR_NOTIMPLEMENTED,
  PA_ERR_FORKED,
  PA_ERR_IO,
  PA_ERR_BUSY,
  PA_ERR_MAX
}
 Error values as used by pa_context_errno(). More...
 
enum  pa_subscription_mask {
  PA_SUBSCRIPTION_MASK_NULL = 0x0000U,
  PA_SUBSCRIPTION_MASK_SINK = 0x0001U,
  PA_SUBSCRIPTION_MASK_SOURCE = 0x0002U,
  PA_SUBSCRIPTION_MASK_SINK_INPUT = 0x0004U,
  PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT = 0x0008U,
  PA_SUBSCRIPTION_MASK_MODULE = 0x0010U,
  PA_SUBSCRIPTION_MASK_CLIENT = 0x0020U,
  PA_SUBSCRIPTION_MASK_SAMPLE_CACHE = 0x0040U,
  PA_SUBSCRIPTION_MASK_SERVER = 0x0080U,
  PA_SUBSCRIPTION_MASK_CARD = 0x0200U,
  PA_SUBSCRIPTION_MASK_ALL = 0x02ffU
}
 Subscription event mask, as used by pa_context_subscribe() More...
 
enum  pa_subscription_event_type {
  PA_SUBSCRIPTION_EVENT_SINK = 0x0000U,
  PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001U,
  PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002U,
  PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003U,
  PA_SUBSCRIPTION_EVENT_MODULE = 0x0004U,
  PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005U,
  PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006U,
  PA_SUBSCRIPTION_EVENT_SERVER = 0x0007U,
  PA_SUBSCRIPTION_EVENT_CARD = 0x0009U,
  PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000FU,
  PA_SUBSCRIPTION_EVENT_NEW = 0x0000U,
  PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010U,
  PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020U,
  PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030U
}
 Subscription event types, as used by pa_context_subscribe() More...
 
enum  pa_seek_mode {
  PA_SEEK_RELATIVE = 0,
  PA_SEEK_ABSOLUTE = 1,
  PA_SEEK_RELATIVE_ON_READ = 2,
  PA_SEEK_RELATIVE_END = 3
}
 Seek type for pa_stream_write(). More...
 
enum  pa_sink_flags {
  PA_SINK_NOFLAGS = 0x0000U,
  PA_SINK_HW_VOLUME_CTRL = 0x0001U,
  PA_SINK_LATENCY = 0x0002U,
  PA_SINK_HARDWARE = 0x0004U,
  PA_SINK_NETWORK = 0x0008U,
  PA_SINK_HW_MUTE_CTRL = 0x0010U,
  PA_SINK_DECIBEL_VOLUME = 0x0020U,
  PA_SINK_FLAT_VOLUME = 0x0040U,
  PA_SINK_DYNAMIC_LATENCY = 0x0080U,
  PA_SINK_SET_FORMATS = 0x0100U
}
 Special sink flags. More...
 
enum  pa_sink_state {
  PA_SINK_INVALID_STATE = -1,
  PA_SINK_RUNNING = 0,
  PA_SINK_IDLE = 1,
  PA_SINK_SUSPENDED = 2
}
 Sink state. More...
 
enum  pa_source_flags {
  PA_SOURCE_NOFLAGS = 0x0000U,
  PA_SOURCE_HW_VOLUME_CTRL = 0x0001U,
  PA_SOURCE_LATENCY = 0x0002U,
  PA_SOURCE_HARDWARE = 0x0004U,
  PA_SOURCE_NETWORK = 0x0008U,
  PA_SOURCE_HW_MUTE_CTRL = 0x0010U,
  PA_SOURCE_DECIBEL_VOLUME = 0x0020U,
  PA_SOURCE_DYNAMIC_LATENCY = 0x0040U,
  PA_SOURCE_FLAT_VOLUME = 0x0080U
}
 Special source flags. More...
 
enum  pa_source_state {
  PA_SOURCE_INVALID_STATE = -1,
  PA_SOURCE_RUNNING = 0,
  PA_SOURCE_IDLE = 1,
  PA_SOURCE_SUSPENDED = 2
}
 Source state. More...
 
enum  pa_port_available {
  PA_PORT_AVAILABLE_UNKNOWN = 0,
  PA_PORT_AVAILABLE_NO = 1,
  PA_PORT_AVAILABLE_YES = 2
}
 Port availability / jack detection status. More...
 

Detailed Description

Global definitions.

Macro Definition Documentation

#define PA_CONTEXT_AUTHORIZING   PA_CONTEXT_AUTHORIZING
#define PA_CONTEXT_CONNECTING   PA_CONTEXT_CONNECTING
#define PA_CONTEXT_FAILED   PA_CONTEXT_FAILED
#define PA_CONTEXT_IS_GOOD   PA_CONTEXT_IS_GOOD
#define PA_CONTEXT_NOAUTOSPAWN   PA_CONTEXT_NOAUTOSPAWN
#define PA_CONTEXT_NOFAIL   PA_CONTEXT_NOFAIL
#define PA_CONTEXT_READY   PA_CONTEXT_READY
#define PA_CONTEXT_SETTING_NAME   PA_CONTEXT_SETTING_NAME
#define PA_CONTEXT_TERMINATED   PA_CONTEXT_TERMINATED
#define PA_CONTEXT_UNCONNECTED   PA_CONTEXT_UNCONNECTED
#define PA_DEVICE_TYPE_SINK   PA_DEVICE_TYPE_SINK
#define PA_DEVICE_TYPE_SOURCE   PA_DEVICE_TYPE_SOURCE
#define PA_DIRECTION_INPUT   PA_DIRECTION_INPUT
#define PA_DIRECTION_OUTPUT   PA_DIRECTION_OUTPUT
#define PA_ERR_ACCESS   PA_ERR_ACCESS
#define PA_ERR_AUTHKEY   PA_ERR_AUTHKEY
#define PA_ERR_BADSTATE   PA_ERR_BADSTATE
#define PA_ERR_COMMAND   PA_ERR_COMMAND
#define PA_ERR_CONNECTIONREFUSED   PA_ERR_CONNECTIONREFUSED
#define PA_ERR_CONNECTIONTERMINATED   PA_ERR_CONNECTIONTERMINATED
#define PA_ERR_EXIST   PA_ERR_EXIST
#define PA_ERR_FORKED   PA_ERR_FORKED
#define PA_ERR_INTERNAL   PA_ERR_INTERNAL
#define PA_ERR_INVALID   PA_ERR_INVALID
#define PA_ERR_INVALIDSERVER   PA_ERR_INVALIDSERVER
#define PA_ERR_KILLED   PA_ERR_KILLED
#define PA_ERR_MAX   PA_ERR_MAX
#define PA_ERR_MODINITFAILED   PA_ERR_MODINITFAILED
#define PA_ERR_NODATA   PA_ERR_NODATA
#define PA_ERR_NOENTITY   PA_ERR_NOENTITY
#define PA_ERR_NOEXTENSION   PA_ERR_NOEXTENSION
#define PA_ERR_NOTIMPLEMENTED   PA_ERR_NOTIMPLEMENTED
#define PA_ERR_NOTSUPPORTED   PA_ERR_NOTSUPPORTED
#define PA_ERR_OBSOLETE   PA_ERR_OBSOLETE
#define PA_ERR_PROTOCOL   PA_ERR_PROTOCOL
#define PA_ERR_TIMEOUT   PA_ERR_TIMEOUT
#define PA_ERR_TOOLARGE   PA_ERR_TOOLARGE
#define PA_ERR_UNKNOWN   PA_ERR_UNKNOWN
#define PA_ERR_VERSION   PA_ERR_VERSION
#define PA_INVALID_INDEX   ((uint32_t) -1)

An invalid index.

#define PA_OK   PA_OK
#define PA_OPERATION_CANCELED   PA_OPERATION_CANCELLED
#define PA_OPERATION_CANCELLED   PA_OPERATION_CANCELLED
#define PA_OPERATION_DONE   PA_OPERATION_DONE
#define PA_OPERATION_RUNNING   PA_OPERATION_RUNNING
#define PA_PORT_AVAILABLE_NO   PA_PORT_AVAILABLE_NO
#define PA_PORT_AVAILABLE_UNKNOWN   PA_PORT_AVAILABLE_UNKNOWN
#define PA_PORT_AVAILABLE_YES   PA_PORT_AVAILABLE_YES
#define PA_SEEK_ABSOLUTE   PA_SEEK_ABSOLUTE
#define PA_SEEK_RELATIVE   PA_SEEK_RELATIVE
#define PA_SEEK_RELATIVE_END   PA_SEEK_RELATIVE_END
#define PA_SEEK_RELATIVE_ON_READ   PA_SEEK_RELATIVE_ON_READ
#define PA_SINK_DECIBEL_VOLUME   PA_SINK_DECIBEL_VOLUME
#define PA_SINK_DYNAMIC_LATENCY   PA_SINK_DYNAMIC_LATENCY
#define PA_SINK_FLAT_VOLUME   PA_SINK_FLAT_VOLUME
#define PA_SINK_HARDWARE   PA_SINK_HARDWARE
#define PA_SINK_HW_MUTE_CTRL   PA_SINK_HW_MUTE_CTRL
#define PA_SINK_HW_VOLUME_CTRL   PA_SINK_HW_VOLUME_CTRL
#define PA_SINK_IDLE   PA_SINK_IDLE
#define PA_SINK_INIT   PA_SINK_INIT
#define PA_SINK_INVALID_STATE   PA_SINK_INVALID_STATE
#define PA_SINK_IS_OPENED   PA_SINK_IS_OPENED
#define PA_SINK_LATENCY   PA_SINK_LATENCY
#define PA_SINK_NETWORK   PA_SINK_NETWORK
#define PA_SINK_RUNNING   PA_SINK_RUNNING
#define PA_SINK_SET_FORMATS   PA_SINK_SET_FORMATS
#define PA_SINK_SUSPENDED   PA_SINK_SUSPENDED
#define PA_SINK_UNLINKED   PA_SINK_UNLINKED
#define PA_SOURCE_DECIBEL_VOLUME   PA_SOURCE_DECIBEL_VOLUME
#define PA_SOURCE_DYNAMIC_LATENCY   PA_SOURCE_DYNAMIC_LATENCY
#define PA_SOURCE_FLAT_VOLUME   PA_SOURCE_FLAT_VOLUME
#define PA_SOURCE_HARDWARE   PA_SOURCE_HARDWARE
#define PA_SOURCE_HW_MUTE_CTRL   PA_SOURCE_HW_MUTE_CTRL
#define PA_SOURCE_HW_VOLUME_CTRL   PA_SOURCE_HW_VOLUME_CTRL
#define PA_SOURCE_IDLE   PA_SOURCE_IDLE
#define PA_SOURCE_INIT   PA_SOURCE_INIT
#define PA_SOURCE_INVALID_STATE   PA_SOURCE_INVALID_STATE
#define PA_SOURCE_IS_OPENED   PA_SOURCE_IS_OPENED
#define PA_SOURCE_LATENCY   PA_SOURCE_LATENCY
#define PA_SOURCE_NETWORK   PA_SOURCE_NETWORK
#define PA_SOURCE_RUNNING   PA_SOURCE_RUNNING
#define PA_SOURCE_SUSPENDED   PA_SOURCE_SUSPENDED
#define PA_SOURCE_UNLINKED   PA_SOURCE_UNLINKED
#define PA_STREAM_ADJUST_LATENCY   PA_STREAM_ADJUST_LATENCY
#define PA_STREAM_AUTO_TIMING_UPDATE   PA_STREAM_AUTO_TIMING_UPDATE
#define PA_STREAM_CREATING   PA_STREAM_CREATING
#define PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND   PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND
#define PA_STREAM_DONT_MOVE   PA_STREAM_DONT_MOVE
#define PA_STREAM_EARLY_REQUESTS   PA_STREAM_EARLY_REQUESTS
#define PA_STREAM_EVENT_FORMAT_LOST   "format-lost"

A stream event notifying that the stream is going to be disconnected because the underlying sink changed and no longer supports the format that was originally negotiated.

Clients need to connect a new stream to renegotiate a format and continue playback,

Since
1.0
#define PA_STREAM_EVENT_REQUEST_CORK   "request-cork"

A stream policy/meta event requesting that an application should cork a specific stream.

See pa_stream_event_cb_t for more information,

Since
0.9.15
#define PA_STREAM_EVENT_REQUEST_UNCORK   "request-uncork"

A stream policy/meta event requesting that an application should cork a specific stream.

See pa_stream_event_cb_t for more information,

Since
0.9.15
#define PA_STREAM_FAIL_ON_SUSPEND   PA_STREAM_FAIL_ON_SUSPEND
#define PA_STREAM_FAILED   PA_STREAM_FAILED
#define PA_STREAM_FIX_CHANNELS   PA_STREAM_FIX_CHANNELS
#define PA_STREAM_FIX_FORMAT   PA_STREAM_FIX_FORMAT
#define PA_STREAM_FIX_RATE   PA_STREAM_FIX_RATE
#define PA_STREAM_INTERPOLATE_TIMING   PA_STREAM_INTERPOLATE_TIMING
#define PA_STREAM_IS_GOOD   PA_STREAM_IS_GOOD
#define PA_STREAM_NO_REMAP_CHANNELS   PA_STREAM_NO_REMAP_CHANNELS
#define PA_STREAM_NO_REMIX_CHANNELS   PA_STREAM_NO_REMIX_CHANNELS
#define PA_STREAM_NODIRECTION   PA_STREAM_NODIRECTION
#define PA_STREAM_NOT_MONOTONIC   PA_STREAM_NOT_MONOTONIC
#define PA_STREAM_NOT_MONOTONOUS   PA_STREAM_NOT_MONOTONIC
#define PA_STREAM_PASSTHROUGH   PA_STREAM_PASSTHROUGH
#define PA_STREAM_PEAK_DETECT   PA_STREAM_PEAK_DETECT
#define PA_STREAM_PLAYBACK   PA_STREAM_PLAYBACK
#define PA_STREAM_READY   PA_STREAM_READY
#define PA_STREAM_RECORD   PA_STREAM_RECORD
#define PA_STREAM_RELATIVE_VOLUME   PA_STREAM_RELATIVE_VOLUME
#define PA_STREAM_START_CORKED   PA_STREAM_START_CORKED
#define PA_STREAM_START_MUTED   PA_STREAM_START_MUTED
#define PA_STREAM_START_UNMUTED   PA_STREAM_START_UNMUTED
#define PA_STREAM_TERMINATED   PA_STREAM_TERMINATED
#define PA_STREAM_UNCONNECTED   PA_STREAM_UNCONNECTED
#define PA_STREAM_UPLOAD   PA_STREAM_UPLOAD
#define PA_STREAM_VARIABLE_RATE   PA_STREAM_VARIABLE_RATE
#define PA_SUBSCRIPTION_EVENT_AUTOLOAD   PA_SUBSCRIPTION_EVENT_AUTOLOAD
#define PA_SUBSCRIPTION_EVENT_CARD   PA_SUBSCRIPTION_EVENT_CARD
#define PA_SUBSCRIPTION_EVENT_CHANGE   PA_SUBSCRIPTION_EVENT_CHANGE
#define PA_SUBSCRIPTION_EVENT_CLIENT   PA_SUBSCRIPTION_EVENT_CLIENT
#define PA_SUBSCRIPTION_EVENT_FACILITY_MASK   PA_SUBSCRIPTION_EVENT_FACILITY_MASK
#define PA_SUBSCRIPTION_EVENT_MODULE   PA_SUBSCRIPTION_EVENT_MODULE
#define PA_SUBSCRIPTION_EVENT_NEW   PA_SUBSCRIPTION_EVENT_NEW
#define PA_SUBSCRIPTION_EVENT_REMOVE   PA_SUBSCRIPTION_EVENT_REMOVE
#define PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE   PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE
#define PA_SUBSCRIPTION_EVENT_SERVER   PA_SUBSCRIPTION_EVENT_SERVER
#define PA_SUBSCRIPTION_EVENT_SINK   PA_SUBSCRIPTION_EVENT_SINK
#define PA_SUBSCRIPTION_EVENT_SINK_INPUT   PA_SUBSCRIPTION_EVENT_SINK_INPUT
#define PA_SUBSCRIPTION_EVENT_SOURCE   PA_SUBSCRIPTION_EVENT_SOURCE
#define PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT   PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT
#define PA_SUBSCRIPTION_EVENT_TYPE_MASK   PA_SUBSCRIPTION_EVENT_TYPE_MASK
#define PA_SUBSCRIPTION_MASK_ALL   PA_SUBSCRIPTION_MASK_ALL
#define PA_SUBSCRIPTION_MASK_AUTOLOAD   PA_SUBSCRIPTION_MASK_AUTOLOAD
#define PA_SUBSCRIPTION_MASK_CARD   PA_SUBSCRIPTION_MASK_CARD
#define PA_SUBSCRIPTION_MASK_CLIENT   PA_SUBSCRIPTION_MASK_CLIENT
#define PA_SUBSCRIPTION_MASK_MODULE   PA_SUBSCRIPTION_MASK_MODULE
#define PA_SUBSCRIPTION_MASK_NULL   PA_SUBSCRIPTION_MASK_NULL
#define PA_SUBSCRIPTION_MASK_SAMPLE_CACHE   PA_SUBSCRIPTION_MASK_SAMPLE_CACHE
#define PA_SUBSCRIPTION_MASK_SERVER   PA_SUBSCRIPTION_MASK_SERVER
#define PA_SUBSCRIPTION_MASK_SINK   PA_SUBSCRIPTION_MASK_SINK
#define PA_SUBSCRIPTION_MASK_SINK_INPUT   PA_SUBSCRIPTION_MASK_SINK_INPUT
#define PA_SUBSCRIPTION_MASK_SOURCE   PA_SUBSCRIPTION_MASK_SOURCE
#define PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT   PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT
#define pa_subscription_match_flags (   m,
 
)    (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK))))

Return one if an event type t matches an event mask bitfield.

Typedef Documentation

Playback and record buffer metrics.

Some special flags for contexts.

The state of a connection context.

The type of device we are dealing with.

Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e g if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future.

Since
2.0

Error values as used by pa_context_errno().

Use pa_strerror() to convert these values to human readable strings

typedef void(* pa_free_cb_t)(void *p)

A generic free() like callback prototype.

The state of an operation.

Port availability / jack detection status.

Since
2.0

Seek type for pa_stream_write().

Special sink flags.

Sink state.

Since
0.9.15

Special source flags.

Source state.

Since
0.9.15
typedef struct pa_spawn_api pa_spawn_api

A structure for the spawn api.

This may be used to integrate auto spawned daemons into your application. For more information see pa_context_connect(). When spawning a new child process the waitpid() is used on the child's PID. The spawn routine will not block or ignore SIGCHLD signals, since this cannot be done in a thread compatible way. You might have to do this in prefork/postfork.

The direction of a pa_stream object.

Some special flags for stream connections.

The state of a stream.

Subscription event types, as used by pa_context_subscribe()

Subscription event mask, as used by pa_context_subscribe()

A structure for all kinds of timing information of a stream.

See pa_stream_update_timing_info() and pa_stream_get_timing_info(). The total output latency a sample that is written with pa_stream_write() takes to be played may be estimated by sink_usec+buffer_usec+transport_usec. (where buffer_usec is defined as pa_bytes_to_usec(write_index-read_index)) The output buffer which buffer_usec relates to may be manipulated freely (with pa_stream_write()'s seek argument, pa_stream_flush() and friends), the buffers sink_usec and source_usec relate to are first-in first-out (FIFO) buffers which cannot be flushed or manipulated in any way. The total input latency a sample that is recorded takes to be delivered to the application is: source_usec+buffer_usec+transport_usec-sink_usec. (Take care of sign issues!) When connected to a monitor source sink_usec contains the latency of the owning sink. The two latency estimations described here are implemented in pa_stream_get_latency(). Please note that this structure can be extended as part of evolutionary API updates at any time in any new release.

Enumeration Type Documentation

Some special flags for contexts.

Enumerator
PA_CONTEXT_NOFLAGS 

Flag to pass when no specific options are needed (used to avoid casting)

Since
0.9.19
PA_CONTEXT_NOAUTOSPAWN 

Disabled autospawning of the PulseAudio daemon if required.

PA_CONTEXT_NOFAIL 

Don't fail if the daemon is not available when pa_context_connect() is called, instead enter PA_CONTEXT_CONNECTING state and wait for the daemon to appear.

Since
0.9.15

The state of a connection context.

Enumerator
PA_CONTEXT_UNCONNECTED 

The context hasn't been connected yet.

PA_CONTEXT_CONNECTING 

A connection is being established.

PA_CONTEXT_AUTHORIZING 

The client is authorizing itself to the daemon.

PA_CONTEXT_SETTING_NAME 

The client is passing its application name to the daemon.

PA_CONTEXT_READY 

The connection is established, the context is ready to execute operations.

PA_CONTEXT_FAILED 

The connection failed or was disconnected.

PA_CONTEXT_TERMINATED 

The connection was terminated cleanly.

The type of device we are dealing with.

Enumerator
PA_DEVICE_TYPE_SINK 

Playback device.

PA_DEVICE_TYPE_SOURCE 

Recording device.

Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e g if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future.

Since
2.0
Enumerator
PA_DIRECTION_OUTPUT 

Output direction.

PA_DIRECTION_INPUT 

Input direction.

Error values as used by pa_context_errno().

Use pa_strerror() to convert these values to human readable strings

Enumerator
PA_OK 

No error.

PA_ERR_ACCESS 

Access failure.

PA_ERR_COMMAND 

Unknown command.

PA_ERR_INVALID 

Invalid argument.

PA_ERR_EXIST 

Entity exists.

PA_ERR_NOENTITY 

No such entity.

PA_ERR_CONNECTIONREFUSED 

Connection refused.

PA_ERR_PROTOCOL 

Protocol error.

PA_ERR_TIMEOUT 

Timeout.

PA_ERR_AUTHKEY 

No authorization key.

PA_ERR_INTERNAL 

Internal error.

PA_ERR_CONNECTIONTERMINATED 

Connection terminated.

PA_ERR_KILLED 

Entity killed.

PA_ERR_INVALIDSERVER 

Invalid server.

PA_ERR_MODINITFAILED 

Module initialization failed.

PA_ERR_BADSTATE 

Bad state.

PA_ERR_NODATA 

No data.

PA_ERR_VERSION 

Incompatible protocol version.

PA_ERR_TOOLARGE 

Data too large.

PA_ERR_NOTSUPPORTED 

Operation not supported.

Since
0.9.5
PA_ERR_UNKNOWN 

The error code was unknown to the client.

PA_ERR_NOEXTENSION 

Extension does not exist.

Since
0.9.12
PA_ERR_OBSOLETE 

Obsolete functionality.

Since
0.9.15
PA_ERR_NOTIMPLEMENTED 

Missing implementation.

Since
0.9.15
PA_ERR_FORKED 

The caller forked without calling execve() and tried to reuse the context.

Since
0.9.15
PA_ERR_IO 

An IO error happened.

Since
0.9.16
PA_ERR_BUSY 

Device or resource busy.

Since
0.9.17
PA_ERR_MAX 

Not really an error but the first invalid error code.

The state of an operation.

Enumerator
PA_OPERATION_RUNNING 

The operation is still running.

PA_OPERATION_DONE 

The operation has been completed.

PA_OPERATION_CANCELLED 

The operation has been cancelled.

Before 0.9.18 this was called PA_OPERATION_CANCELED. That name is still available for compatibility.

Port availability / jack detection status.

Since
2.0
Enumerator
PA_PORT_AVAILABLE_UNKNOWN 

This port does not support jack detection.

Since
2.0
PA_PORT_AVAILABLE_NO 

This port is not available, likely because the jack is not plugged in.

Since
2.0
PA_PORT_AVAILABLE_YES 

This port is available, likely because the jack is plugged in.

Since
2.0

Seek type for pa_stream_write().

Enumerator
PA_SEEK_RELATIVE 

Seek relatively to the write index.

PA_SEEK_ABSOLUTE 

Seek relatively to the start of the buffer queue.

PA_SEEK_RELATIVE_ON_READ 

Seek relatively to the read index.

PA_SEEK_RELATIVE_END 

Seek relatively to the current end of the buffer queue.

Special sink flags.

Enumerator
PA_SINK_NOFLAGS 

Flag to pass when no specific options are needed (used to avoid casting)

Since
0.9.19
PA_SINK_HW_VOLUME_CTRL 

Supports hardware volume control.

This is a dynamic flag and may change at runtime after the sink has initialized

PA_SINK_LATENCY 

Supports latency querying.

PA_SINK_HARDWARE 

Is a hardware sink of some kind, in contrast to "virtual"/software sinks.

Since
0.9.3
PA_SINK_NETWORK 

Is a networked sink of some kind.

Since
0.9.7
PA_SINK_HW_MUTE_CTRL 

Supports hardware mute control.

This is a dynamic flag and may change at runtime after the sink has initialized

Since
0.9.11
PA_SINK_DECIBEL_VOLUME 

Volume can be translated to dB with pa_sw_volume_to_dB().

This is a dynamic flag and may change at runtime after the sink has initialized

Since
0.9.11
PA_SINK_FLAT_VOLUME 

This sink is in flat volume mode, i.e.

always the maximum of the volume of all connected inputs.

Since
0.9.15
PA_SINK_DYNAMIC_LATENCY 

The latency can be adjusted dynamically depending on the needs of the connected streams.

Since
0.9.15
PA_SINK_SET_FORMATS 

The sink allows setting what formats are supported by the connected hardware.

The actual functionality to do this might be provided by an extension.

Since
1.0

Sink state.

Since
0.9.15
Enumerator
PA_SINK_INVALID_STATE 

This state is used when the server does not support sink state introspection.

Since
0.9.15
PA_SINK_RUNNING 

Running, sink is playing and used by at least one non-corked sink-input.

Since
0.9.15
PA_SINK_IDLE 

When idle, the sink is playing but there is no non-corked sink-input attached to it.

Since
0.9.15
PA_SINK_SUSPENDED 

When suspended, actual sink access can be closed, for instance.

Since
0.9.15

Special source flags.

Enumerator
PA_SOURCE_NOFLAGS 

Flag to pass when no specific options are needed (used to avoid casting)

Since
0.9.19
PA_SOURCE_HW_VOLUME_CTRL 

Supports hardware volume control.

This is a dynamic flag and may change at runtime after the source has initialized

PA_SOURCE_LATENCY 

Supports latency querying.

PA_SOURCE_HARDWARE 

Is a hardware source of some kind, in contrast to "virtual"/software source.

Since
0.9.3
PA_SOURCE_NETWORK 

Is a networked source of some kind.

Since
0.9.7
PA_SOURCE_HW_MUTE_CTRL 

Supports hardware mute control.

This is a dynamic flag and may change at runtime after the source has initialized

Since
0.9.11
PA_SOURCE_DECIBEL_VOLUME 

Volume can be translated to dB with pa_sw_volume_to_dB().

This is a dynamic flag and may change at runtime after the source has initialized

Since
0.9.11
PA_SOURCE_DYNAMIC_LATENCY 

The latency can be adjusted dynamically depending on the needs of the connected streams.

Since
0.9.15
PA_SOURCE_FLAT_VOLUME 

This source is in flat volume mode, i.e.

always the maximum of the volume of all connected outputs.

Since
1.0

Source state.

Since
0.9.15
Enumerator
PA_SOURCE_INVALID_STATE 

This state is used when the server does not support source state introspection.

Since
0.9.15
PA_SOURCE_RUNNING 

Running, source is recording and used by at least one non-corked source-output.

Since
0.9.15
PA_SOURCE_IDLE 

When idle, the source is still recording but there is no non-corked source-output.

Since
0.9.15
PA_SOURCE_SUSPENDED 

When suspended, actual source access can be closed, for instance.

Since
0.9.15

The direction of a pa_stream object.

Enumerator
PA_STREAM_NODIRECTION 

Invalid direction.

PA_STREAM_PLAYBACK 

Playback stream.

PA_STREAM_RECORD 

Record stream.

PA_STREAM_UPLOAD 

Sample upload stream.

Some special flags for stream connections.

Enumerator
PA_STREAM_NOFLAGS 

Flag to pass when no specific options are needed (used to avoid casting)

Since
0.9.19
PA_STREAM_START_CORKED 

Create the stream corked, requiring an explicit pa_stream_cork() call to uncork it.

PA_STREAM_INTERPOLATE_TIMING 

Interpolate the latency for this stream.

When enabled, pa_stream_get_latency() and pa_stream_get_time() will try to estimate the current record/playback time based on the local time that passed since the last timing info update. Using this option has the advantage of not requiring a whole roundtrip when the current playback/recording time is needed. Consider using this option when requesting latency information frequently. This is especially useful on long latency network connections. It makes a lot of sense to combine this option with PA_STREAM_AUTO_TIMING_UPDATE.

PA_STREAM_NOT_MONOTONIC 

Don't force the time to increase monotonically.

If this option is enabled, pa_stream_get_time() will not necessarily return always monotonically increasing time values on each call. This may confuse applications which cannot deal with time going 'backwards', but has the advantage that bad transport latency estimations that caused the time to to jump ahead can be corrected quickly, without the need to wait. (Please note that this flag was named PA_STREAM_NOT_MONOTONOUS in releases prior to 0.9.11. The old name is still defined too, for compatibility reasons.

PA_STREAM_AUTO_TIMING_UPDATE 

If set timing update requests are issued periodically automatically.

Combined with PA_STREAM_INTERPOLATE_TIMING you will be able to query the current time and latency with pa_stream_get_time() and pa_stream_get_latency() at all times without a packet round trip.

PA_STREAM_NO_REMAP_CHANNELS 

Don't remap channels by their name, instead map them simply by their index.

Implies PA_STREAM_NO_REMIX_CHANNELS. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_NO_REMIX_CHANNELS 

When remapping channels by name, don't upmix or downmix them to related channels.

Copy them into matching channels of the device 1:1. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_FIX_FORMAT 

Use the sample format of the sink/device this stream is being connected to, and possibly ignore the format the sample spec contains – but you still have to pass a valid value in it as a hint to PulseAudio what would suit your stream best.

If this is used you should query the used sample format after creating the stream by using pa_stream_get_sample_spec(). Also, if you specified manual buffer metrics it is recommended to update them with pa_stream_set_buffer_attr() to compensate for the changed frame sizes. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_FIX_RATE 

Use the sample rate of the sink, and possibly ignore the rate the sample spec contains.

Usage similar to PA_STREAM_FIX_FORMAT.Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_FIX_CHANNELS 

Use the number of channels and the channel map of the sink, and possibly ignore the number of channels and the map the sample spec and the passed channel map contains.

Usage similar to PA_STREAM_FIX_FORMAT. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_DONT_MOVE 

Don't allow moving of this stream to another sink/device.

Useful if you use any of the PA_STREAM_FIX_ flags and want to make sure that resampling never takes place – which might happen if the stream is moved to another sink/source with a different sample spec/channel map. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_VARIABLE_RATE 

Allow dynamic changing of the sampling rate during playback with pa_stream_update_sample_rate().

Only supported when the server is at least PA 0.9.8. It is ignored on older servers.

Since
0.9.8
PA_STREAM_PEAK_DETECT 

Find peaks instead of resampling.

Since
0.9.11
PA_STREAM_START_MUTED 

Create in muted state.

If neither PA_STREAM_START_UNMUTED nor PA_STREAM_START_MUTED it is left to the server to decide whether to create the stream in muted or in unmuted state.

Since
0.9.11
PA_STREAM_ADJUST_LATENCY 

Try to adjust the latency of the sink/source based on the requested buffer metrics and adjust buffer metrics accordingly.

Also see pa_buffer_attr. This option may not be specified at the same time as PA_STREAM_EARLY_REQUESTS.

Since
0.9.11
PA_STREAM_EARLY_REQUESTS 

Enable compatibility mode for legacy clients that rely on a "classic" hardware device fragment-style playback model.

If this option is set, the minreq value of the buffer metrics gets a new meaning: instead of just specifying that no requests asking for less new data than this value will be made to the client it will also guarantee that requests are generated as early as this limit is reached. This flag should only be set in very few situations where compatibility with a fragment-based playback model needs to be kept and the client applications cannot deal with data requests that are delayed to the latest moment possible. (Usually these are programs that use usleep() or a similar call in their playback loops instead of sleeping on the device itself.) Also see pa_buffer_attr. This option may not be specified at the same time as PA_STREAM_ADJUST_LATENCY.

Since
0.9.12
PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND 

If set this stream won't be taken into account when we it is checked whether the device this stream is connected to should auto-suspend.

Since
0.9.15
PA_STREAM_START_UNMUTED 

Create in unmuted state.

If neither PA_STREAM_START_UNMUTED nor PA_STREAM_START_MUTED it is left to the server to decide whether to create the stream in muted or in unmuted state.

Since
0.9.15
PA_STREAM_FAIL_ON_SUSPEND 

If the sink/source this stream is connected to is suspended during the creation of this stream, cause it to fail.

If the sink/source is being suspended during creation of this stream, make sure this stream is terminated.

Since
0.9.15
PA_STREAM_RELATIVE_VOLUME 

If a volume is passed when this stream is created, consider it relative to the sink's current volume, never as absolute device volume.

If this is not specified the volume will be consider absolute when the sink is in flat volume mode, relative otherwise.

Since
0.9.20
PA_STREAM_PASSTHROUGH 

Used to tag content that will be rendered by passthrough sinks.

The data will be left as is and not reformatted, resampled.

Since
1.0

The state of a stream.

Enumerator
PA_STREAM_UNCONNECTED 

The stream is not yet connected to any sink or source.

PA_STREAM_CREATING 

The stream is being created.

PA_STREAM_READY 

The stream is established, you may pass audio data to it now.

PA_STREAM_FAILED 

An error occurred that made the stream invalid.

PA_STREAM_TERMINATED 

The stream has been terminated cleanly.

Subscription event types, as used by pa_context_subscribe()

Enumerator
PA_SUBSCRIPTION_EVENT_SINK 

Event type: Sink.

PA_SUBSCRIPTION_EVENT_SOURCE 

Event type: Source.

PA_SUBSCRIPTION_EVENT_SINK_INPUT 

Event type: Sink input.

PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT 

Event type: Source output.

PA_SUBSCRIPTION_EVENT_MODULE 

Event type: Module.

PA_SUBSCRIPTION_EVENT_CLIENT 

Event type: Client.

PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE 

Event type: Sample cache item.

PA_SUBSCRIPTION_EVENT_SERVER 

Event type: Global server change, only occurring with PA_SUBSCRIPTION_EVENT_CHANGE.

PA_SUBSCRIPTION_EVENT_CARD 

Event type: Card.

Since
0.9.15
PA_SUBSCRIPTION_EVENT_FACILITY_MASK 

A mask to extract the event type from an event value.

PA_SUBSCRIPTION_EVENT_NEW 

A new object was created.

PA_SUBSCRIPTION_EVENT_CHANGE 

A property of the object was modified.

PA_SUBSCRIPTION_EVENT_REMOVE 

An object was removed.

PA_SUBSCRIPTION_EVENT_TYPE_MASK 

A mask to extract the event operation from an event value.

Subscription event mask, as used by pa_context_subscribe()

Enumerator
PA_SUBSCRIPTION_MASK_NULL 

No events.

PA_SUBSCRIPTION_MASK_SINK 

Sink events.

PA_SUBSCRIPTION_MASK_SOURCE 

Source events.

PA_SUBSCRIPTION_MASK_SINK_INPUT 

Sink input events.

PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT 

Source output events.

PA_SUBSCRIPTION_MASK_MODULE 

Module events.

PA_SUBSCRIPTION_MASK_CLIENT 

Client events.

PA_SUBSCRIPTION_MASK_SAMPLE_CACHE 

Sample cache events.

PA_SUBSCRIPTION_MASK_SERVER 

Other global server changes.

PA_SUBSCRIPTION_MASK_CARD 

Card events.

Since
0.9.15
PA_SUBSCRIPTION_MASK_ALL 

Catch all events.