PulseAudio 16.1

Data Structures | Macros | Typedefs | Enumerations
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_INVALID_INDEX ((uint32_t) -1)
| An invalid index. More...
#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. More...
#define | PA_STREAM_EVENT_REQUEST_CORK "request-cork"
| A stream policy/meta event requesting that an application should cork a specific stream. More...
#define | PA_STREAM_EVENT_REQUEST_UNCORK "request-uncork"
| A stream policy/meta event requesting that an application should cork a specific stream. More...
#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. More...

## Typedefs
typedef enum pa_context_state | pa_context_state_t
| The state of a connection context. More...
typedef enum pa_stream_state | pa_stream_state_t
| The state of a stream. More...
typedef enum pa_operation_state | pa_operation_state_t
| The state of an operation. More...
typedef enum pa_context_flags | pa_context_flags_t
| Some special flags for contexts. More...
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. More...
typedef enum pa_device_type | pa_device_type_t
| The type of device we are dealing with. More...
typedef enum pa_stream_direction | pa_stream_direction_t
| The direction of a pa_stream object. More...
typedef enum pa_stream_flags | pa_stream_flags_t
| Some special flags for stream connections. More...
typedef struct pa_buffer_attr | pa_buffer_attr
| Playback and record buffer metrics. More...
typedef enum pa_error_code | pa_error_code_t
| Error values as used by pa_context_errno(). More...
typedef enum pa_subscription_mask | pa_subscription_mask_t
| Subscription event mask, as used by pa_context_subscribe() More...
typedef enum pa_subscription_event_type | pa_subscription_event_type_t
| Subscription event types, as used by pa_context_subscribe() More...
typedef struct pa_timing_info | pa_timing_info
| A structure for all kinds of timing information of a stream. More...
typedef struct pa_spawn_api | pa_spawn_api
| A structure for the spawn api. More...
typedef enum pa_seek_mode | pa_seek_mode_t
| Seek type for pa_stream_write(). More...
typedef enum pa_sink_flags | pa_sink_flags_t
| Special sink flags. More...
typedef enum pa_sink_state | pa_sink_state_t
| Sink state. More...
typedef enum pa_source_flags | pa_source_flags_t
| Special source flags. More...
typedef enum pa_source_state | pa_source_state_t
| Source state. More...
typedef void(* | pa_free_cb_t) (void *p)
| A generic free() like callback prototype. More...
typedef enum pa_port_available | pa_port_available_t
| Port availability / jack detection status. More...
typedef enum pa_device_port_type | pa_device_port_type_t
| Port type. More...

## 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...
enum | pa_device_port_type { PA_DEVICE_PORT_TYPE_UNKNOWN = 0 , PA_DEVICE_PORT_TYPE_AUX = 1 , PA_DEVICE_PORT_TYPE_SPEAKER = 2 , PA_DEVICE_PORT_TYPE_HEADPHONES = 3 , PA_DEVICE_PORT_TYPE_LINE = 4 , PA_DEVICE_PORT_TYPE_MIC = 5 , PA_DEVICE_PORT_TYPE_HEADSET = 6 , PA_DEVICE_PORT_TYPE_HANDSET = 7 , PA_DEVICE_PORT_TYPE_EARPIECE = 8 , PA_DEVICE_PORT_TYPE_SPDIF = 9 , PA_DEVICE_PORT_TYPE_HDMI = 10 , PA_DEVICE_PORT_TYPE_TV = 11 , PA_DEVICE_PORT_TYPE_RADIO = 12 , PA_DEVICE_PORT_TYPE_VIDEO = 13 , PA_DEVICE_PORT_TYPE_USB = 14 , PA_DEVICE_PORT_TYPE_BLUETOOTH = 15 , PA_DEVICE_PORT_TYPE_PORTABLE = 16 , PA_DEVICE_PORT_TYPE_HANDSFREE = 17 , PA_DEVICE_PORT_TYPE_CAR = 18 , PA_DEVICE_PORT_TYPE_HIFI = 19 , PA_DEVICE_PORT_TYPE_PHONE = 20 , PA_DEVICE_PORT_TYPE_NETWORK = 21 , PA_DEVICE_PORT_TYPE_ANALOG = 22 }
| Port type. More...

## Detailed Description

Global definitions.

## Macro Definition Documentation

## ◆ PA_INVALID_INDEX

#define PA_INVALID_INDEX ((uint32_t) -1)

An invalid index.

## ◆ PA_STREAM_EVENT_FORMAT_LOST

#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

## ◆ PA_STREAM_EVENT_REQUEST_CORK

#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

## ◆ PA_STREAM_EVENT_REQUEST_UNCORK

#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

## ◆ pa_subscription_match_flags

#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.

## Typedef Documentation

## ◆ pa_buffer_attr

typedef struct pa_buffer_attr pa_buffer_attr

Playback and record buffer metrics.

## ◆ pa_context_flags_t

typedef enum pa_context_flags pa_context_flags_t

Some special flags for contexts.

## ◆ pa_context_state_t

typedef enum pa_context_state pa_context_state_t

The state of a connection context.

## ◆ pa_device_port_type_t

typedef enum pa_device_port_type pa_device_port_type_t

Port type.

New types can be added in the future, so applications should gracefully handle situations where a type identifier doesn't match any item in this enumeration.

Since
  14.0

## ◆ pa_device_type_t

typedef enum pa_device_type pa_device_type_t

The type of device we are dealing with.

## ◆ pa_direction_t

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.

Since
  2.0

## ◆ pa_error_code_t

typedef enum pa_error_code pa_error_code_t

Error values as used by pa_context_errno().

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

## ◆ pa_free_cb_t

typedef void(* pa_free_cb_t) (void *p)

A generic free() like callback prototype.

## ◆ pa_operation_state_t

typedef enum pa_operation_state pa_operation_state_t

The state of an operation.

## ◆ pa_port_available_t

typedef enum pa_port_available pa_port_available_t

Port availability / jack detection status.

Since
  2.0

## ◆ pa_seek_mode_t

typedef enum pa_seek_mode pa_seek_mode_t

Seek type for pa_stream_write().

## ◆ pa_sink_flags_t

typedef enum pa_sink_flags pa_sink_flags_t

Special sink flags.

## ◆ pa_sink_state_t

typedef enum pa_sink_state pa_sink_state_t

Sink state.

Since
  0.9.15

## ◆ pa_source_flags_t

typedef enum pa_source_flags pa_source_flags_t

Special source flags.

## ◆ pa_source_state_t

typedef enum pa_source_state pa_source_state_t

Source state.

Since
  0.9.15

## ◆ pa_spawn_api

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.

## ◆ pa_stream_direction_t

typedef enum pa_stream_direction pa_stream_direction_t

The direction of a pa_stream object.

## ◆ pa_stream_flags_t

typedef enum pa_stream_flags pa_stream_flags_t

Some special flags for stream connections.

## ◆ pa_stream_state_t

typedef enum pa_stream_state pa_stream_state_t

The state of a stream.

## ◆ pa_subscription_event_type_t

typedef enum pa_subscription_event_type pa_subscription_event_type_t

Subscription event types, as used by pa_context_subscribe()

## ◆ pa_subscription_mask_t

typedef enum pa_subscription_mask pa_subscription_mask_t

Subscription event mask, as used by pa_context_subscribe()

## ◆ pa_timing_info

typedef struct pa_timing_info pa_timing_info

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().

All time values are in the sound card clock domain, unless noted otherwise. The sound card clock usually runs at a slightly different rate than the system clock.

Please note that this structure can be extended as part of evolutionary API updates at any time in any new release.

## Enumeration Type Documentation

## ◆ pa_context_flags

enum pa_context_flags

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

## ◆ pa_context_state

enum pa_context_state

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.

## ◆ pa_device_port_type

enum pa_device_port_type

Port type.

New types can be added in the future, so applications should gracefully handle situations where a type identifier doesn't match any item in this enumeration.

Since
  14.0

Enumerator
PA_DEVICE_PORT_TYPE_UNKNOWN |
PA_DEVICE_PORT_TYPE_AUX |
PA_DEVICE_PORT_TYPE_SPEAKER |
PA_DEVICE_PORT_TYPE_HEADPHONES |
PA_DEVICE_PORT_TYPE_LINE |
PA_DEVICE_PORT_TYPE_MIC |
PA_DEVICE_PORT_TYPE_HEADSET |
PA_DEVICE_PORT_TYPE_HANDSET |
PA_DEVICE_PORT_TYPE_EARPIECE |
PA_DEVICE_PORT_TYPE_SPDIF |
PA_DEVICE_PORT_TYPE_HDMI |
PA_DEVICE_PORT_TYPE_TV |
PA_DEVICE_PORT_TYPE_RADIO |
PA_DEVICE_PORT_TYPE_VIDEO |
PA_DEVICE_PORT_TYPE_USB |
PA_DEVICE_PORT_TYPE_BLUETOOTH |
PA_DEVICE_PORT_TYPE_PORTABLE |
PA_DEVICE_PORT_TYPE_HANDSFREE |
PA_DEVICE_PORT_TYPE_CAR |
PA_DEVICE_PORT_TYPE_HIFI |
PA_DEVICE_PORT_TYPE_PHONE |
PA_DEVICE_PORT_TYPE_NETWORK |
PA_DEVICE_PORT_TYPE_ANALOG |

## ◆ pa_device_type

enum pa_device_type

The type of device we are dealing with.

Enumerator
PA_DEVICE_TYPE_SINK | Playback device.
PA_DEVICE_TYPE_SOURCE | Recording device.

## ◆ pa_direction

enum pa_direction

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.

## ◆ pa_error_code

enum pa_error_code

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 authentication 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.

## ◆ pa_operation_state

enum pa_operation_state

The state of an operation.

Enumerator
PA_OPERATION_RUNNING | The operation is still running.
PA_OPERATION_DONE | The operation has completed.
PA_OPERATION_CANCELLED | The operation has been cancelled. Operations may get cancelled by the application, or as a result of the context getting disconnected while the operation is pending.

## ◆ pa_port_available

enum pa_port_available

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

## ◆ pa_seek_mode

enum pa_seek_mode

Seek type for pa_stream_write().

Enumerator
PA_SEEK_RELATIVE | Seek relative to the write index.
PA_SEEK_ABSOLUTE | Seek relative to the start of the buffer queue.
PA_SEEK_RELATIVE_ON_READ | Seek relative to the read index.
PA_SEEK_RELATIVE_END | Seek relative to the current end of the buffer queue.

## ◆ pa_sink_flags

enum pa_sink_flags

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

## ◆ pa_sink_state

enum pa_sink_state

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

## ◆ pa_source_flags

enum pa_source_flags

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

## ◆ pa_source_state

enum pa_source_state

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

## ◆ pa_stream_direction

enum pa_stream_direction

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.

## ◆ pa_stream_flags

enum pa_stream_flags

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 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. When creating streams with pa_stream_new_extended(), this flag has no effect. If you specify a format with PCM encoding, and you want the server to choose the sample format, then you should leave the sample format unspecified in the pa_format_info object. This also means that you can't use pa_format_info_from_sample_spec(), because that function always sets the sample format. 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. When creating streams with pa_stream_new_extended(), this flag has no effect. If you specify a format with PCM encoding, and you want the server to choose the sample rate, then you should leave the rate unspecified in the pa_format_info object. This also means that you can't use pa_format_info_from_sample_spec(), because that function always sets the sample rate. 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 contain. 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. When creating streams with pa_stream_new_extended(), this flag has no effect. If you specify a format with PCM encoding, and you want the server to choose the channel count and/or channel map, then you should leave the channels and/or the channel map unspecified in the pa_format_info object. This also means that you can't use pa_format_info_from_sample_spec(), because that function always sets the channel count (but if you only want to leave the channel map unspecified, then pa_format_info_from_sample_spec() works, because it accepts a NULL channel map). 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 are set, 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 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 are set 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

## ◆ pa_stream_state

enum pa_stream_state

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.

## ◆ pa_subscription_event_type

enum pa_subscription_event_type

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.

## ◆ pa_subscription_mask

enum pa_subscription_mask

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.